16. November 2010 14:27
SelectItem := TempItem;
SelectItem.COPYFILTERS(TempItem);
REPORT.RUN(50073,TRUE,FALSE,SelectItem);
IF TempItem.FINDSET THEN
REPEAT
MESSAGE('%1',TempItem);
UNTIL TempItem.NEXT = 0;
19. November 2010 14:59
SelectItem := TempItem; // Werte von TempItem in SelectItem schreiben, und zwar nur die Werte vom letzten Datensatz, wenn vorher kein FINDSET passiert ist, ansonsten vom ersten
SelectItem.COPYFILTERS(TempItem); // kopiert die Filter von TempItem; ohne noch mehr Code zu sehen würde ich tippen, es sind keine gesetzt.
REPORT.RUN(50073,TRUE,FALSE,SelectItem); // Aufruf des Reports mit dem einen Artikel in SelectItem, wenn mich nicht alles täuscht, geht der so durch alle Datensätze, falls wirklich keine Filter gesetzt sind. Es interessiert den Report herzlich wenig, wo der Datenzeiger steht.
SetItem(VAR NewTempItem : TEMPORARY Record Item)
IF NewTempItem.FINDSET THEN REPEAT
TempItem2.INIT;
TempItem2.TRANSFERFIELDS(NewTempItem);
TempItem2.INSERT;
UNTIL NewTempItem.NEXT = 0;
Globale Variable
Name DataType Subtype Length
TempItem2 Record Item Temporary = YES
20. November 2010 14:54