[gelöst] RTC:Unterschiedl.C/AL-Verhalten Drucken-Druckvors

30. September 2015 09:38

Hi,

erstmal tolles Lob an dieses Forum! Guck hier sonst immer als Gast rein...aber...jetzt ist es doch mal soweit...und ich finde keine Antwort auf meine Frage...

Ich habe einen Report gebaut mit der contact-Tabelle als DataItem. Der Report ist ein Info-Schreiben an diverse Kontakte.

Wenn bestimmte Bedingungen erfüllt sind, soll das Info-Schreiben nicht gedruckt, aber ein Protokolleintrag erzeugt werden.
Dafür rufe ich im OnAfterGetRecord-Trigger
- eine Funktion (Protokoll schreiben) auf und
- möchte den Report mit dem nächsten Record weiterdurchlaufen (CurrReport.SKIP;).

Wenn ich den Report für einen Kontakt (der genau diese bestimmten Bedingungen erfüllt und nicht gedruckt, aber protokolliert werden soll) aus dem RTC drucke, dann wird meine Protokoll-Tabelle nicht gefüllt?!?

Komischerweise funktioniert der Code im ClassicClient sowohl bei Druckvorschau (leerer Bericht wird angezeigt) als auch beim Drucken (nichts wird gedruckt).

Im RTC klappt es in der Seitenansicht (leere Seite wird angezeigt) auch!
Aber eben nicht, wenn ich drucke?!? Die Funktion "Protokoll schreiben" wird auf jeden Fall auch beim Drucken durchlaufen, ich habe hier eine Message eingebaut.

Sobald ich den Report für mehrere Personen anwähle (also mindestens eine Seite gedruckt wird), klappt alles.

Für mich wirkt es so, als ob der Report, wenn er nichts zu drucken hat, einfach die Funktion übergeht.
Aber das kann ja nicht sein, da doch die Messages aus der Funktion angezeigt werden und es im Vorschau-Modus ebenfalls ordentlich läuft.

Ich danke für Eure Bemühungen und die bisherige Hilfe schon einmal ganz herzlich.

Wäre echt toll, wenn mir jemand dieses komische Verhalten des RDLC-Reports erklären könnte - ich tappe total im Dunkeln.
Zuletzt geändert von evz am 16. November 2015 11:35, insgesamt 1-mal geändert.

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

6. November 2015 14:34

Hallo nochmal,
kann keiner helfen? Oder habe ich das Problem nicht verständlich umschrieben?
Ich umgehe diese Sache jetzt erstmal indem ich „CurrReport.SKIP“ überall auskommentiert habe, einen Booleschen Wert setze & bei der Vorschau/dem Ausdruck diesen Wert abfrage und die entsprechende Seite dann einfach durchstreiche.
Ist ja aber keine schöne (bis gar keine) Lösung. Kann nicht vielleicht doch jemand weiterhelfen?

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

6. November 2015 15:08

Also zusammengefasst:
Nur bei RTC + Drucken (nicht Seitenvorschau) wird kein Datensatz geschrieben, obwohl die schreibene Funktion wirklich durchlaufen wird UND keine Fehlermeldung erscheint. Richtig?

Hier kommen für mich eigentlich nur folgende Gründe in Frage:
  1. Irgendwann darin/danach wird ein ERROR('') aufgerufen: es findet ein ROLLBACK statt.
  2. Irgendeine Routine gelöscht den eben geschriebenen Datensatz wieder.
    [Sehr theoretisch ....]
  3. Der Datensatz wird geschrieben, allerdings übersiehst du ihn aus irgendwelchen Gründen.
    [Schließe ich auch eigentlich aus, da du unter anderen Konstellationen die Daten ja auch gefunden hast.]

Daher zurück zum Code: Hast du ihn komplett selbst geschrieben, oder diente ein vorhandener Bericht als Vorage? Taucht da irgendwo direkt oder innerhalb externer Funktion ein ERROR('') auf? Vielleicht

Wo genau hast du die Message platziert? Positioniere sie hinter das DeineProtokollRecordvariable.INSERT als
Code:
MESSAGE(FORMAT(DeineProtokollRecordvariable));

