0

importFile() als Massendatenänderung oder ähnliches

Hallo,

ich versuche gerade die Funktion "importFile" über eine ganze Tabelle anzuwenden, sozusagen für jeden Datensatz einzeln über die ganze Tabelle. Aktuell importiere ich per Befehlsschaltfläche und der Funktion importFile() ein Bild als Anhang in den Datensatz und füge ihn dann in ein Bild-Feld ein. Damit ich das für die ganze Tabelle hinzubekommen muss ich in jeden Datensatz springen und die Befehlsschaltfläche drücken. Als Massendatenänderung funktioniert die Funktion "importFile()" nicht, da wird mir ein Fehler angezeigt. Ich habe auch schon versucht über ein Triggerfeld die Funktion auszulösen. Da passiert aber nichts. Hat jemand eine Idee wie man das lösen könnte?

Vielen Dank für jeden Hinweis!

4 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Rafael,

    als Trigger für einen Button:

    ---

    for i in select DEINETABELLE do
    i.BILDEFLD:=importFile(i,"BILDURL","DATEINAME")
    end

    ---

    Problem dabei: du wirst in jedem Datensatz denselben Bild haben. Es sei dem du hast die URL abhängig vom Datensatz.

    Leo

    • Rafael_Starman
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Leonid,

    vielen Dank für den Hinweis mit der for-Schleife. Der Ansatz ist schon sehr gut, allerdings ist es genau so wie du schon geschrieben hast, in jedem Datensatz das gleiche Bild. Es gibt aber für jeden Datensatz eine eigene URL woher die Bilder geholt werden. Komischerweise, wird trotzdem bei jedem Datensatz das gleiche Bild geholt. Ich hab jetzt meinen alten Code for der for-Schleife gesetzt. Gibt es da auch eine Lösung, um sozusagen für jeden Datensatz in der for-schleife einen neuen Link abzufragen? Hier mein aktueller Code:

    ---

    let MAIN := "http://ftp.testurl.com/march/floorplan/";
    let Pre := "Floorplan_";
    let V := "V2";
    let File := "_MRZ_SC_";
    let Sc := Szene;
    let EXT := ".jpg";
    let URL := MAIN + Pre + V + File + Sc + EXT;
    let Filename := Pre + V + File + Sc + EXT;
    for i in select DEINETABELLE do
    i.(BILDFELD := importFile(i, URL, Filename))
    end

    ---

    • T_Bartzsch
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Wenn Du in jedem Datensatz schon eine funktionierende Formel in der Schaltflöche hattest, dann pack diese doch einfach in die for-Schleife:

     

    for i in select DEINETABELLE do
    i.(

    let MAIN := "http://ftp.testurl.com/march/floorplan/";
    let Pre := "Floorplan_";
    let V := "V2";
    let File := "_MRZ_SC_";
    let Sc := Szene;
    let EXT := ".jpg";
    let URL := MAIN + Pre + V + File + Sc + EXT;
    let Filename := Pre + V + File + Sc + EXT;
    BILDFELD := importFile(this, URL, Filename))

    )
    end

     

    Alles innerhalb der Klammern i.( .... ) wird dann pro Datensatz ausgeführt - so als würdest Du in jedem Datensatz die Schaltfläche drücken.

     

    Wenn Du aber Pre, V, File usw sowieso fest vergibst, mach doch nur eine Zeile draus

    let Filename := "http://ftp.testurl.com/march/floorplan/Floorplan_V2_MRZ_SC_" + Sc + ".jpg"

    es sei denn die Felder ändern sich...

    • Rafael_Starman
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Lieber Tobias,

    vielen Dank für deinen Input, tatsächlich ist das die Lösung, die ganze Funktion in eine Schleife geben. Es hat tatsächlich funktioniert. Vielen Dank, das war genau, nach was ich gesucht habe. Bezüglich deines Vorschlages die URL in eine Variable zu geben: Ich habe sie deshalb so zerstückelt, weil sich die einzelnen Variablen im nächsten Schritt dynamisch füllen sollen. Da bin ich noch nicht so weit. Zuerst wollte ich das Problem oben lösen. Das ist nur die Vorbereitung dazu, deshalb schaut es jetzt so zerpflückt aus.

    Danke für deine Hilfe!

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 4Antworten
  • 633Ansichten