Practical example 4 - Select Grid - all information in one layout pssible?
As the title suggests, I have recreated the "Select Grid" application example from the manual.
It works well so far.
I would now like to adapt it to an existing layout so that the data selected from the Selct Grid are all printed one after the other in a layout.
The background is as follows:
The data is taken from the document lines of the goods receipts. The select grid is also based on this. Now the users should select the rows in the select grid and labels should be created from them (3 labels per document row). The label layout also works if you start it from the document.
My current problems are still
1. the layout is reopened for each selected row. I would like to have everything in one layout below
2. not only the selected data, but all data of the document is processed or the labels are printed.
Is there a best practice solution for this?
German Translation:
Wie der Titel es bereits kurz andeutet, habe ich das Anwendungsbeispiel "Select Grid" aus dem Handbuch nachgebaut.
Das funktioniert auch gut soweit.
Ich würde es nun gern so auf eine bestehendes Layout anpassen, dass die aus dem Selct Grid ausgewählten Daten alle in einem Layout nacheinander gedruckt werden.
Hintergrund ist folgender:
Die Daten werden aus den Dokumentzeilen der Wareneingänge gezogen. Darauf basiert auch das Select Grid. Nun sollen die User die Zeilen im Select Grid markieren und daraus sollen Label erstellt werden (je 3 Label pro Belegzeile). Das Labellayout funktioniert bereits ebenfalls, wenn man es vom Beleg aus startet.
Meine Probleme sind aktuell noch:
1. je markierter Zeile wird das Layout neu geöffnet. Ich möchte alles in einem Layout nachfolgend haben
2. es werden nicht nur die markierten Daten, sondern alle Daten des Belegs verarbeitet bzw. die Label gedruckt.
Gibt es hierfür eine Best-Practice-Lösung?
-
Hallo Christoph,
ganz so wie du dir das vorstellst geht es leider nicht.
Zunächst eine Frage vorweg. Natürlich wird immer jeweils das Layout geöffnet. Ich gehe aber davon aus das du Drucken möchtest. Es würden dann entsprechend die Druckaufträge gesendet, was du gar nicht mitbekommen würdest.
Die Anzahl der Kopien kannst du in der PrintDef im Reiter Dokumente einstellen. Wenn du die PrintDef aus einem Grid aufrufst, wird in die Spalte "Kopie M." geschaut ! Nicht in Kopie.
Jede Zeile im Grid ruft jeweils die hinterlegte PrintDef auf und übergibt die Parameter und somit auch an deine Query im Layout. Wenn du nur bestimmte Zeilen willst muss auch die LineNum übergeben und in der Query verwendet werden.
Kannst du evtl. die Artikel im Vorfeld mit einer Eigenschaft versehen? So musst du nur den Beleg aufrufen und dann einfach auf die Artikel im Beleg filtern, die die entsprechende Eigenschaft haben.
Gruß Lothar
0 -
Hallo Lothar,
vielen Dank für den Input. Die Sache mit den 3 Labels je Belegzeile konnte ich per Query(/*@@dbindependent*/ SELECT 3 AS [@@RepeatRow], T1.*,T0.* FROM PDN1 T0 INNER JOIN OPDN T1 ON T0.[DocEntry] = T1.[DocEntry] WHERE T0.[DocEntry] = [%DocEntry])
an der Layoutdefinition des Dokuments lösen. Auf die LineNum zu referenzieren ergibt natürlich Sinn. Das werde ich mit aufnehmen.
Soweit ich es verstehe ist es also nicht möglich, eine Printdefinition für alle markierten Zeilen zu erstellen, die die Layouts zusammenfasst.
Wäre es möglich, nur auf Basis der Gridabfrage, eine Layout zu erstellen?
Viele Grüße
Christoph0 -
Moin Christoph,
naja, sagen wir mal so es geht nicht out "of the box" / Standard. Was funktionieren könnte ist ein Mix von Layouts und einer UDT, nicht schön aber möglich.
Du legst eine UDT an die die nötigen Daten für den Druck aufnimmt.
In deine Abfrage für das Grid baust du eine, das diese UDT leer gemacht wird.
Dann holst du dir die Daten für das Grid. Das Layout (kein Double Pass) das du für die Grid-Daten erstellst kann kpl. leer sein. Du nutzt nur das Generate-Script im Doc und schreibst die Daten dann in deine angelegte UDT für dein Layout. Als letztes dann ein "Engine.CancelRender" um das Layout zu beenden
Das ändert nichts an der Tatsache das es dauert alle Zeilen abzuarbeiten.In deine Grid-Abfrage machst du als letzte Zeile (mit union z.B.) eine Zeile die dann das Layout aufruft. Die Daten holst du dann aus der UDT und hast es in einem Layout.
Das ist alles andere als schön, aber möglich.
Gruß Lothar
0 -
Moin Lothar,
werde mir deine Idee mal vornehmen und versuchen, es umzusetzen. Bei meinen beschränkten Kenntnissen wird das sicher eine Weile dauern;-)
Viele Grüße
Christoph0
Please sign in to leave a comment.
Comments
4 comments