Erfolgt das INSERT mittels INSERT(TRUE)? Dann schau mal nach, was im OnInsert-Trigger drin steht.

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

10. November 2015 11:10

:-) Hallo Natalie! :-)

Nur bei RTC + Drucken (nicht Seitenvorschau) wird kein Datensatz geschrieben, obwohl die schreibene Funktion wirklich durchlaufen wird UND keine Fehlermeldung erscheint. Richtig?


Ja, genau so.

Hast du ihn komplett selbst geschrieben, oder diente ein vorhandener Bericht als Vorage?


Hab den Code komplett selbst geschrieben. Ein Error taucht nur im OnPreReport auf. Ansonsten habe ich nirgends ERROR verwendet.

Die Message hatte ich ganz am Ende meiner Funktion ProtokollSchreiben (also nach dem MeineProtokollRecordvariable.INSERT) eingebaut.
Mein OnInsert-Trigger ist eigentlich leer. Ich habe jetzt aber auch nochmal die Message auf den OnInsert-Trigger in der Tabelle gesetzt und dann mit MeineProtokollRecordvariable.INSERT(True) aufgerufen.
Die Message habe ich wieder sowohl in der Druckvorschau als auch beim Druck bekommen. Der DS wurde aber wieder nur bei der Vorschau geschrieben. :-?

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

11. November 2015 17:00

Puh, vielleicht noch als letzten Versuch die Ereignisanzeige auf Client- und Servermaschine auf Einträge überprüfen.

Ansonsten vielleicht ein Clientupdate in Erwägung ziehen (letzten Build ausprobieren).

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

12. November 2015 10:59

Ich habe mal in die Ereignisprotokolle (auf den Servern und lokal bei mir) reingeguckt, aber leider nichts gefunden. Von den Protokolleinträgen habe ich eigentlich wenig (bis gar keine) Ahnung, aber beim „Durchklicken“ ist mir jedenfalls nichts aufgefallen.

Welches Clientupdate meinst Du? Wir haben Build 39038. Gibt es doch noch einen neueren Stand?

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

12. November 2015 12:53

evz hat geschrieben:Welches Clientupdate meinst Du? Wir haben Build 39038. Gibt es doch noch einen neueren Stand?
Nee, damit habt hier schon das Neueste: http://blogs.msdn.com/b/german_nav_deve ... 91284.aspx

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

12. November 2015 13:17

Hast du testweise schon mal ein commit eingebaut?

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

12. November 2015 17:18

Hab' das mit dem COMMIT gerade mal getestet.

Ich habe das so ziemlich überall eingebaut:
- direkt vor dem Befehl CurrReport.SKIP
- im OnInsert-Trigger auf der Tabelle
- in der Funktion, die das Protokoll schreibt

Hörte sich so gut an, hat aber leider auch nicht geklappt.

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

12. November 2015 17:48

Ich konnte das soweit nachvollziehen, wie du es beschrieben hast. Aber mit einem commit (direkt hinter dem Insert) hat er Datensätze geschrieben :-?

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

12. November 2015 21:23

Vielen Dank McClane!

Ich kann das heute leider nicht mehr nachvollziehen...ich weiß aber, dass ich COMMIT erst nach einem IF INSERT gesetzt hatte.

Ich werde das am Montag auf jeden Fall nochmal testen.

Bis dann & liebe Grüße - evz

Re: RTC: Unterschiedliches C/AL-Verhalten Drucken-Druckvorsc

16. November 2015 11:34

Hallo McClane,

... ich hab' das heute nochmal ganz in Ruhe ausprobiert...und toll es funktioniert auch bei mir!
Keine Ahnung, was ich da letzte Woche gemacht habe. :oops:

Vielen vielen Dank!

Lieben Gruß & guten Start in die Woche - evz

Re: [gelöst] RTC:Unterschiedl.C/AL-Verhalten Drucken-Druckvo

16. November 2015 13:45

Für mich ist das übrigens ein Bug. Es scheint, als würde der Report einen Misserfolg zurückmelden, nur weil es im RDLC-Layout nichts zu drucken gibt.