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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.03.2003, 11:23   #1  
SlavaShevtsov is offline
SlavaShevtsov
Участник
 
9 / 10 (1) +
Регистрация: 25.02.2003
Трюки программирования (A->B->A)
В Codeunit 12404 есть такой фрагмент:

LOCAL PROCEDURE CheckTransaction@6();
BEGIN
{
Уничтожаются все записи во временной таблице "Фин. Корресп. Буфер Учета" [12402], для которых поля "Фин. Книга Сумма" и "Фин. Корресп. Сумма" не равны. Если были потерты все записи, то выход.
}
WITH DoubleEntryBufferTemp DO BEGIN
IF NOT FIND('-') THEN
EXIT;
REPEAT
IF "G/L Amount" = "G/L Corresp. Amount" THEN
DELETE;
UNTIL NEXT = 0;
IF NOT FIND('-') THEN
EXIT;
END;

// А вот что это за цирк:

WITH DoubleEntryBuffer DO BEGIN
LOCKTABLE();
REPEAT
DoubleEntryBuffer := DoubleEntryBufferTemp;
IF FIND THEN
DELETE;
DoubleEntryBuffer := DoubleEntryBufferTemp;
INSERT;
UNTIL DoubleEntryBufferTemp.NEXT = 0;
END;
END;

Кажется, что запись копируется, запись стирается и на ее место вставляется только что скопированная запись. Казалось бы, код совершенно лишний. В чём тонкость и что делает этот кусок кода?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Navisioin 3.7 -> 3.6 Кактус NAV: Администрирование 4 04.12.2006 16:39
Управление складом->Подборы->Корректировка vasiok NAV: Функционал 0 10.03.2005 16:36
Import Consolidation from File <Attain> uk NAV: Программирование 1 26.03.2004 17:13
Товар - > формула расчета прибыли? Timur Kaumov NAV: Функционал 0 22.07.2003 14:37
String->Decimal Кактус NAV: Программирование 8 14.04.2003 11:08

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

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

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