avi612 发表于 2022-7-6 21:50:22

为“修改”设置“更多选项”

你好
我正在尝试使用修改Autocad中Datalink的选项。净额
如何调整如图所示。
 

 
这是我的代码:
private void btn_Data_Click(object sender, EventArgs e)
       {
         ArrayList _lst = new ArrayList();
         for (int k = 0; k < cbb_ExcelFile.Items.Count; k++)
         {
               _lst.Add(cbb_ExcelFile.Items);
         }
         if (dgv_ERange.RowCount != 0)
         {
               for (int i = 0; i < dgv_ERange.RowCount; i++)
               {
                   if (dgv_ERange.Rows.Cells.Value != null && Boolean.Parse(dgv_ERange.Rows.Cells.Value.ToString()))
                   {
                     string _namelink = dgv_ERange.Rows.Cells.Value.ToString();
                     string _file = dgv_ERange.Rows.Cells.Value.ToString();
                     string _sheet = dgv_ERange.Rows.Cells.Value.ToString();
                     string _range = dgv_ERange.Rows.Cells.Value.ToString();

                     // Tạo Datalink
                     Data_Pro.Create_Datalink(_namelink, _file, _sheet, _range);

                     // Add thêm tên file nếu chưa có.
                     string _namefile = Path.GetFileNameWithoutExtension(_file);
                     if (!_lst.Contains(_namefile))
                     {
                           cbb_ExcelFile.Items.Add(_namefile);
                           _lst.Add(_namefile);
                     }

                   }
               }
               //Load lại dữ liệu Datalink
               for (int i = 0; i < cbb_ExcelFile.Items.Count; i++)
               {
                   cbb_ExcelFile.SelectedIndex = i;
               }
         }
         else
               MessageBox.Show("- Chưa xác định file Excel!", "Thông Báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Warning);

         
       }

avi612 发表于 2022-7-6 23:04:00

为疏忽道歉。这是行的代码:
//Tạo数据链路
Data_Pro。创建数据链路(\u namelink、\u file、\u sheet、\u range);
 
public static DataLink Create_Datalink(string _namelink, string _file, string _sheet, string _range)
       {
         acad.Document doc = acad.Application.DocumentManager.MdiActiveDocument;
         Database db = doc.Database;

         // Tạo mới đối tượng liên kết DataLink
         DataLink _data = new DataLink();

         using (acad.DocumentLock acLck = doc.LockDocument())
         {
               // 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ũ:
               // Lấy ra tất cả liên kết có trên dữ liệu
               DataLinkManager mgr = db.DataLinkManager;
               // Lấy ObjectId của đối tượng liên kết DataLink theo tên
               ObjectId _id = mgr.GetDataLink(_namelink);
               // Kiểm tra giá trị nhận được
               if (_id != ObjectId.Null)
               {
                   // Nếu khác null có nghĩa đã có liên kết
                   // Thực hiện xóa liên kết cũ
                   mgr.RemoveDataLink(_id);
               }

               // Khai báo liên kết với Excel
               _data.DataAdapterId = "AcExcel";
               // Khai báo tên cho liên kết
               _data.Name = _namelink;
               // Khai báo mô tả cho liên kết
               _data.Description = "";
               // Kiểm tra tham số vào Range để xác định câu lệnh kết nối
               // Nếu Range = null sẽ thực hiện liên kết với toàn bộ sheet
               // Nếu Range khác null sẽ liên kết với phạm vi được khai báo
               string[] _arr = _file.Split('\\');
               string _new = ".\\" + _arr + "\\" + _arr;
               
               if (_range == null)
                   _data.ConnectionString = _new + "!" + _sheet;
               else
                   _data.ConnectionString = _new + "!" + _sheet + "!" + _range;
               // Khai báo kiểu liên kết
               _data.DataLinkOption = DataLinkOption.PersistCache;

               // Xác định kết nối cho phép thực hiện cập nhật
               _data.UpdateOption |= (int)UpdateOption.AllowSourceUpdate;
               

               // Thêm liên kết vào bộ quản lý các liên kết của bản vẽ
               // Đồng thời ghi nhớ ObjectId của liên kết
               _id = mgr.AddDataLink(_data);

               using (Transaction tr = db.TransactionManager.StartTransaction())
               {
                   tr.AddNewlyCreatedDBObject(_data, true);
                   tr.Commit();
               }
         }
         return _data;
       }
页: [1]
查看完整版本: 为“修改”设置“更多选项”