14.11.2009, 01:05 | #3 |
Участник
|
Итак. Решение ( для кодюнита НЕ для отчета).
1. Создаем нужную нам таблицу 50028 Export Vendor и задаем нужные нам поля. 2. Создаем codeunit и пишем в нем новую функцию: Код: CopyFromVendor(VAR vend : Record Vendor;process : 'Insert,Delete,Update,Rename';VAR rec : Code[10]) expvend.TRANSFERFIELDS(vend); expvend."Last Date Modified":= TODAY; expvend."Last Time Modified":= TIME; expvend."No. Old":=rec; CASE process OF process::Rename: expvend.Process:=expvend.Process::Rename; process::Insert: expvend.Process:=expvend.Process::Insert; process::Delete: expvend.Process:=expvend.Process::Delete; process::Update: expvend.Process:=expvend.Process::Update; END; expvend.INSERT(TRUE);
3. В таблице 23 Vendor в соответствующих тригерах пишем следующий код: Код: OnInsert() reportExp.copyFromVendor(Rec,process::Insert,xRec."No."); OnModify() NavisionExchange.CopyFromVendor(Rec,process::Update,xRec."No."); OnDelete() NavisionExchange.CopyFromVendor(Rec,process::Delete,xRec."No."); OnRename() NavisionExchange.CopyFromVendor(Rec,process::Rename,xRec."No.");
4. В таблице 23 Vendor создается:
В функцию передается значение переменной соответствующее имени триггера (см. код). В переменную Rec передается текущая запись, в xRec - прошлая. Для того чтобы поле Export Line No. было инкрементным и формироваться по стандартной серии номеров ЭКСП_ПОСТ делаем соедующие действия: 1. Создаем в Финансы-Настройка - Серии номеров своб серию ЭКСП_ПОСТ и задаем ей диапазон , к примеру, 1..9999. Дату можно не указывать. 2.В таблице Export Vendor в триггере OnInsert() нужно использовать кодюнит Serial No. . а в нем есть функция setSerial(), кажется так она называется. точно не помню. Так вот в первом входном параметре этой функции нужно написать "ЭКСП_ПОСТ". И ВУ а ля!) |
|