Подскажите, пожалуйста,
хочу на детали, вывести справа еще один грид, как бы деталь к детали, как это правильно сделать?
Нравится
По сути, Вам нужно вывести второй грид в виндовс-контейнере этой детали, т.е. добавить второй виндовс-контейнер в деталь+прописать обновление записей в соответствии с значениями "основного" реестра + (если нужно. а судя по Вашей задаче -- нужно) в соответствии с записями "исходной" детали.
Приведу пример из своей практики, чтобы было понятней.
Задача: есть раздел Проеты, в нем -- деталь "участки в проекте" (созданная) -- есть поле "участок" (ссылка на созданный раздел Участки). По каждому участку есть Операции (соответственно, существует поле "участокИД" в Операции).
чтобы отобразить эту взаимосвязь, что было сделано.
1. деталь переделана на "сдвоенную" (о чем я говорила выше):
2. Прописано обновление второй детали, в зависимости от проетаИД, т.е. в блоке РефрешДетаилз скрипта скр_ПрожектВоркспейс в строке, где "упоминается" наша деталь дописан рефреш для второго окна:
else if (pcDetails.ActivePage.Name == pgSectorsInProjectDetail.Name) { //debugger; RefreshCommonDetail(BaseWorkspace, wndSectorsInProjectDetail, 'ProjectID', 'ProjectID'); <strong>RefreshCommonDetail(BaseWorkspace, wndCFDetail, 'ProjectID', 'ProjectID');</strong> }
3. Нужно дописать еще, чтобы во втором окне записи фильровались не только по проектуИД, но и по участкуИД, который у нас в "первом" гриде.
этот фильтр я прописала в функции OnSelectionChange грида "участки в проекте":
function grdDataOnSelectionChange(DataGrid) { //debugger; var CashflowWindow = Self.ParentContainer.ParentWindow.ComponentsByName('wndCFDetail').Window; var CashflowDataset = CashflowWindow.ComponentsByName('dlData').Dataset; if (DataGrid.SelectedIDs.Count == 1) { var SectorID = GetDatasetFieldValueByID('ds_SectorsInProject', DataGrid.SelectedIDs(0), 'SectorID'); CashflowDataset.Close(); ApplyDatasetFilter(CashflowDataset, 'SectorID', SectorID,true); CashflowDataset.Open(); //debugger; CashflowDataset.Attributes('SectorID') = SectorID; } }
4. последняя строчка -- передача атрибута. сделано для того, чтобы заполнять "значения по умолчанию" в Операции (т.е. когда мы нажимаем "добавить" справа, то участок чтобы сразу подставлялся. это даже логично). Этот атрибут нужно дописать в ДефоултВалуес грида операций при открытии карточки, в моем случае это было в функции AddCashflowData :
function AddCashflowData(Control) { var WorkspaceDataset = Self.Attributes('WorkspaceDataset'); if (!Assigned(WorkspaceDataset)) { /* MODULE PROJECTS */ if (IsWindowProjectDetail(Self)) {//грид как деталь в Проектах var Attributes = GetNewDictionary(); Attributes('DoNotDisableEvents') = true; //------ <strong>var SectorID = dlData.Dataset.Attributes('SectorID'); if (!!SectorID) { Attributes('SectorID') = SectorID; } BaseGridArea.AddDataDefaultValues = Attributes;</strong> //----------------- AddGridAreaData(Self, Self, BaseGridArea, Attributes); } else { //...
Возможно, есть другие методы реализации пунктов 3 и 4 -- буду не против их рассмотреть))
Надеюсь, что схема Вам более-менее понятна. Удачи в реализации.
Если возникнут вопросы/уточнения -- пишите!
С уважением, Ольга
а можно поподробней что и как делать?
хочется в разделе продажи в нижнем окне в продуктах иметь возможность включать к кроспродажам дополнительно еще и поставщики из раздела продукты
пошаговая инструкция как сделать приветствуется
Роман, здравствуйте!
Не совсем понятна Ваша задача... Вы хотите фильтровать Продукты по Поставщику? или в Продукте указывать Поставщика? если что-то из этого, то это не сдвоенная деталь, это можно немного иначе решить..
Опишите свою задачу подробней, можно с примером -- будет легче понять, что нужно сделать.
Ольга, приветствую,
Задача у меня следующая:
необходимо в модуле продажи в нижнем информационном окне иметь возможность во вкладке продукты открывать дополнительную вкладку поставщики, в настоящий момент там есть только Cross/Up-Sales и "Предыдущие продажи"
вкладка поставщики должна дублировать поставщиков из модуля "Продукты"
т.е. мне необходимо не новую а продублировать имеющуюся в малом дополнительном окне
Роман Борисович, во вложении прилагаю инструкцию. Придерживаясь описанного в инструкции алгоритма действий вы сможете реализовать свою задачу.
Если будут вопросы - пишите.
Наталья, огромное спасибо, пока не удалось победить данное мероприятие, но думаю мои 8 попыток пойдут как положительный опыт :)
что-то видимо делаю не правильно - это исправимо, решу и научусь
как получится, отпишусь
еще раз спасибо
разобрался спасибо, были проблемы с "указать в свойстве Window название окна реестра продуктов"
неправильное поле/название выбирал
перевыбрал и ошибка пропала