[gelöst] REPORT.RUN - Funktion mit demselben Datensatz

26. November 2010 18:06

Vorweg: Classic Client

Hallo,

Ich versuche im Anschhluss an den Rechnungsdruck im Rechnungsreport selbst einen anderen Report aufzurufen (es ist auch nur eine Kopie des Rechnungsreports) um diesen dann per PDF-Drucker ins Archiv zu legen. Das klappt nur bis zu einem Punkt, weil ich die REPORT.RUN-Funktion nicht voll im Griff habe und nicht die aktuelle Position im "Sales Invoice Header" übergebe.

Ich mache es so:

im Abschnitt "Report - OnPostReport()" des Ursprungsreports wird die Funktion
REPORT.RUN(50031, FALSE, TRUE);
aufgerufen.
Leider druckt es mir dann im Report 50031 nicht die ausgewählte Rechnung des ersten Reports an, sondern die letzte verfügbare (NAV ist also die ganze Tabelle durchgelaufen).

In der Hilfe finde ich, dass ich da den Record noch angeben kann: REPORT.RUN(Number [, ReqWindow] [, SystemPrinter] [, Record])
aber wenn ich dann versuche einzugeben:
REPORT.RUN(50031, FALSE, TRUE, "Sales Invoice Header"."No.");
dann meckert NAV beim kompilieren von wegen Typkonvertierung Record:=Code und Fehler und so...??

Es ist schon klar, dass ich irgendwie die Nummer übergeben muss - aber wie?

Der Helfer würde mir ein glückliches WE bereiten... Danke.

P.S.: Gerade noch getestet: REPORT.RUNMODAL(50031, FALSE, TRUE); funktioniert auch nicht bzw. gleich wie REPORT.RUN
Zuletzt geändert von SGanzmann am 29. November 2010 11:52, insgesamt 1-mal geändert.

Re: REPORT.RUN - Funktion mit demselben Datensatz

26. November 2010 18:25

Code:
REPORT.RUN(50031, FALSE, TRUE, "Sales Invoice Header"."No.");

Damit übergibst du das Feld "Nr." und nicht den Record. Einfach den richtigen Record über GET mit der "No." greifen (das kann auch mit einer anderen Recordvariable passieren) und dann diesen übergeben.

Re: REPORT.RUN - Funktion mit demselben Datensatz

29. November 2010 08:38

Danke Kai - aber ich bin zu grün hinter den Ohren, diese Erklärung hilt alleine nicht (ich hab's wirklich probiert).

Einfach Uebergabe:= "Sales Invoice Header" im "OnAfterGetRecord" des Data Items "Sales Invoice Header" und dann das Übergabe-Record dranhängen beim Start des angehängten reports (REPORT.RUN(50031, FALSE, TRUE, Uebergabe); bringt leider dasselbe Ergebnis.

Vielleicht kann mir auch sonst jemand weiterhelfen, danke.

Re: REPORT.RUN - Funktion mit demselben Datensatz

29. November 2010 10:12

Hallo,

was Kai sagen wollte ist, das du das nicht so schreiben darfst:
Code:
    REPORT.RUN(50031, FALSE, TRUE, "Sales Invoice Header"."No.");


sondern so:
Code:
    REPORT.RUN(50031, FALSE, TRUE, "Sales Invoice Header");


Dabei musst du allerdings sicherstellen, das "Sales Invoice Header" auf dem richtigen Record steht, und die Filter noch korrekt gesetzt sind.

Gruß, Fiddi

Re: REPORT.RUN - Funktion mit demselben Datensatz

29. November 2010 11:52

Danke, offensichtlich bin ich auf dem Schlauch gestanden, habe es hingekriegt (brauche kein extra definiertes Record):

Allerdings muss ein Wert beim Funktionsaufruf noch von true auf false gestellt werden (dann nimmt NAV tatsächlich nicht den Standarddrucker sondern den in der Druckertabelle hinterlegten):

REPORT.RUN(50031, FALSE, FALSE, "Sales Invoice Header");