Свои карточки редактирования для разных типов документов
Доброго дня!
Задача наверняка довольно тривиальная, но для меня, как для не совсем опытного разработчика, она не так проста.
Итак, что нужно сделать: у нас есть несколько типов документов, сильно отличающихся друг от друга, поэтому было принято решение сделать отдельные карточки редактирования для каждого типа. При этом при нажатии на кнопку "Добавить" в основном реестре раздела Документы должен появляться выпадающий список с возможностью выбора нужного типа документа и открытия соответствующей карточки редактирования. Как создать карточку редактирования понятно, а вот что вешать непосредственно на обработчик события - нажатия кнопки, не понятно.
Буду очень признательна за любые ссылки и помощь.
Версия Террасофт СРМ 3.4.0
Нравится
У кнопки есть свойство PopupMenu, в результате выбора которого появляется стрелочка около кнопки, в которой будет выпадать список документов (Для меню надо создать ActionMenu в невизуальных свойствах) (Возьмите в качестве примера кнопку "Удалить")
На записи в меню надо повесить скрипты открытия окон в зависимости от выбора на кнопке
var EditWindowUSI = 'wnd_Window'; var Attributes = GetNewDictionary(); Attributes.Add('NotifyObject', Self); ShowEditWindowEx(EditWindowUSI, Attributes);
Но довольно плохо сказать на кнопку "Добавить". Карточку же надо будет открывать, можно копировать запись, а значит надо будет прописать выбор окон на "Изменить" (amiEditAction) и "Копировать" (amiCopyAction), и это не через PopumMenu, а универсально, смотреть тип и открывать.
как вариант - сделать отдельные представления (DataGridView) для разных типов документов - и открывать окна, исходя из того, которое из них активно:
function btnAddOnClick(Control) { UpdateWindowEditByDGV(grdData.ActiveView.Name); ... } function UpdateWindowEditByDGV(ActiveView) { switch (ActiveView) { case 'dgvAviaTickets': BaseGridArea.AddDataDefaultValues('DocumentTypeID') = '{4160920E-B12C-468D-ABEA-F73A8F643DD9}' BaseGridArea.EditWindowUSI = 'wnd_DocumentEdit'; break; case 'dgvVoucher': BaseGridArea.AddDataDefaultValues('DocumentTypeID') = '{3E9E6891-1CB5-4DDB-8ECA-D941DD4F241E}' BaseGridArea.EditWindowUSI = 'wnd_DocumentEdit'; break; case 'dgvGreenCard': BaseGridArea.AddDataDefaultValues('DocumentTypeID') = '{7055DEEB-399B-40F6-B782-F61750F58B70}'; BaseGridArea.EditWindowUSI = 'wnd_GreenCard'; BaseGridArea.AddDataDefaultValues('GCNumberCard') = 'RUS/002/'; break; default: BaseGridArea.AddDataDefaultValues('DocumentTypeID') = ''; // todo подставить АКТ BaseGridArea.EditWindowUSI = 'wnd_DocumentEdit'; break; } }
Но анализ типа документа при открытии надо делать, если вы хотите видеть все\несколько типов сразу в одном гриде