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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.08.2011, 11:23   #1  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Доброго дня!

Эта ф-ия отвечает за названия столбцов –дат в матричной форме ( кодюнит PeriodFormManagement).
Заинтересовал меня выделенный кусок. Выполняется не засереный код.
А тут идет присвоение, а потом поиск. Засеренный код не выполняется.
и работает и без Calendar.SETRANGE("Period Type",PeriodType);

FindDate(SearchString : Text[3];VAR Calendar : Record Date;PeriodType : 'Day,Week,Month,Quarter,Year,Accounting Period') : Boolean

Calendar.SETRANGE("Period Type",PeriodType);

// вот здесь! >>
Calendar."Period Type" := PeriodType;
IF Calendar."Period Start" = 0D THEN
Calendar."Period Start" := WORKDATE;

// вот здесь! <<

IF SearchString IN ['','=><'] THEN
SearchString := '=<>';
IF PeriodType = PeriodType::"Accounting Period" THEN BEGIN
SetAccountingPeriodFilter(Calendar);
Found := AccountingPeriod.FIND(SearchString);
IF Found THEN
CopyAccountingPeriod(Calendar);
END ELSE BEGIN
Found := Calendar.FIND(SearchString);
IF Found THEN
Calendar."Period End" := NORMALDATE(Calendar."Period End");
END;
EXIT(Found);

Я не понимаю его логику.
Предположительно выполняется присвоение ключевых полей делается для поиска FIND('=><').

Подскажите, пжл, кто глубже понимает Нав, в чем фишка?
Старый 29.08.2011, 12:58   #2  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Думаю, что вы правы в своем предположении, это поиск записи с учетом ранее наложенного фильтра.
Причем в документации по функции FIND найдем "If this parameter contains '=', '>' or '<', then you must assign value to all fields of the current and primary keys before you call FIND." Так что без присваивания значения она работать в данном случае и не может))
Старый 29.08.2011, 13:19   #3  
mira is offline
mira
Участник
Аватар для mira
 
140 / 25 (1) +++
Регистрация: 18.03.2007
Адрес: Москва
Спасибо большое, prefreitor!

Теперь все до конца ясно.

Только не получается сразу привязать документацию к коду. Талант нужен.
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:30.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.