Formatierte Berichte erstellen

Startseite Foren Deutsches LiveCode-Forum Formatierte Berichte erstellen

Schlagwörter: 

Ansicht von 9 Antwort-Themen
  • Autor
    Beiträge
    • #19977
      fmokry
      Teilnehmer

        Hallo,

        ich bin noch recht neu in LiveCode und möchte eine Anwendung für unsere Firma erstellen. Zur Grundlagenbildung arbeite ich mich durch Hauke’s Buch “Eigene Apps programmieren”. Erste Versuche sehen soweit vielversprechend aus. Für eine Anforderung habe ich allerdings noch keinen Plan, ob das mit LiveCode überhaupt funktioniert. Und zwar greife ich diverse Daten aus einer Datenbank ab und möchte das Ergebnis neben einer Anzeige, wahrscheinlich im Data Grid, auch formatiert ausdrucken oder als PDF speichern. Also, inkl. Überschriften, Zwischenergebnissen usw. Dazu muss das Seitenformat A4 hoch oder quer eingestellt werden können und Seitenumbrüche ebenfalls berücksichtigt werden, damit keine halben Zeilen gedruckt werden.

        Gibt es für LiveCode einen Berichtsgenerator oder ähnliches oder wie könnte das funktionieren?

      • #19979
        stefmalle
        Teilnehmer

          Es gibt die Valentina Reports, keine Ahnung ob das deinen Anforderungen entspricht, habs selber nie ausprobiert. LC hatte vor einiger Zeit eine Bundle Aktion oder so was in der Richtung. Vl. ist das noch auf der LC Homepage

        • #19981
          stefmalle
          Teilnehmer
          • #19984
            matthiasr
            Teilnehmer

              Es gibt von Jan Schenkel ein Produkt namens Quartam Reports. Ob das noch aktuell ist, kann ich aber nicht sagen.

              Hier ist ein Link direkt zur Produkt Seite

            • http://users.telenet.be/quartam/reports/index.html
        • #19990
          fmokry
          Teilnehmer

            Herzlichen Dank soweit. Ich schau mir beides mal genauer an. Auf Quartam war ich auch schon gestossen, sah mir aber nicht mehr aktuell aus.

          • #22743
            foto2004
            Teilnehmer

              Entschuldigt dass ich diesen Thread noch einmal aufmachen. Mich interessiert ob das mit den Report funktioniert hat und wen ja wie das geht. Denn ich bräuchte auch in naher Zukunft mal solche Reports.

              LG Immanuel

            • #22745
              fmokry
              Teilnehmer

                Kein Thema 🙂

                Valentina Reports hatte ich nicht getestet. Den Anbieter von Quartam hatte ich angeschrieben, aber nie eine Antwort erhalten. Vermutlich ist das Produkt eingestellt.

                Für erste Anforderungen hat mir dieses Video “Create a PDF” weitergeholfen: https://www.youtube.com/watch?v=1x3mZ1nLql8

                Vielleicht hilft es Dir auch weiter.

              • #22747
                foto2004
                Teilnehmer

                  Danke, nur wie schaut das aus wenn ich da einen Bericht über mehrere Seiten erstellen möchte?

                  LG Immanuel

                • #22770
                  Axwald
                  Teilnehmer

                    Hallo, ich mach das so:

                    Ich habe einen “Print-Stack” mit 1 Karte, der ein paar Kopf-Felder und ein großes Feld für tabellarische Daten (mit einem 1-zeiligen Feld für Spaltenüberschriften darüber) enthält.
                    Alles, was gedruckt werden soll, ist in Gruppen, die “backGroundBehavior” haben – das wird dann automatisch auf neuen Karten plaziert. (Was nur auf der ersten Seite erscheinen soll, hat das “backGroundBehavior” dann eben nicht.)
                    Der Stack ist 595×842 groß, das gibt genau A4 hoch. Und er ist schreibgeschützt – er soll sich nicht ändern.

                    Von dem Stack aus, in die Daten angezeigt/erzeugt werden, rufe ich über einen Button das Drucken auf:

                       set itemdel to tab
                       put [einen tab-CR getrennten Text] into myData          --  die Daten
                       repeat for each line myLine in myData                   --  zeilenweise
                          put item 1 of myLine & tab & [...] & CR after myVar  --  formatieren
                       end repeat
                       delete char - 1 of myVar
                       sort lines of myVar by item [wasAuchImmer wieAuchImmer] of each
                    
                       --  die Einstellungen zusammenbauen:
                       put "Artikel gekauft (12 Mon.) für:" into myTitle       --  Titel
                       put "Kunde:" & CR & "Notiz:" & CR & \
                           "Seite:" & CR & "von" into MyHF                     --  Kopffelder
                       put fld "Kunde" & CR & fld "Notiz" & CR & \
                           empty & CR & empty into MyHeader                    --  Daten dazu
                       put "45,280,330,380,465,470" & CR & \                   --  die TabStops
                           "ArtNr.:" & tab & "Name:" & tab & "Gesamt:" & tab & \
                           "L_Preis:" & tab & "(Zuletzt:)" & CR & \            --  Überschrift
                           "Open Sans Condensed Light" into myFormat           --  Schriftart
                    
                       --  Zielstack einstellen:
                       set the TitleData of stack cBasePrint to MyTitle        --  Titel
                       set the HeaderVals of stack cBasePrint to MyHF          --  Kopf links
                       set the Headerdata of stack cBasePrint to MyHeader      --  Kopf rechts
                       set the fieldVals of stack cBasePrint to MyFormat       --  Verschiedene
                       set the Detaildata of stack cBasePrint to MyVar         --  Die Daten
                       go card 1 of stack cBasePrint                           --  und anzeigen!

                    (Ich suche also die nötigen Informationen zusammen, gruppiere sie entsprechend, schreibe sie in custom Properties des Druck-Stacks und rufe diesen dann auf)

                    Jetzt geht der Druck-Stack auf. Der OpenStack-Handler füllt die Titel-, Kopf- und Überschriften-Felder aus, trägt Datum/ Seitenzahlen ein, setzt die tabStops und stellt die Schriftart ein. (Die Daten dazu sind ja in seinen custom properties)
                    Dann füllt er die passende Menge Zeilen in das Tabellen-Feld, und erzeugt ggf. neue Seiten mittels “create card”:

                       --  myData enthält die Daten
                       put 32 into L_Max                 --  oder hole max. Zeilen aus cProp
                       put 1 into L_This                 --  aktuelle Zeile
                       put the number of lines of myData into L_Cnt   --  die Zeilenanzahl
                    
                       repeat until (L_This >= L_Cnt) AND (L_This <> 1)
                          if L_This <> 1 then create card
                          put line L_This to (L_This + L_Max - 1) of myData into fld "data_fld"
                          add L_Max to L_This
                       end repeat
                       go cd 1

                    Zum Schluß blendet er eine “Control group” mit “Drucken”-Button und ggf. ein Navigationsteil (Erste, nächste, … Karte) ein. Ende openStack.
                    Der User sieht jetzt eine schöne, genaue Druckvorschau 🙂

                    Knopf “Drucken”:

                       go cd 1
                       hide grp "ctrl_grp"                  --  dieser Button + Navi
                       set the printmargins to "0,0,0,0"
                       set the formatforprinting of me to true
                       open printing with dialog
                       if the result is not "Cancel" then
                          print all cards of this stack
                          close printing
                       end if

                    Ein Druck-Dialog erscheint, der User wählt seinen Drucker, Bingo!

                    Eigentlich ganz simpel, oder?
                    Dieser Druckstack ist auf ein Druckformat fest eingestellt, z.B “A4 hoch”. Für andre Formate: Kopie dieses Stacks mit geänderter Ausrichtung.

                    Viel Spaß!

                  • #22772
                    foto2004
                    Teilnehmer

                      wow das das ist jetzt was zum lernen.
                      Danke für die ausführliche Antwort. Werde mir beste Mühe geben es richtig umzusetzen. Wird aber ein paar tage dauern.

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