0

Button "PDF erzeugen" funktioniert erst nach weiterschalten auf anderen Eintrag

Haben bei uns ein kleines Detail-Problem gefunden.

In unseren Angeboten und Anfragen gibt es immer den Button "PDF erzeugen", der folgendes macht:
 

Bild := importFile(this, printAndSaveRecord(this, "Angebot"), belegnr + ".pdf");


Jedoch funktioniert es nie bei dem ersten aufgerufenen Angebot, erst wenn man weiter oder zurück geht (über die Pfeile rechts oben), macht der Button was er soll.

Irgendeine Idee woran dieses Verhalten liegen könnte?

20 Antworten

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

    Moin Janosch Wechsler ,

    versuche es mal hiermit:

        let myFileName := importFile(this, printAndSaveRecord(this, "Angebot"), belegnr + ".pdf");
        Bild := myFileName
    
    

    Dadurch wird erst das PDF erzeugt und dieses dann in das Bildfeld gespeichert.
    Mit deinem Skript wird das gleichzeitig gemacht, evtl. ist das der Grund dafür.

    Viel Erfolg
    Ronald

    • Janosch_Wechsler
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Danke für deine schnelle Antwort, habe es gleich getestet, aber hat leider nicht funktioniert, bzw. das Problem besteht weiterhin.

    Habe aber festgestellt dass es explizit ein Eintrag ist, bei dem das Problem auftritt.

    Ändere ich die Sortierung, geht der "erste" Eintrag, nur der der vorher nicht ging, ging weiterhin nicht.

    Macht die Frage zwar eher allgemeiner, aber was könnte verhindern, dass ein PDF erzeugt wird, wenn es bei allen anderen Angeboten funktioniert?

      • Torsten_Stang.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Janosch Wechsler ist das Bildfeld in dem Eintrag bereits gefüllt (mit einer Datei, die vielleicht nicht in der Vorschau des Feldes sichtbar ist) und ihr habt bei "schreibbar wenn:" das als Bedingung für einen Schutz gegen Überschreiben?

      Kannst Du mit

      printRecord(this, "Angebot")

      generell ein PDF für diesen spezifischen Datensatz generieren?

      • Ninox-Professional
      • planoxpro
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Janosch Wechsler 

      Sonderzeichen im Dateinamen?

      Ansonsten: Worin genau besteht das Problem? Wird gar keine Datei erzeugt oder nur keine Vorschau? Bleibt das Bildfeld leer, befindet sich eine Datei im Anhang? Sind irgendwelche Trigger aktiv? Welche Plattform?
       

    • Janosch_Wechsler
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo,

    Nein, Bildfeld ist nicht gefüllt, habe testhalber ein Bild händisch eingefügt und wieder gelöscht - keine Änderung.
    Auch liegt am Bildfeld keine "Schreibbar wenn:" Bedingung vor.

    Den Test mit nur printrecord werde ich heute noch versuchen, danke schonmal.

    • Janosch_Wechsler
    • vor 2 Jahren
    • Gemeldet - anzeigen

    keine Sonderzeichen, Bildfeld bleibt leer, keine Vorschau, und kein PDF.

    Ninox Cloud als Plattform.

    Auch als Anhang liegt die PDF nicht vor. Seltsam dass das eben nur bei einem Angebot vorkommt.

      • Michi.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Janosch Wechsler hast du eventuell ein skript laufen für die befüllung des pdf´s was viel zeit in anspruch nimmt? 

      • Janosch_Wechsler
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Michi wäre mir nicht bekannt, auch in dem Angebot steht nichts, was es massiv von anderen unterscheidet.

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

    Janosch Wechsler , strange 🤔.

    Was passiert, wenn Du diesen  Datensatz duplizierst, geht der Button / PDF erzeugen dann auch nicht?

      • Janosch_Wechsler
      • vor 2 Jahren
      • Gemeldet - anzeigen

      DIGITOOL 

      Guter Ansatz, aber auch beim duplizierten Eintrag tritt das Problem auf.

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

      Janosch Wechsler ,

      Is dieses Skript im Button

      Bild := importFile(this, printAndSaveRecord(this, "Angebot"), belegnr + ".pdf");
      

      wirklich alles? Mich wundert das ";" am Ende, das macht der Editor normalerweise weg, wenn es nur diese eine Codezeile ist...

      Ein Screenshot des Datensatzes mit Formularansicht kann hier vielleicht weiter helfen.
      Darauf kann ich evtl. was sehen, das mir hier zu Fragen nicht einfällt, bzw. spart mir ggf. weiteres einzelnes Nachfragen ;-) z.B. ist die belegnr in beiden Datensätzen identisch?
      Geht das?

      Sonst würde ich im dublizierten Datensatz nacheinander alle Feldinhalte/Verknüpfungen löschen/aufheben, und nach jedem Schritt probieren ob es dann irgendwann geht.

      Viel Erfolg weiterhin ;-)

      • Janosch_Wechsler
      • vor 2 Jahren
      • Gemeldet - anzeigen

      DIGITOOL  wow, gut aufgepasst, da liegt tatsächlich noch ein bisschen Code außenrum. 

      Da  es aber bei allen anderen geht, gehe ich nicht von einem Fehler hier aus.

      Werde deinem Tipp folgen und beim duplizierten Datensatz mal nach und nach alles rauslöschen.

      • Michi.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Janosch Wechsler kann keinen fehler finden.

      Bei mir klappt es mit beiden varianten.

      let result := dialog("Angebot ! ", "PDF erzeugen ?", ["Ja", "Nein"]);
      if result = "Nein" then
          void
      else
          let myFileName := Rechnungsnummer + " " + "vom" + " " + format(if 'Datum der Rechnungsstellung' then
                  'Datum der Rechnungsstellung'
              else
                  today()
              end, "DD-MM-YYYY") + ".pdf";
          importFile(this, printAndSaveRecord(this, "Rechnung"), myFileName);
          Rechnung := myFileName
      end

       

      oder 

      let result := dialog("Angebot ! ", "PDF erzeugen ?", ["Ja", "Nein"]);
      if result = "Nein" then
          void
      else
          Rechnung := importFile(this, printAndSaveRecord(this, "Rechnung"), Rechnungsnummer + ".pdf")
      end

       

      Was meinst du mit:

      Habe aber festgestellt dass es explizit ein Eintrag ist, bei dem das Problem auftritt.

      Ändere ich die Sortierung, geht der "erste" Eintrag, nur der der vorher nicht ging, ging weiterhin nicht.

      Macht die Frage zwar eher allgemeiner, aber was könnte verhindern, dass ein PDF erzeugt wird, wenn es bei allen anderen Angeboten funktioniert?

      • mirko3
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Michi DIGITOOL Janosch Wechsler Nur ein Hinweis: Wenn die Variable "belegnr" (noch) nicht vergeben oder erzeugt ist, dann wird keine Datei erzeugt und kein Bild eingefügt. Ist nicht ganz logisch für mich, ist aber bei mir so.

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

      Janosch Wechsler ,

      Naja es kann ja sein, dass es im weiteren Skript Bedingungen gibt, die dazu führen, dass der PDF-Teil nicht ausgeführt wird.
      Deswegen gerne möglichst viel Informationen rund um das Phänomen posten ;-)

      Ich sehe hier aber auch nichts was zu dem Verhalten bei einem bestimmten Datensatz führt (außer Du klickst NEIN 😂)
      von der Skript-Struktur würde ich dieses vorschlagen:

      let result := dialog("Angebot ! ", "PDF erzeugen ?", ["Ja", "Nein"]);
      if result = "Ja" then
          Bild := importFile(this, printAndSaveRecord(this, "Angebot"), belegnr + ".pdf")
      end

      Damit ist eindeutig definiert was passieren soll, wenn Du JA klickst. Geschmacksache...
      Bei mir funktioniert es aber auch andersrum.
       

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

      Mirko ,

      ahaaaa, guter Test!
      Für mich macht es Sinn da der Dateiname ja nur aus belegnr + ".pdf" besteht.
      Und das zu erzeugende File wird dann nur  ".pdf" heißen.
      Da wäre eine Fehlermeldung schick...

      • Ninox-Professional
      • planoxpro
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Mirko Na ja, der Dateiname wird ja aus 'belegnr' erzeugt. Kein Name, keine Datei ...

      PS: Ronald war schneller. Die Ursache des Problems dürfte damit erklärt sein.

      PPS: Auf die Idee hätten wir allerdings auch kommen können. 🤔 Man lernt immer wieder dazu ...

      • Michi.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro   das Bildfeld nicht mehr leer aus. Sondern so:

      und bei klick kommt die Fehlermeldung. Er sagt ja es ist leer so das gar nichts passiert

    • Janosch_Wechsler
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ich trau es mich fast gar nicht sagen, aber es war tatsächlich die Belegnr, die genau bei diesem Eintrag fehlte. Hab mich nur an der ID-Nr orientiert beim Durchschalten.

    Und wie oben schon erwähnt, keine belegnr -> wäre dann nur ".pdf" und das geht natürlich nicht....
    Haben jetzt noch sicherheitshalber +date hinzugefügt um zumindest diesen Fehler in Zukunft zu vermeiden.

    Man ist mir das jetzt peinlich - vielen Dank an alle Beteiligten

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

    Janosch Wechsler ,

    Dank Dir für die Rückmeldung und Auflösung des Rätsels!
    Ich hab auf jeden Fall wieder Mal was gelernt ;-)

    Und erlaube mir hier nochmal den Hinweis auf die gewaltige Informationsfülle von Screenshots, das hätte wahrscheinlich früher zur Auflösung des Rätsels geführt...

    Viele Grüße

    Ronald