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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.02.2013, 00:39   #1  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
2 года назад была проблема с дублежами товаров/клиентов/брендов/..

Сделал еще тогда (сейчас наверное скажи написать на память - не смогу) код, который "мержит" данные.
Сейчас полной БД нет, чтобы достать объект, поэтому пишу почти полную МОЮ (ненужное - просто выкинуть) часть кода:
Цитата:
OnAfterGetRecord=VAR
Cust@1210000 : Record 18;
BEGIN
IF (OldCustomer <> '') AND (NewCustomer <> '') THEN
WITH Customer DO BEGIN
Cust.GET(NewCustomer);

CommentLineTmp.RESET;
CommentLineTmp.DELETEALL;
CommentLine.RESET;
CommentLine.SETRANGE("Table Name", CommentLine."Table Name"::Customer);
CommentLine.SETRANGE("No.", Cust."No.");
IF CommentLine.FINDFIRST THEN
REPEAT
CommentLineTmp.INIT;
CommentLineTmp.TRANSFERFIELDS(CommentLine);
CommentLineTmp.INSERT;
CommentLine.DELETE;
UNTIL CommentLine.NEXT = 0;

TmpCustomer.INIT;
TmpCustomer.TRANSFERFIELDS(Cust);
Cust.DELETE;

IF DefaultDimension.GET(DATABASE::Customer, OldCustomer, 'LAND') THEN BEGIN
TmpDefaultDimension.INIT;
TmpDefaultDimension.TRANSFERFIELDS(DefaultDimension);
DefaultDimension.DELETE;
END;

IF GUIALLOWED THEN
Window.UPDATE(1, Text002);
IF RENAME(NewCustomer) THEN BEGIN
TRANSFERFIELDS(TmpCustomer);
MODIFY;
IF GUIALLOWED THEN
Window.UPDATE(1, Text003);

IF CommentLineTmp.FINDFIRST THEN BEGIN
CommentLine.SETRANGE("No.", "No.");
IF CommentLine.FINDLAST THEN
LineNo := CommentLine."Line No."
ELSE
LineNo := 0;

REPEAT
LineNo += 10000;
CommentLine.INIT;
CommentLine.TRANSFERFIELDS(CommentLineTmp);
CommentLine."Line No." := LineNo;
CommentLine.INSERT;
UNTIL CommentLineTmp.NEXT = 0;
END;
END
ELSE BEGIN
TmpCustomer.INSERT;
TmpDefaultDimension.INSERT;
IF GUIALLOWED THEN
Window.UPDATE(1, Text004);
IF CommentLineTmp.FINDFIRST THEN
REPEAT
CommentLine.INIT;
CommentLine.TRANSFERFIELDS(CommentLineTmp);
CommentLine.INSERT;
UNTIL CommentLineTmp.NEXT = 0;
END;
SLEEP(200);
END;
END;
 

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

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

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

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

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