乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 134|回复: 1

[编程交流] 为“修改”设置“更多选项”

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 21:50:22 | 显示全部楼层 |阅读模式
你好
我正在尝试使用修改Autocad中Datalink的选项。净额
如何调整如图所示。
 
225022esf1yvgj0j9o9ov1.png
 
这是我的代码:
  1. private void btn_Data_Click(object sender, EventArgs e)
  2.        {
  3.            ArrayList _lst = new ArrayList();
  4.            for (int k = 0; k < cbb_ExcelFile.Items.Count; k++)
  5.            {
  6.                _lst.Add(cbb_ExcelFile.Items[k]);
  7.            }
  8.            if (dgv_ERange.RowCount != 0)
  9.            {
  10.                for (int i = 0; i < dgv_ERange.RowCount; i++)
  11.                {
  12.                    if (dgv_ERange.Rows[i].Cells[0].Value != null && Boolean.Parse(dgv_ERange.Rows[i].Cells[0].Value.ToString()))
  13.                    {
  14.                        string _namelink = dgv_ERange.Rows[i].Cells[1].Value.ToString();
  15.                        string _file = dgv_ERange.Rows[i].Cells[4].Value.ToString();
  16.                        string _sheet = dgv_ERange.Rows[i].Cells[2].Value.ToString();
  17.                        string _range = dgv_ERange.Rows[i].Cells[5].Value.ToString();
  18.                        // Tạo Datalink
  19.                        Data_Pro.Create_Datalink(_namelink, _file, _sheet, _range);
  20.                        // Add thêm tên file nếu chưa có.
  21.                        string _namefile = Path.GetFileNameWithoutExtension(_file);
  22.                        if (!_lst.Contains(_namefile))
  23.                        {
  24.                            cbb_ExcelFile.Items.Add(_namefile);
  25.                            _lst.Add(_namefile);
  26.                        }
  27.                    }
  28.                }
  29.                //Load lại dữ liệu Datalink
  30.                for (int i = 0; i < cbb_ExcelFile.Items.Count; i++)
  31.                {
  32.                    cbb_ExcelFile.SelectedIndex = i;
  33.                }
  34.            }
  35.            else
  36.                MessageBox.Show("- Chưa xác định file Excel!", "Thông Báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  37.            
  38.        }
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 23:04:00 | 显示全部楼层
为疏忽道歉。这是行的代码:
//Tạo数据链路
Data_Pro。创建数据链路(\u namelink、\u file、\u sheet、\u range);
 
  1. public static DataLink Create_Datalink(string _namelink, string _file, string _sheet, string _range)
  2.        {
  3.            acad.Document doc = acad.Application.DocumentManager.MdiActiveDocument;
  4.            Database db = doc.Database;
  5.            // Tạo mới đối tượng liên kết DataLink
  6.            DataLink _data = new DataLink();
  7.            using (acad.DocumentLock acLck = doc.LockDocument())
  8.            {
  9.                // Kiểm tra tên liên kết. Nếu đã tồn tại thực hiện xóa liên kết cũ:
  10.                // Lấy ra tất cả liên kết có trên dữ liệu
  11.                DataLinkManager mgr = db.DataLinkManager;
  12.                // Lấy ObjectId của đối tượng liên kết DataLink theo tên
  13.                ObjectId _id = mgr.GetDataLink(_namelink);
  14.                // Kiểm tra giá trị nhận được
  15.                if (_id != ObjectId.Null)
  16.                {
  17.                    // Nếu khác null có nghĩa đã có liên kết
  18.                    // Thực hiện xóa liên kết cũ
  19.                    mgr.RemoveDataLink(_id);
  20.                }
  21.                // Khai báo liên kết với Excel
  22.                _data.DataAdapterId = "AcExcel";
  23.                // Khai báo tên cho liên kết
  24.                _data.Name = _namelink;
  25.                // Khai báo mô tả cho liên kết
  26.                _data.Description = "";
  27.                // Kiểm tra tham số vào Range để xác định câu lệnh kết nối
  28.                // Nếu Range = null sẽ thực hiện liên kết với toàn bộ sheet
  29.                // Nếu Range khác null sẽ liên kết với phạm vi được khai báo
  30.                string[] _arr = _file.Split('\\');
  31.                string _new = ".\" + _arr[_arr.Length - 2] + "\" + _arr[_arr.Length - 1];
  32.                
  33.                if (_range == null)
  34.                    _data.ConnectionString = _new + "!" + _sheet;
  35.                else
  36.                    _data.ConnectionString = _new + "!" + _sheet + "!" + _range;
  37.                // Khai báo kiểu liên kết
  38.                _data.DataLinkOption = DataLinkOption.PersistCache;
  39.                // Xác định kết nối cho phép thực hiện cập nhật
  40.                _data.UpdateOption |= (int)UpdateOption.AllowSourceUpdate;
  41.                
  42.                // Thêm liên kết vào bộ quản lý các liên kết của bản vẽ
  43.                // Đồng thời ghi nhớ ObjectId của liên kết
  44.                _id = mgr.AddDataLink(_data);
  45.                using (Transaction tr = db.TransactionManager.StartTransaction())
  46.                {
  47.                    tr.AddNewlyCreatedDBObject(_data, true);
  48.                    tr.Commit();
  49.                }
  50.            }
  51.            return _data;
  52.        }
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 13:38 , Processed in 0.554149 second(s), 59 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表