0

Datei Anhänge in andere Tabelle speichern

Hallo liebe Forummitglieder,

 

ist es möglich die erzeugten Anhänge nicht im Datensatz selbst zu speichern sondern in einer anderen Tabelle abzulegen?

 

ich erzeuge mit dem Code

let antwort := dialog("Bericht als Anhang", "Soll dieser Bericht als Dateianhang erstellt werden?", ["Ja", "Nein"]);
if antwort = "Ja" then
    let DateiName := KUNDE.FIRMA + "_" + text(Messe) + "_ " + format(Datum, "DDMMYYYY") + " .pdf";
    let DateiAnhang := importFile(this, printAndSaveRecord(this, "Bericht Messe"), DateiName);
    alert("Der Bericht wurde angehängt.")
end

 einen Dateianhang klappt wunderbar ich würde aber den gern von dem Datensatz lösen und in eine separate Tabelle speichern wie kann ich das machen?

15 Antworten

null
    • rainless
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Christian,

    die Beschreibung von "importFile" sagt unter anderem 

    importFile(nid, link)

    To import a file from a given URL and save it as an attachment of a given record.

    D. h. wenn Du nicht "importFile(this, printAnd..." sondern "importFile(anyrecord, printAnd..." machst, dann wird der Anhang an anyrecord angehängt. Wo Du das jetzt herbekommst, kann ich Dir mit der bisherigen Fragestellung aber nicht sagen.

    Anhänge lassen sich nicht an Tabellen, sondern nur an Records hängen - zumindest soweit ich das bis jetzt durchschaut habe. 

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

    Christian Rott Wenn die erzeugten PDF-Dateien in eine eigene Tabelle ausgelagert werden sollen, dann müsste man in selbiger vor dem importFile() einen neuen Datensatz anlegen und diesen mit dem aktuellen verknüpfen. Angenommen, die Tabelle hieße 'Dateien' und würde ein Bildfeld namens 'Datei' beinhalten, dann könnte man es so versuchen:

    let antwort := dialog("Bericht als Anhang", "Soll dieser Bericht als Dateianhang erstellt werden?", ["Ja", "Nein"]);
    if antwort = "Ja" then
       let DateiName := KUNDE.FIRMA + "_" + text(Messe) + "_ " + format(Datum, "DDMMYYYY") + " .pdf";
       let me := this;
       let newD := (create Dateien);
       newD.(TABELLE := me);
       newD.(Datei) := importFile(newD, printAndSaveRecord(this, "Bericht Messe"), DateiName);
       alert("Der Bericht wurde angehängt.")
    end
    

    Wobei 'TABELLE' für den Namen der Verknüpfung zu der aktuellen Tabelle steht, in der das Script ausgeführt wird.
     

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro Ich habe es mal versucht aber es kommt eine Fehlermeldung das Tabellenspalte nicht findet. Muss ich die beiden Tabellen noch verknüpfen?

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

      Ja, ich bin von einer Verknüpfung ausgegangen.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro Dann muss ich es nochmal versuchen. Und eine Verknüpfung herstellen.

      Würde dann Tabelle anlegen mit einem Dateifeld und diese dann mit der Tabelle Messe verknüpfen. richtig?

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

      Christian Rott Ja, genau. In meinem obigen Code-Beispiel bin ich davon ausgegangen, dass die Tabelle 'Dateien' heißt und das Bildfeld 'Datei'. Kann man natürlich auch ganz anders nennen, muss die Bezeichnungen dann aber austauschen. Und TABELLE muss sowieso durch den Namen der Tabelle ersetzt werden, aus der das Script aufgerufen wird.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro So nun habe ich es nochmal versucht Tabelle "DATEIEN" Bildfeld "DATEI" die Tabelle aus der ich die Datei ablegen will "Messen" Tabellen verknüpft. Und dann bekomme ich diese Meldung.

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

      Christian Rott Es kommt auch noch auf die Richtung der Verknüpfung an. Ich hatte aber auch noch einen Fehler im Script ("this" statt "me"), deshalb hier auf die Schnelle mal eine kleine Beispiel-DB.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro Ich bin ein Honk..... die Verknüpfung war nicht richtig von mir...

      Sorry aber nun geht es super... Wäre es jetzt auch möglich die übergebene Datei einen Namen und das datum mit zugeben??

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott so wie ich es im Bild abgebildet habe??

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

      Man kann dem neu generierten Datensatz über die Variable newD noch beliebige weitere Informationen aus dem aktuellen zuweisen. Z. B. aus einem Textfeld:

      newD.(TEXTFELD := me.TEXT);
      

      Oder auch das aktuelle Tagesdatum:

      newD.(Datum := today();
      

      Wenn es um den Dateinamen und das Datum der Datei-Erstellung geht, so kann man auch direkt auf die Metadaten der erzeugten Datei zugreifen. Habe die Beispiel-DB mal entsprechend erweitert.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro SUPER VIELEN DANK 👍genial

      Danke für die Mühe..... ich bin da noch ganz weit von entfernt...

    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Danke euch werde es demnächst mal versuchen.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hier mal eine Test-DB, welche das Prinzip der lokalen zentralen Bildverwaltung veranschaulicht. Hat nichts mit der auf deine DB bezogenen Antwort von Axel/Planox.pro zu tun.
    Die Rot hervorgehobenen Tabellen zeigen wie die Bild-/Dateiverknüpfungen zur zentralen Bid-/DateiTabelle funktionieren.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Danke Uwe ich schaue mir das mal an.

      Besten Dank schonmal

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 15Antworten
  • 221Ansichten
  • 4 Folge bereits