4. Januar 2010 12:15
// Soll Customer ausschließen, wo es keine Aufträge gibt
"Sales Header".RESET;
"Sales Header".SETRANGE("Document Type","Sales Header"."Document Type"::Order);
"Sales Header".SETRANGE("Sell-to Customer No.",Customer."No.");
IF NOT "Sales Header".FINDFIRST THEN
CurrReport.SKIP;
gDeLineAmount := 0;
gboFoundBecken := FALSE;
greSalesLine.RESET;
greSalesLine.SETRANGE("Document Type","Sales Header"."Document Type");
greSalesLine.SETRANGE("Document No.","Sales Header"."No.");
greSalesLine.SETRANGE("Sell-to Customer No.","Sales Header"."Sell-to Customer No.");
IF greSalesLine.FINDFIRST THEN BEGIN
REPEAT
gDeLineAmount += greSalesLine."Line Amount";
greItem.RESET;
greItem.SETRANGE("No.",greSalesLine."No.");
IF greItem.FINDFIRST THEN BEGIN
IF greItem."Product Group Code" = 'BECKEN' THEN BEGIN
gboFoundBecken := TRUE;
gReItemVariant.RESET;
gReItemVariant.SETRANGE("Item No.",greItem."No.");
gReItemVariant.SETRANGE(Code,greSalesLine."Variant Code");
IF gReItemVariant.FINDFIRST THEN BEGIN
gTxDescription := greItem.Description + ' ' + gReItemVariant."Description 2";
gboFoundBecken := TRUE;
END ELSE BEGIN
gTxDescription := greItem.Description;
gboFoundBecken := TRUE;
END;
END ELSE BEGIN
IF NOT gboFoundBecken THEN
gTxDescription := Text001;
END;
END;
UNTIL NEXT = 0;
END;
gDeCustAmount += gDeLineAmount;
// Wenn kein Zeilebetrag dann Sales Header ignorieren
IF gDeLineAmount = 0 THEN
CurrReport.SKIP;
4. Januar 2010 12:28
rom hat geschrieben:Im onPreDataItem vom Sales Header ist folgender Code:
- Code:
// Soll Customer ausschließen, wo es keine Aufträge gibt
"Sales Header".RESET;
"Sales Header".SETRANGE("Document Type","Sales Header"."Document Type"::Order);
"Sales Header".SETRANGE("Sell-to Customer No.",Customer."No.");
IF NOT "Sales Header".FINDFIRST THEN
CurrReport.SKIP;
Im onAfterGetRecord vom Sales Header habe ich folgenden Code
...IF greSalesLine.FINDFIRST THEN BEGIN
REPEAT
UNTIL NEXT = 0;
END;
gDeCustAmount += gDeLineAmount;
UNTIL greSalesLine.NEXT = 0;
4. Januar 2010 12:40
Natalie hat geschrieben:Mal im "Überflug":
Ich seh da am Ende einen Fehler:
- Code:
...IF greSalesLine.FINDFIRST THEN BEGIN
REPEAT
UNTIL NEXT = 0;
END;
gDeCustAmount += gDeLineAmount;
Es muss heißen
- Code:
UNTIL greSalesLine.NEXT = 0;