AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.03.2008, 12:11   #1  
demon46 is offline
demon46
Участник
 
78 / 12 (1) ++
Регистрация: 26.06.2006
Как проверить наличие хотя бы одной записи в подчиненной таблице.
Доброго всем времени суток!
Вопрос на самом деле не такой уж и простой. У меня есть таблица Штрафные санкции VendContractPenaltyProvision эта таблица подчинена таблице RContractTable а в форме последней есть грид, который ссылается на таблицу VendContractPenaltyProvision. Так вот у договора может быть много штрафных санкций, но обязательно должна быть хотя бы одна! Пробовал в методе validateWrite у таблицы RContractTable прописать следующий код:
X++:
    VendContractPenaltyProvision tab;
    ;
    select firstonly tab
      where tab.RContractAccount == this.RContractAccount && tab.RContractPartnerCode == this.RContractPartnerCode;
    if (!tab )
      {
         Info("В данном договоре не заполнены штрафные санкции");

         return false;
      }
Вроде все работает, если сразу пытаться делать записи в грид таблицы VendContractPenaltyProvision. В противном случае (если была изменена хотя бы одно поле в таблице RContractTable) при переходе на грид таблицы VendContractPenaltyProvision выпадает сообщение "В данном договоре не заполнены штрафные санкции" и грид не активен, и сохранить запись нельзя. В принципе путей для заполнения таблицы VendContractPenaltyProvision много, но хотелось бы это делать в форме таблицы RContractTable. Может кто-нибудь сталкивался с подобной задачкой. Поделитесь пожалуйста опытом. Да и кстати, на этом форуме есть каки-либо системы поощрения участников, как например на исходниках. А то я все спасибо да спасибо. А спасибо как многие знают не булькает! )
За это сообщение автора поблагодарили: mazzy (2).
Старый 06.03.2008, 12:17   #2  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
по поводу "спасибо" есть кнопочка "одобрить сообщение" под каждым сообщением
За это сообщение автора поблагодарили: demon46 (1).
Старый 06.03.2008, 13:12   #3  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Можно пойти по-другому и сделать отложенную проверку, например, при смене статуса договора на "Действует".
__________________
Андрей.
За это сообщение автора поблагодарили: demon46 (1).
Старый 06.03.2008, 13:51   #4  
demon46 is offline
demon46
Участник
 
78 / 12 (1) ++
Регистрация: 26.06.2006
Идея хороша. Я думал о подобной проверке, но как Вы выразились это ведь отложенная проверка. Далее в коде мне придется использовать проверки на заполненость VendContractPenaltyProvision но все же хотелось бы локализовать проверку на уровне ввода.
Старый 06.03.2008, 14:52   #5  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Можно еще сделать что-то типа мастера создания договора (пример - форма создания заказа), в ней иметь грид со штрафными санкциями (не связанный с конкретным договором, временная таблица), и создавать новый договор только при наличии хотя бы одной записи в гриде, заодно и заполняя таблицу VendContractPenaltyProvision.
Или при сохранении договора в validateWrite() вызывать отдельную форму для создания строк, возможно на базе временной таблицы, и действовать сообразно обстоятельствам.
__________________
Андрей.
Старый 07.03.2008, 09:41   #6  
demon46 is offline
demon46
Участник
 
78 / 12 (1) ++
Регистрация: 26.06.2006
Dron AKA andy
Респект тебе. Вобщем-то решился пойти по твоему совету на счет статуса договора.
Теги
exists, проверка, существование

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
while select зацикливается на одной записи ViV DAX: Программирование 7 05.02.2019 12:54
Как сдлеать join по одной таблице, а курсор по другой cerbo DAX: Программирование 9 03.10.2008 09:29
Как запретить создавать записи в подчиненной таблице, если шапка пуста? Eldar9x DAX: Программирование 6 19.06.2008 14:44
Создание новой записи в таблице Andrux DAX: Программирование 28 01.06.2007 10:23
отслеживание существования записей в подчиненной таблице kitty DAX: Программирование 8 06.07.2005 20:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:14.