avi612 Posted June 29, 2017 Share Posted June 29, 2017 Hi. I'm trying to modify option of Datalink in Autocad using .NET How to adjust as shown in the picture. This is my code: 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[k]); } if (dgv_ERange.RowCount != 0) { for (int i = 0; i < dgv_ERange.RowCount; i++) { if (dgv_ERange.Rows[i].Cells[0].Value != null && Boolean.Parse(dgv_ERange.Rows[i].Cells[0].Value.ToString())) { string _namelink = dgv_ERange.Rows[i].Cells[1].Value.ToString(); string _file = dgv_ERange.Rows[i].Cells[4].Value.ToString(); string _sheet = dgv_ERange.Rows[i].Cells[2].Value.ToString(); string _range = dgv_ERange.Rows[i].Cells[5].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); } Quote Link to comment Share on other sites More sharing options...
avi612 Posted June 29, 2017 Author Share Posted June 29, 2017 Apologize for the omission. This is code for line: // Tạo Datalink Data_Pro.Create_Datalink(_namelink, _file, _sheet, _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.Length - 2] + "\\" + _arr[_arr.Length - 1]; 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; } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.