Drucken aus LiveCode

Startseite Foren Deutsches LiveCode-Forum Drucken aus LiveCode

Ansicht von 4 Antwort-Themen
  • Autor
    Beiträge
    • #19062
      Topaz
      Teilnehmer

        Seit einigen Monaten beschäftige ich mich mit LC und habe verschiedene kleinere Projekte erfolgreich, (darunter Datagrid’s und Datenbankanwendungen) realisiert. Wo ich «auf dem Schlauch» stehe, ist das Drucken .
        Wenn ich eine Tabelle mit z.Bsp. mit 3 Spalten (Name,Vorname,Wohnort) habe und davon 100 Zeilen auf meinem Systemdrucker zu Papier bringen will, so finde ich einfach nicht die passende Syntax.
        Kann mir da jemand helfen ?

      • #19065
        Klaus Major
        Administrator

          Hallo Topaz,

          willkommen im Forum!

          Mit Tabelle meinst Du sicher Dein Datagrid, richtig?
          Die Mehrzahl davon ist übrigens Datagrids, ohne Apostroph, wie in “zwei Autos”! 😎

          Leider druckt LC nur das, was auf einer Karte sichtbar ist, automatisch weiterscrollen oder so etwas ist nicht eingebaut. Nur der Befehl “revprintfield…” macht das, aber ein Datagrid etc. eben nicht.

          Du musst gucken, wieviele Zeilen auf eine “Seite” passen, dann das Datagrid entsprechend füllen, drucken, erneut füllen, drucken, bis alle Zeilen zu Papier/PDF gebracht sind.

          Leider ist LC in dieser Beziehung überhaupt nicht sonderlich benutzerfreundlich.

          Gruß

          Klaus

          P.S.
          Persönliche Notiz:
          Ein kleines “Hallo” o.ä. für den allerersten Post hätte sicher nicht weh getan.

        • #19090
          Topaz
          Teilnehmer

            Hallo Klaus,
            Herzlichen Dank für deine prompte Antwort auf meine Frage. Das hat mir bestätigt, dass es sehr aufwendig wird , aus LC zu drucken. Aber ich werde üben und üben ! Im übrigen bin ich begeistert von den Möglichkeiten von LC und werde es weiter nutzen.

            Nochmals vielen Dank
            Topaz

          • #19091
            Klaus Major
            Administrator

              Hi Topaz,

              Okie Dokie, bei Problemen helfen wir immer gern! 🙂

              Je nach Art Deiner Daten, sofern es sich um ein Datagrid vom Typ TABLE handelt, könntest Du eventuell mit “revprintfield” arbeiten bzw. drucken. Das hat auch seine Tücken, aber der Befehl kümmerst sich selber um das benötigte Scrollen, sprich, egal wie lang der Text ist, mit “revprintfield” wird alles mit einem Befehle ausgedruckt.

              Denn:
              -> the dgtext of grp “dein datagrid hier”
              ist nichts weiter als eine TAB und CR getrennte Textliste.

              Gruß

              Klaus

            • #19194
              Axwald
              Teilnehmer

                Hallo,

                ich benutze zum Drucken aus LC grundsätzlich extra Stacks, praktisch “Druckformulare”. Diese sind bei mir 595 x 842 (für DIN A4) groß, und verteilen im “openStack” und “openCard” Handler die Daten, die ich vorher in spezielle “custom properties” geschrieben habe, in die entsprechenden Felder.
                Darüber hinaus gibt es eine “group” mit einem “Drucken”-Knopf und Navigationselementen (erste, letzte, nächste, vorherige Seite).

                Um zu drucken, fülle ich zunächst die “custom properties” des (noch geschlossenen) Druck-Stacks, und rufe ihn dann auf:

                set the Detaildata of stack cBasePrint to MyData
                set the TitleData of stack cBasePrint to MyTitle
                go card 1 of stack cBasePrint

                Damit habe ich eine Druckvorschau. Im “Drucken”-Knopf:

                go cd 1
                hide grp “ctrl_grp”
                set the printmargins to “0,0,0,0”
                set the formatforprinting of this stack to true
                open printing with dialog
                if the result is not “Cancel” then
                print all cards of this stack
                close printing
                end if

                (“Ctrl_grp” ist das, was nicht gedruckt werden soll) Es erscheint dann ein Standard-DruckDialog, der Benutzer wählt einen Drucker, und gut.

                Damit kann man ziemlich viel machen – abhängig davon, wieviel Mühe man sich mit dem Aufteilen & Auszeichnen der Daten gibt. Ich verwende übrigens kein DataGrid, sondern nur normale “table fields” (“table”-Seite in den Feld-Eigenschaften leer bis auf “tabStops”!).

                Viel Spaß!

                PS: Sorry, keine “Code”-Auszeichnungen oder Links – keine Lust, daß das Forum dann meinen Beitrag frißt!

            Ansicht von 4 Antwort-Themen
            • Du musst angemeldet sein, um auf dieses Thema antworten zu können.