Startseite › Foren › Deutsches LiveCode-Forum › Drucken aus LiveCode
- Dieses Thema hat 4 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 8 Monaten von Axwald.
-
AutorBeiträge
-
-
Februar 20, 2020 um 16:53 Uhr #19062
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 ? -
Februar 20, 2020 um 17:04 Uhr #19065
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. -
Februar 21, 2020 um 11:31 Uhr #19090
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 -
Februar 21, 2020 um 11:35 Uhr #19091
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
-
Februar 24, 2020 um 15:34 Uhr #19194
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 cBasePrintDamit 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!
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.