|
![]() |
#1 |
Участник
|
при открытии form 20 выполняется следующий код:
Form - OnOpenForm() IF RunOnTempRec THEN RESET; Form - OnFindRecord(Which : Text[1024]) : Boolean IF RunOnTempRec THEN BEGIN TempGLEntry.COPY(Rec); Found := TempGLEntry.FIND(Which); IF Found THEN Rec := TempGLEntry; EXIT(Found); END ELSE EXIT(FIND(Which)); Form - OnNextRecord(Steps : Integer) : Integer IF RunOnTempRec THEN BEGIN TempGLEntry.COPY(Rec); ResultSteps := TempGLEntry.NEXT(Steps); IF ResultSteps <> 0 THEN Rec := TempGLEntry; EXIT(ResultSteps); END ELSE EXIT(NEXT(Steps)); Form - OnAfterGetRecord() fn_LegCompNo; // $94 >> Form - OnAfterGetCurrRecord() // RA20 >> fn_ViewTotals; // RA20 << fn_ViewTotals() // RA20 IF RunOnTempRec THEN CurrForm.TotalAmount.VISIBLE := g_cduOtherFunctions.fn_ViewTotalGLEntryAmount(TempGLEntry) ELSE CurrForm.TotalAmount.VISIBLE := g_cduOtherFunctions.fn_ViewTotalGLEntryAmount(Rec); CurrForm.TotalDebitAmount.VISIBLE := CurrForm.TotalAmount.VISIBLE; CurrForm.TotalCreditAmount.VISIBLE := CurrForm.TotalAmount.VISIBLE; fn_LegCompNo() // $94 >> IF "Document Type" = "Document Type"::Invoice THEN BEGIN //fn_LegCompNo l_SalesInvoiceHeader.SETRANGE("No.", "Document No."); IF l_SalesInvoiceHeader.FIND('-') THEN BEGIN "Leg. Comp. Posting No." := l_SalesInvoiceHeader."Leg. Comp. Posting No."; l_SalesShptHeader.SETCURRENTKEY("Order No."); l_SalesShptHeader.SETRANGE("Order No.", l_SalesInvoiceHeader."Order No."); IF l_SalesShptHeader.FIND('-') THEN "Leg. Comp. Shipping No." := l_SalesShptHeader."Leg. Comp. Shipping No." ELSE CLEAR("Leg. Comp. Shipping No."); END ELSE BEGIN CLEAR("Leg. Comp. Posting No."); CLEAR("Leg. Comp. Shipping No.") END END ELSE BEGIN CLEAR("Leg. Comp. Posting No."); CLEAR("Leg. Comp. Shipping No.") END // $94 << , но до запуска form 20 выполняется следующая функция, которая и открывает эту форму; она запускается с определённым параметром на соответствующем дрилдауне субформы Оборотной ведомости (form 12406): DrillDownGLEntry(Show : 'StartBalance,Debit,Credit,EndBalance,NetChange') GLEntry.RESET; // $45 >> //GLEntry.SETCURRENTKEY("Source Type","Source No.","G/L Account No.","Global Dimension 1 Code","Global Dimension 2 Code"); GLEntry.SETCURRENTKEY("Source Type","Source No.","G/L Account No.","Global Dimension 1 Code","Global Dimension 2 Code", "Business Unit Code","Posting Date"); // $45 << GLEntry.SETRANGE("Source Type",GLEntry."Source Type"::Customer); GLEntry.SETRANGE("Source No.","No."); GLEntry.SETFILTER("G/L Account No.",GETFILTER("G/L Account Filter")); GLEntry.SETFILTER("Global Dimension 1 Code",GETFILTER("Global Dimension 1 Filter")); GLEntry.SETFILTER("Global Dimension 2 Code",GETFILTER("Global Dimension 2 Filter")); GLEntry.SETFILTER("Posting Date",GETFILTER("Date Filter")); CASE Show OF Show::StartBalance: IF COPYSTR(GETFILTER("Date Filter"),1,2) <> '..' THEN BEGIN IF GETRANGEMIN("Date Filter") <> 0D THEN GLEntry.SETRANGE("Posting Date",0D,GETRANGEMIN("Date Filter") - 1); END ELSE EXIT; Show: ![]() Show::Credit: GLEntry.SETFILTER("Credit Amount",'<>%1',0); Show::EndBalance: IF GETRANGEMAX("Date Filter") <> 0D THEN // RA26 MBS ERROR >> // GLEntry.SETRANGE("Posting Date",0D,GETRANGEMAX("Date Filter") - 1) GLEntry.SETRANGE("Posting Date",0D,GETRANGEMAX("Date Filter")) // RA26 MBS ERROR << ELSE EXIT; Show::NetChange: GLEntry.SETFILTER(Amount,'<>%1',0); ELSE ERROR(''); END; //GLEntry.SETCURRENTKEY("Posting Date"); // $45 FORM.RUN(0,GLEntry); |
|