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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.05.2008, 11:40   #1  
stdevol is offline
stdevol
Участник
 
2 / 10 (1) +
Регистрация: 11.05.2008
Я только начинаю работать с Navision. И возникла такая задача:
Может быть задана группа бюджетов. Также задаем список бюджетов. Для каждого бюджета могут быть заданы статьи. Они могут заполнять друг друга по механизму автозополнения. Проверка на то, что статья не может автозаполнять непосредственно саму себя есть. Но нет проверки, что это может происходить косвенным образом. Например, если в 1-ой статье, указать, что она заполнит вторую статью, а во 2-ой, что она заполнит первую, то получится циклическая ссылка статьи 1 на саму себя.
Так, вот задача: реализовать отчет, который выдавал бы список статей у которых есть циклические ссылки.
Подскажите в каком направлении действовать
Старый 12.05.2008, 11:25   #2  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
При указании ссылки на статью делайте след. проверку. Создайте рекурсивную ф-ю. Соберите в темповую таблицу tmpTb все статьи, что ссылаются.
Пусть ф-я называется Collect.

Например в статье X хотим указать ссылку на Y,
tmpTbl.RESET
tmpTbl.DELETEALL;
collect(X);
checking(Rec)

Код:
Ф-я collect(ParmCode) 
LocRealTb.SETRANGE("refer",ParmCode);
IF LocRealTb.FIND('-') THEN BEGIN
	REPEAT
		tmpTb := LocRealTb;
		tmpTb.INSERT; // если с самого начала все верноЮ, то IF не нужен
		collect(LocRealTb.Code);
	UNTIL LocRealTbl.NEXT = 0;
END ELSE EXIT;
А затем еще рекурсия
ф-я checking(ParamTb)
Код:
IF tmpTb.GET(ParamTb.Code) then error('dfdfdf');
IF ParamTb."refer" = '' then exit;
ParamTb.GET(ParamTb."refer");
checking(ParamTb)
только добавьте туда проверки на пустые значения и т.п.
Старый 25.07.2008, 14:37   #3  
stdevol is offline
stdevol
Участник
 
2 / 10 (1) +
Регистрация: 11.05.2008
Спасибо :-)
 

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

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

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

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

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