gelöst [RTC] CurrReport.Skip

28. März 2013 15:39

Hi,

ich habe bei der Rechnung ein CurrReport.skip eingebaut. Vor dem Skip wird noch eine Globale Variable berechnt. Im CC Skip mir das System die Zeile und hat den korrekten Wert. Im RTC ist in der Summe diese Zeile nicht enthalten, was mich vermuten lässt, dass der RTC ein Rollback macht. Ist das so?

Code:
IF ("Sales Invoice Line".Type = "Sales Invoice Line".Type::"G/L Account") AND ExistRoyLedgEntry THEN
  IF GnlPostingSetup.GET(GenBusPostGroup,GenProdPostGroup) THEN
    IF "Sales Invoice Line"."No." = GnlPostingSetup."Purch. Account" THEN BEGIN
        CASE "Sales Invoice Line"."VAT %" OF
          10: TotalAmountVAT10 += "Amount Including VAT" - Amount;
          20: TotalAmountVAT20 += "Amount Including VAT" - Amount;
        END;
      CurrReport.SKIP;
    END;
Zuletzt geändert von rom am 16. April 2013 11:41, insgesamt 1-mal geändert.

Re: [RTC] CurrReport.Skip

28. März 2013 16:48

rom hat geschrieben:Im RTC ist in der Summe diese Zeile nicht enthalten, was mich vermuten lässt, dass der RTC ein Rollback macht. Ist das so?

Nein, das nicht.
Das was du beobachtest, ist eine Folge des SKIPs im Zusammenhang mit der Datenaufbereitung für Visual Studio.
Visual Studio erhält alle Daten/Felder in Form einer einzigen großen "Tabelle", in der unter anderem auch der Wert TotalAmountVAT10 (u.a.) als Spalte angelegt sind.
Sobald du ein SKIP verwendest, wird eine ganze Zeile deines DataSets nicht geschrieben, inklusive der eben aktualisierten Werte für TotalAmountVAT10 und TotalAmountVAT20. Die fehlen dann einfach und können so bei der späteren Summenbildung nicht berücksichtigt werden.

Es ist vermutlich einfacher für dich zu verstehen, wenn du dir das DataSet in der RTC-Seitenansicht aufrufst. Wiederhole das Ganze mit testweise auskommentierten CurrReport.SKIP und vergleiche die beiden DataSets, speziell die Spalten TotalAmountVAT10 und TotalAmountVAT20. In der Nicht-Skip-Variante findest du eine Zeile mehr. Wenn du die Summe von je TotalAmountVAT10 und TotalAmountVAT20 bildest, sollten sie dort stimmen.

Je nach Anforderung kommen unterschiedliche Lösungswege in Frage.
Z.B. könntest du den Wert deiner globalen Variablen nicht in diesem DataItem "andrucken", sondern in einem nachfolgenden (das ggü. DataItem Sales Invoice Line NICHT weiter rechts eingerückt ist), das in keinem Fall übersprungen wird.
Oder zu verzichtest auf das SKIP und blendest statt dessen im VS-Layout die Rechnungszeile aus - ich bin mir allerdings nicht sicher, ob das nicht negative Auswirkungen auf die Summenbildung haben wird.

Im Übrigen empfehle ich dir, bei RTC-Report-Merkwürdigkeiten immer zuerst das DataSet zu analysieren. Sind alle Werte wie erwartet enthalten?

Re: [RTC] CurrReport.Skip

16. April 2013 11:41

Natalie hat geschrieben:
rom hat geschrieben:Im RTC ist in der Summe diese Zeile nicht enthalten, was mich vermuten lässt, dass der RTC ein Rollback macht. Ist das so?

Nein, das nicht.
Das was du beobachtest, ist eine Folge des SKIPs im Zusammenhang mit der Datenaufbereitung für Visual Studio.
Visual Studio erhält alle Daten/Felder in Form einer einzigen großen "Tabelle", in der unter anderem auch der Wert TotalAmountVAT10 (u.a.) als Spalte angelegt sind.
Sobald du ein SKIP verwendest, wird eine ganze Zeile deines DataSets nicht geschrieben, inklusive der eben aktualisierten Werte für TotalAmountVAT10 und TotalAmountVAT20. Die fehlen dann einfach und können so bei der späteren Summenbildung nicht berücksichtigt werden.

Es ist vermutlich einfacher für dich zu verstehen, wenn du dir das DataSet in der RTC-Seitenansicht aufrufst. Wiederhole das Ganze mit testweise auskommentierten CurrReport.SKIP und vergleiche die beiden DataSets, speziell die Spalten TotalAmountVAT10 und TotalAmountVAT20. In der Nicht-Skip-Variante findest du eine Zeile mehr. Wenn du die Summe von je TotalAmountVAT10 und TotalAmountVAT20 bildest, sollten sie dort stimmen.

Je nach Anforderung kommen unterschiedliche Lösungswege in Frage.
Z.B. könntest du den Wert deiner globalen Variablen nicht in diesem DataItem "andrucken", sondern in einem nachfolgenden (das ggü. DataItem Sales Invoice Line NICHT weiter rechts eingerückt ist), das in keinem Fall übersprungen wird.
Oder zu verzichtest auf das SKIP und blendest statt dessen im VS-Layout die Rechnungszeile aus - ich bin mir allerdings nicht sicher, ob das nicht negative Auswirkungen auf die Summenbildung haben wird.

Im Übrigen empfehle ich dir, bei RTC-Report-Merkwürdigkeiten immer zuerst das DataSet zu analysieren. Sind alle Werte wie erwartet enthalten?



Danke für die Antwort. Das mit dem Datasset ist mir dann auch gekommen.. ich habe es nun über eine Variable gelöst.