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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.02.2008, 11:58   #1  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от Fordewind Посмотреть сообщение
З.Ы. Красивее 4 первые строки заменить на:
IF GET(271,EntryNo,DimensionCode) THEN BEGIN
Тогда уж лучше использовать RecordID.TABLENO, чтобы на хадкодить ;-)
А MODIFY сообщениями обвесь до и после - самый простой сопоб определить оно или нет?

P.S. И кстати, табличка эта не блокорована?? Какая версия NAV?
Старый 19.02.2008, 14:20   #2  
unalexia is offline
unalexia
Участник
 
79 / 10 (1) +
Регистрация: 28.12.2005
Цитата:
Сообщение от RedFox Посмотреть сообщение
Тогда уж лучше использовать RecordID.TABLENO, чтобы на хадкодить ;-)
А MODIFY сообщениями обвесь до и после - самый простой сопоб определить оно или нет?

P.S. И кстати, табличка эта не блокорована?? Какая версия NAV?
Немоного продвинулся дальше.... Вроде как проблема в том, что указанный код на происваивание нового значения и Modify находится в триггере такой же таблицы... Как бы в этом случае и происходит зацикливание....

Смоделировал не на тригерах отчета...:


LedgerEntryDimension.SETRANGE("Table ID",271);
LedgerEntryDimension.SETRANGE("Entry No.",9578993);
IF LedgerEntryDimension.FIND('-') THEN BEGIN
IF LedgerEntryDimension."Dimension Code" = 'СТАТЬИ ДДС' THEN BEGIN
LedgerEntryDimension."Dimension Value Code" := 'Р3110';
LedgerEntryDimension.MODIFY; все ОК!!
END;

Но если (по аналогии с тригерром OnAfterGetRecord())

LedgerEntryDimension.SETRANGE("Table ID",271);
LedgerEntryDimension.SETRANGE("Entry No.",9578993);
IF LedgerEntryDimension.FIND('-') THEN REPEAT
IF LedgerEntryDimension."Dimension Code" = 'СТАТЬИ ДДС' THEN BEGIN
LedgerEntryDimension."Dimension Value Code" := 'Р3110';
LedgerEntryDimension.MODIFY; ЗАВИСАНИЕ!!!! ЗАЦИКЛИВАНИЕ!!!!
UNTIL LedgerEntryDimension.NEXT=0;
Старый 19.02.2008, 16:18   #3  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от unalexia Посмотреть сообщение
Немоного продвинулся дальше.... Вроде как проблема в том, что указанный код на происваивание нового значения и Modify находится в триггере такой же таблицы... Как бы в этом случае и происходит зацикливание....

LedgerEntryDimension.SETRANGE("Table ID",271);
LedgerEntryDimension.SETRANGE("Entry No.",9578993);
IF LedgerEntryDimension.FIND('-') THEN REPEAT
IF LedgerEntryDimension."Dimension Code" = 'СТАТЬИ ДДС' THEN BEGIN
LedgerEntryDimension."Dimension Value Code" := 'Р3110';
LedgerEntryDimension.MODIFY; ЗАВИСАНИЕ!!!! ЗАЦИКЛИВАНИЕ!!!!
UNTIL LedgerEntryDimension.NEXT=0;
У Вас DataItem для этой линии = LedgerEntryDimension?
Если да, то переназовите переменную и добавте LedgerEntryDimension.RESET в начале
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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