NAV stürzt im OnPostDataItem unerklärlicherweise ab

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 :)

Re: NAV stürzt im OnPostDataItem unerklärlicherweise ab

5. März 2009 11:18

Ein CurrReport.BREAK macht nur in einem OnPreDataItem Sinn - warum verwendest du ihn im OnPostDataItem?

Re: NAV stürzt im OnPostDataItem unerklärlicherweise ab

5. März 2009 11:45

Natalie hat geschrieben:Ein CurrReport.BREAK macht nur in einem OnPreDataItem Sinn - warum verwendest du ihn im OnPostDataItem?


Gute Frage :-) Ich hatte gehofft er würde den Trigger verlassen, bevor er abstürzt. Aber jetzt wo Du es sagst... ich nehm's mal wieder raus ;-)

Re: NAV stürzt im OnPostDataItem unerklärlicherweise ab

6. März 2009 07:57

Kleba hat geschrieben:ich nehm's mal wieder raus

Such den Fehler in der Logik. BREAK in OnPostDataItem ist zwar sinnlos, verursacht aber keinen Fehler. Wenn mit dem Öffnen / Schliessen der Datei irgendwas nicht stimmen würde, hättest du eine Fehlermeldung gekriegt. Für Test kommentiere alles in diesem Trigger aus. Wenn das nicht hilft, kommentiere im Bericht alles aus, was mit der Datei zu tun hat, usw. Du solltest erstmal zum Ausgangpunkt kommen, wo alles funktioniert, d.h. der Bericht ohne Fehler ausgeführt wird. Dann schalte schrittweise die auskommentierten Blöcke ein, um festzustellen, wo die Ursache liegt.

Gruß, Michael