5. März 2009 10:37
Hallo zusammen, hier ist "der Neue" der gleich eine Frage hat
Ich missbrauche einen Report, der je nach Auswahl auf der Request-Form unterschiedliche Datenanpassungen macht (=> nichts drucken). In jedem OnPreDataItem überprüfe ich vorher ob dieses DataItem benötigt wird (anhand der Werte von der Request-Form) und überspringe es falls - nicht benötigt - mit CurrReport.BREAK.
Ich gehe unter anderem durch die DataItems "Item" & "Customer".
Jetzt kommt der merkwürdige Teil
In dem OnPostDataItem von "Customer" überprüfe ich ob eine (lokal gespeicherte) Logdatei existiert/genutzt wurde und möchte die, falls genutzt, mit File.Close() schließen.
Ich poste mal eben den dazugehörigen Code:
- Code:
Customer - OnPostDataItem()
IF NOT DataItemSkipped THEN BEGIN
IF bool1 THEN BEGIN
CloseFile();
END;
END ELSE BEGIN
DataItemSkipped := FALSE;
CurrReport.BREAK;
END;
Wundert euch bitte nicht über das viele drumherum, das habe ich eingebaut, damit ich im Debugger sehe an welcher Stelle genau er hängen bleibt. In "DataItemSkipped" ist vermerkt ob das DataItem im OnPreDataItem übersprungen wurde (wie unvorhersehbar
) Auch wenn ich nur in den Else-Block komme und den Report verlassen will, friert der Client ein.
Ursprünglich stand in dem OnPostDataItem nur "IF bool1 THEN file.CLOSE();", aber auch damit gab es keine Veränderung.
Und mittlerweile hab ich echt keine Idee mehr woran es liegt. Es ergibt für mich einfach keinen Sinn. Immer in der letzten Zeile des "Customer - OnPostDataItem" friert der Client ohne einen - für mich - ersichtlichen Grund ein.
Falls hier jemand einen Vorschlag hat, immer raus damit
Vielen Dank vorab!
Kleba :)