//Добавляет в текущую ячейку ссылку на выделенный параметр, field - имя поля //Транзакция создается из одной ячейки и добавляется в Transactions public void AddLink(LinkField field) { try { if (!GeneralRep.CheckOneSheet(true)) { return; } Shape sh = _book.ActiveShape(); var lt = _book.CurLinkType.ToLinkType(); if (sh != null && (lt != LinkType.Absolute && lt != LinkType.AbsoluteCombined && lt != LinkType.Combined && lt != LinkType.Result && lt != LinkType.System || (sh.Type != MsoShapeType.msoTextBox && sh.Type != MsoShapeType.msoGroup))) { return; } var tlist = new Transaction(); string res = "Project=" + CurProject.Code + ";Field=" + field.ToEnglish() + ";Code=" + CurParam.FullCode + ";" + "CellComment=" + CellComment.Text + ";SaveCode=" + GetSaveCode() + ";"; if (!field.IsValueField()) { WriteValue(field, tlist); } else { if (PropForm != null) { res += PropForm.PropsString; if (!PropForm.PropsError.IsEmpty()) { Different.MessageError(PropForm.PropsError, "Не правильно заполнены свойства ссылки"); return; } } else { res += _book.CurLinkProps; if (_book.CurLinkProps.IsEmpty()) { Different.MessageError("Нужно заполнить свойства устанавливаемой ссылки"); return; } } } if (field != LinkField.Code && field != LinkField.CodeParam && field != LinkField.CodeSubParam) { if (sh != null) { AddShapeLink(res, tlist, sh); } else { AddCellLink(res, tlist, GeneralRep.Application.ActiveCell); } } if (sh == null) { _book.BeforeTransaction(); MoveAfterLink(); } _book.AddTransaction(tlist); } catch { } }