0

Button - Aktuelle Ansicht PDF erstellen

Hi zusammen.

ich habe vermutlich eine relativ einfach Frage.

Kann ich per Button, die aktuelle Ansicht (z.B. 10 Zeilen) auf ein PDF drucken und dieses automatisch anhängen und per Mail versenden?

 

Vielen Dank

LG Mathias

2 Antworten

null
    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Moin info. wolfurt ,

    ja die Frage ist einfach (gestellt)... 😉

    Die Antwort darauf ist Code-Technisch komplexer.
    Meine Annahme hierbei ist, dass du mit Ansicht sowas wie dieses hier meinst:

    Ich empfehle dir den Ablauf in zwei Buttons aufzuteilen:
    Sonst kann es passieren, dass das PDF noch nicht fertig ist, aber die Email schon versendet wird.
    Vor allem in der MAC-APP gibt es sonst Probleme.

    1. PDF erzeugen und in ein Bildfeld "AnsichtPDF" speichern
      let myFileName := "PDF_der_Tabellenansicht" + ".pdf";
      let APDF := shareView("Textblöcke", "alle", {
              contentType: "pdf"
          });
      sleep(500);
      importFile(this, APDF, myFileName);
      AnsichtPDF := myFileName
      

       

    2. Email versenden mit Anhang:
      Das erfordert noch weiterere Infos/Felder/Eingaben von dir, da eine Email ja Empfänger, Betreff,Text haben muss/sollte. In meinem Codebeispiel sind das Textfelder im selben Datensatz (mit Formatierungen, deswegen die Variante mit hmtl: raw(text)).
      Die Signatur kommt aus der Tabelle STAMMDATEN.  Die Absender Email wird vom eingeloggten User verwendet.

      let me := this;
      let FI := record(Stammdaten,1);
      let text1 := FI.'Email-Signatur';
      let textB := 'Email-Betreff';
      let text2 := 'Email-Text';
      let Empf1 := 'Email-Empfänger';
      let myMail := userEmail();
      sendEmail({
          from: myMail,
          to: Empf1,
          bcc: myMail,
          subject: raw(textB),
          text: text2,
          html: raw(text2) + "<br><br>" + raw(text1),
          attachments: AnsichtPDF
      });
      Emaildatum := now();
      dialog("Email mit Datei " + AnsichtPDF + " wurde versendet.", "Empfänger: " + Empf1, ["OK"])
      

    Die beiden Buttons müssen im selben Datensatz einer Tabelle sein.
    Die Tabelle kann aber eine andere sein, da der Button 1 (PDF-erzeugen) den Tabellennamen der Ansicht "kennt".
    Der Dialog am Ende ist nur zur Info, dass die Email versendet wurde, ich finde es auch praktisch noch ein Datum+Uhrzeit-Feld EMAILDATUM zu haben, in den der Versandzeitpunkt (jetzt) geschrieben wird.

    Viel Erfolg
    Ronald

      • + Maßanzug statt Massenware +
      • RonaldP
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Nachtrag:
      Sicherheitshalber das shareView nach Erzeugen des PDFs wieder "unsharen":
      ggf. die Zahlenwerte von sleep() höher setzen

      let myFileName := "PDF_der_Tabellenansicht" + ".pdf";
      let APDF := shareView("Textblöcke", "alle", {
              contentType: "pdf"
          });
      sleep(500);
      importFile(this, APDF, myFileName);
      AnsichtPDF := myFileName;
      sleep(500);
      unshareView("Textblöcke", "alle")