30.01.2017, 18:10 | #1 |
Участник
|
FormDataSource метод delete. Пропустить подтверждение
Добрый день!
Такой вопрос возник. Есть такой код: X++: public void clicked() { TMR_PortalModulesForDoc createRecord; super(); if(this.checked()) { createRecord.TMR_KPDocumentCode = TMR_AttachedDocsforKPLines.TMR_KPDocumentCode; createRecord.TMR_ModuleKPType = TMR_ModuleKPType::Logistics; TMR_PortalModulesForDoc.data(createRecord); TMR_PortalModulesForDoc_DS.write(); } else { TMR_PortalModulesForDoc.data(TMR_PortalModulesForDoc); TMR_PortalModulesForDoc_DS.delete(); } } Изначальная постановка задачи. Есть таблица документов. Есть зависимая по номеру документов таблица состоящая из Enum(Логистика, Торговля) и номера документа. Задача звучит так - реализовать поле признак на форме из вариантов Enum(Логистика, Торговля). При этом для одного документа может быть одно или несколько значений. |
|
30.01.2017, 18:38 | #2 |
Участник
|
Не понял как ваш вопрос связан с изначальной постановкой задачи, которую вы привели.
По сути вопроса: сообщение вызывается внутри super() метода validateDelete датасурса. Если не хотите, чтобы он вызывался, перекройте этот метод и не вызывайте super(). Подтверждение удаления на форме Альтернативный вариант - это удалять напрямую в таблице, а не через датасурс. |
|
30.01.2017, 22:25 | #3 |
Участник
|
Да, спасибо, это работает. Я просто не очень представляю как выполнить требование - какие контролы использовать для этой задачи.
|
|
31.01.2017, 09:11 | #4 |
Участник
|
Посмотрите в сторону edit-методов
|
|
31.01.2017, 09:28 | #5 |
Участник
|
Это из-за того, что на таблице TMR_PortalModulesForDoc включен запрет на каскадное удаление записей в связанной таблице.
Найдите в АОТ эту таблицу и зайдите внутри нее в узел DeleteActions. Там перечислены таблицы, в которых при удалении строки из вашей таблицы, данные либо удалятся автоматически, либо удалятся по вопросу (как у вас), либо запретят удаление из вашей таблицы. За эти три варианта поведения отвечает свойство DeleteAction: если оно равно Cascade, то все подчиненные записи удалятся втихую, если равно Cascade + Restricted, то удалятся с подтверждением пользователя (как у вас), если равно Restricted, то удаление не сработает с сообщением, что "Существуют строки". Последний раз редактировалось Ace of Database; 31.01.2017 в 09:31. |
|
31.01.2017, 12:33 | #6 |
Участник
|
На самом деле я просто в 6 Аксаптой еще не очень, как в прочем и с аксаптой в целом. Вообще как оказалось мне нужен был вариант мультиселекта по значениям Enum'а. В стандарте есть интересный класс SysLookupMiltiSelect. Проект во вложении.
PrivateProject_Tutorial_TestMultiLookUpCtrl.xpo |
|
|
За это сообщение автора поблагодарили: Ace of Database (3). |
|
|