Задача – создать раздел «Заявки» с деталью «Продукты».
Я создал с помощью матера раздел «Заявки» (Enquiry). В режиме администратора этом разделе добавил деталь «Продукты» скопировав tbl, ds, и sq из аналогичного раздела в Счетах и добавив страницу во фрейм Details в wnd_EnquiryWorkspace. Соответственно заменил все поля и связи с Invoice на Enquiry. В итоге почти все заработало. В деталях появилась вкладка «Продукты». Можно делать подбор продукта. Добавленные продукты сохраняются в базе данных, НО – в поле EnquiryID (аналог InvoiceID) записывается NULL. Поэтому при обновлении детали «Продукты» список продуктов заказа не отображается.
Вопрос – какой механизм отвечает за запись значений датасета в базу данных при добавлении продукта? Что это за функция и в каком скрипте она содержится? Можете привести пример?
Нравится
Вам необходимо проинициализировать деталь. Можете сделать по аналогии с теми же Счетами. В скрипте workspace-а, в функции RefreshDetails есть условие pcDetails.ActivePage.Name == pgOfferingsDetail.Name, при выполнении которого выполняется RefreshCommonDetail.
Вопрос не с обновлением гида “Детали”. Функция обновления работает. Привожу ее ниже
function RefreshDetails() { if (!scr_BaseWorkspace.RefreshDetails()) { return; } if (pcDetails.ActivePage.Name == pgGroupsDetail.Name) { RefreshEnquiryGroupsDetail(); } else if (pcDetails.ActivePage.Name == pgAccessDetail.Name) { RefreshAccessDetail(BaseWorkspace, wndAccessDetail, 'tbl_EnquiryRight'); } else if (pcDetails.ActivePage.Name == pgOfferingsDetail.Name) { RefreshCommonDetail(BaseWorkspace, wndOfferingsDetail, 'EnquiryID', 'ID', 'ds_OfferingInEnquiry'); } }
Дело в том что в базу данных не записывается EnquiryID. Т.е. записи о выбранных продуктах есть, а связи с конкретным заказом нет. Если в поле EnquiryID прописать нужный GUID вручную, то все нормально отображается. Нужно чтобы при выборе продукта в базу данных записывался GUID, т.е. идентификатор конкретного заказа. Как это сделать?
В таком случае, можете использовать Self.Attributes('ParentRecordID') в качестве значения по умолчанию для поля EnquiryID при создании новой записи на детали.
Получилось. Была ошибка в запросе, неправильно указана таблица. Спасибо за помощь.