18.04.2011, 12:25 | #1 |
Участник
|
Здравствуйте.
Создал поле "Дата первого заказа" (тип поля, дата) - в карточке клиента. С помощью report'а мне нужно заполнить это поле у всех клиентов, основываясь на поле дата учета из таблицы sales invoice header (SIH). Т,е. если у клиента были заказы, то мне нужна дата самого первого заказа которая будет проставляться в поле "Дата первого заказа" в карточке клиента, при отработке отчета. Подскажите пожалуйста какой нужен для этого код. |
|
18.04.2011, 12:54 | #2 |
Участник
|
Цитата:
Сообщение от lobster
Здравствуйте.
Создал поле "Дата первого заказа" (тип поля, дата) - в карточке клиента. С помощью report'а мне нужно заполнить это поле у всех клиентов, основываясь на поле дата учета из таблицы sales invoice header (SIH). Т,е. если у клиента были заказы, то мне нужна дата самого первого заказа которая будет проставляться в поле "Дата первого заказа" в карточке клиента, при отработке отчета. Подскажите пожалуйста какой нужен для этого код. "Customer No.", "Posting Date", "Currency Code" Код будет примерно такой: Код: CustLedgEntry.SETCURRENTKEY("Customer No.", "Posting Date", "Currency Code"); CustLedgEntry.SETRANGE("Document Type", CustLedgEntry,"Document Type"::Invoice); IF Cust.FINDSET REPEAT CustLedgEntry.SETRANGE("Customer No.", Cust."No."); IF CustLedgEntry.FINDFIRST THEN BEGIN Cust."First Order Date" := CustLedgEntry."Posting Date"; Cust.MODIFY; END; UNTIL Cust.NEXT=0; |
|
18.04.2011, 23:50 | #3 |
Участник
|
Хороший код. Главное, надёжный. Уважаю! Только, имхо, не проще ли будет выставить тип поля "Дата первого заказа" как FlowField ? А в формуле вписать, что-то типа: Min("Sales Invoice Header"."Posting Date" WHERE (Bill-to Customer No.=FIELD(No.))) Глядишь, никаких отчётов "запускать" и не надо будет, да и программировать не придётся. |
|
19.04.2011, 10:35 | #4 |
Участник
|
Цитата:
Сообщение от jopagames2
Хороший код.
Главное, надёжный. Уважаю! Только, имхо, не проще ли будет выставить тип поля "Дата первого заказа" как FlowField ? А в формуле вписать, что-то типа: Min("Sales Invoice Header"."Posting Date" WHERE (Bill-to Customer No.=FIELD(No.))) Глядишь, никаких отчётов "запускать" и не надо будет, да и программировать не придётся. Единственное - я все таки настаиваю, что считать надо по 21 таблице: Min("Cust. Ledger Entry"."Posting Date" WHERE (Customer No.=FIELD(No.),Document Type=CONST(Invoice))) |
|