Skip to main content

Practical example 4 - Select Grid - all information in one layout pssible?

Comments

4 comments

  • Lothar Hasenkämper

    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
  • Christoph Bölck

    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 
    Christoph

    0
  • Lothar Hasenkämper

    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
  • Christoph Bölck

    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
    Christoph

    0

Please sign in to leave a comment.