0

PrintAndSafeRecord klappt nicht

Hi,

ich würde gerne mehrere pdf's in einer Schleife generieren (am liebsten in einer mehrseitigen pdf). Als Workaround habe ich die Funktion printAndSafeRecord gefunden. Das klappt aber leide auch nicht, weil der Editor immer behauptet "Die Funktion ist nicht definiert...". Was mache ich falsch?

Zur Erklärung: m ist ein Menü. Gänge ist einer Tabelle, verknüpft mit m (Menü). Zu jedem Gang möchte ich die Zubereitung ausdrucken:

let m := this;
for g in m.'Gänge' do

importFile(g, printAndSafeRecord(g, "Zubereitung Gang"), g.Nummer + ".pdf"); 
end

Gruß

Arnd

16 Antworten

null
    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    die Funktion hört auf den Namen "printAndSaveRecord()" und hat mit Geldschränken so gar nichts gemein... :-)

     

    lg, Torsten

    • Arnd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke Torsten! Ich kann gar nicht sagen, wie oft ich das überlesen habe. Wäre natürlich toll, wenn der Editor bekannte Funktionen farblich markierte.

    Leider löst das mein Problem trotzdem nicht. Nun kann ich zwar den Code ohne Fehler abspeichern, wenn ich jedoch den Button betätige, der diesen Code ausführt, stürzt die Datenbank ab :-(

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    importFile(g, printAndSafeRecord(g, "Zubereitung Gang"), text(g.Nummer) + ".pdf"); 

    versuche es mal so...

    • Arnd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke für den Tipp, aber das ist es leider auch nicht (natürlich mit "save"). Auch wenn ich den Dateinamen als festen String eingebe, stürzt NINOX ab.

    Der Fehler muss irgendwo anders liegen. Wenn ich den Report manuell über das Druckersymbol aufrufe, klappt es, aber sobald ich Code benutze nicht (auch "printRecord" bringt die DB zum Absturz).

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ich habe es bei mir so und funktioniert. es ist der gesamte Skript...

     

    let ANR := Nr;
    let DOT := 'neuer Dokumenten-Typ';
    let DOC := (create Dokumente);
    DOC.(Buchung := ANR);
    DOC.('Erstellung am' := now());
    DOC.(DockumentTyp := DOT);
    if DOT.'Druck-Vorlage' then
        let NDO := importFile(DOC, printAndSaveRecord(this, DOT.'Druck-Vorlage'), DOT.'Druck-Vorlage' + ".pdf");
        DOC.('Dokument...' := NDO)
    else
        void
    end;
    'neuer Dokumenten-Typ' := 0

    • Arnd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Auch mit dieser Version stürzt Ninox ab:

     

    let m := this;
    for g in m.'Gänge' do
    importFile(g, printAndSaveRecord(g, g."Zubereitung Gang"), "Zubereitung.pdf")
    end

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Leo hate mich mal vor ein paar Jahren geachrieben, das Ninox leichte Schwierigkeiten mit einstelligen Variablen hat...,

    seit dem neme ich immer mindestens 3 Buchstaben...

    Ich hatte dmals auch Schwierigkeiten, die ich mir nicht erklären konnte...

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Mein Pronlem damals hatte sich dann erledigt, mit mehr als 1 Buchstben...

    • Arnd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    no chance :-(

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    schreibe doch mal den Import... in eine Variable, also let IMP := importFile...

    kann ja sein, das die Funktion wirklich einen Wert übergeben möchte und wenn nichts da ist...

    • Arnd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    schneller kann man die DB nicht schließen :-(

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    😳😳😳

    • Alexander_Bader
    • vor 5 Jahren
    • Gemeldet - anzeigen

    schick mal deine DB, aber mit Rezept :-)

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ich weiß nicht ob meine Erfahrung dir etwas bringt. Ich wollte ein paar hundert Dokumente vom Server nach Ninox holen.

    mit der Server Version ging alles zwar langsamm aber ohne Probleme. Als ich das ganze mit der MacApp und FTP Server (ebenfalls auf Mac) versucht habe, hängte sich Ninox nach ein paar Sekunden. Es sah so aus, als wären in der App die Zeiten nicht eingehalten und in der Schleife der nächste Schritt anfängt bevor die Speicherung abgeschlossen ist. Vielleicht soööte man noch ein paar Operationen nach dem Import einfügen. Und g in (g."Zubereitung Gang") ist meiner Meinung nach nicht notwendig. Und vorsichtshalber alle Variablen mit mehr als 1 Buchstabe.

    ---

    for myG in 'Gänge' do
    importFile(myG, printAndSaveRecord(myG, "Zubereitung Gang"), "Zubereitung.pdf");

    alert("Gang "+myG.'IRGENDEIN FELD'+" ist gespeichert")
    end

    ---

    Leo

    • Arnd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    bringt leider nichts, die DB stürzt schon ab, bevor der alert kommt.

    • bernd
    • vor 5 Jahren
    • Gemeldet - anzeigen

    nur mal eine Frage, geht es ohne die Schleife 🤔🤔🤔

    da fällt mir ein, ich habe aktuell auch ein Problem (Bug) mit der Funktion importFile...

    habe es schon gemeldet und "Fehler" wurde bereits lokalisiert..., ber eventuell hänge es auch damit zusammen.

    In meine Skript habe ich vor der Funktion eine select where Anweisung. Dabei wird der where Teil komplett ignoriert..., wenn die Funktion importFile... vorhanden ist. Lösche ich die Funktion, wird whehre ordnungsgemäße ausgeführt...

    Wollte damit nur sagen, die Funktion hat irgendwelche Probleme.

    Deswegen meine Frage an Anfang, geht es ohne Schleife 🤔🤔🤔

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 16Antworten
  • 3820Ansichten