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.