0

neuen Datensatz erzeugen und Bilder aus Ursprung übernehmen

Hello zusammen,

kurze Frage nur, vllt gibts ja doch eine Lösung.

Anwendungfall Thema Schulungen ( dann kann man sichs vllt ein bisschen besser vorstellen)

ich hab Schulung 1

dazu Bild 1 und Beschreibung 1  => falls eine Nachschulung erforderlich ist würd ich gern alles aus der ursprünglichen kopieren, sodass dann nur die Teilnehmer für die Nachschulung nochmal ausgewählt werden müssen und der Rest fertig ist.

Klappt perfekt über create und new.() für alle Textfelder

bei den Bildern kommt: "this image failed to load"

Gibt's da schon nen Trick?

11 Antworten

null
    • Developer by Smartplanung
    • smartplanung
    • vor 7 Monaten
    • Gemeldet - anzeigen

    Versuch es mal so:

    let vShare := shareFile('Order File');
        let newA := (create tFiles);
        newA.(
            ParentFolder := myV;
            File := importFile(newA, vShare, vFileName)
        );
    

    Das vorhandene File also per shareFile() in eine Variable speichern (url) und mit importFile() in den neuen Record in das entsprechende Feld setzen.

    • Schu_Mel
    • vor 7 Monaten
    • Gemeldet - anzeigen

    ich bin erst neu in der PRogrammierung unterwegs, wo sag ich denn in der formel was myV ist und orderFile muss eine eigenständige Tabelle sein, in der dann alle Bilder zwischengespeichert werden? und nach welchem Schema benennt er die dann nacheinander?

    weil ich hab ja egtl eine Schulungsliste, die jetzt fortlaufend über die Jahre gehen soll, die Bildfelder heißen ja vom Feldname her immer gleich. Muss dann noch eine Kennung zur Unterscheidung mit rein?

      • Ninox-Professional
      • planoxpro
      • vor 7 Monaten
      • Gemeldet - anzeigen

       

      Hallo, ich vermute mal, dass bei Patricks Code beim Copy & Paste was verloren gegangen ist.

      Wobei sich generell die Frage stellt, wohin der Datensatz kopiert werden soll. Innerhalb derselben Tabelle (‘Schulungen‘)? Dann würde ich‘s so versuchen (Code für einen Button):

      let me := this;
      let myURL := shareFile(Bildfeld);
      let myFile := last(split(text(Bildfeld), "/"));
      let newRecord := (create Schulungen);
      newRecord.(Beschreibung := me.Beschreibung);
      newRecord.(Bildfeld := importFile(newRecord, myURL, myFile));
      openRecord(newRecord)

      Wenn der Datensatz komplett mit allen Daten kopiert werden soll, könnte man auch mit duplicate() arbeiten (statt create).

      • Schu_Mel
      • vor 7 Monaten
      • Gemeldet - anzeigen

       ja, innerhalb der gleichen Tabelle soll der quasi identische Datensatz nochmal erzeugt werden, nur dass er bei der Schulungsbezeichnung eben Nachschulung vor den Titel noch packt, den Teacher und das Datum der Schulung nicht mit übernimmt. der Rest wäre gleich, die Teilnehmer sind dann neu zu definieren

      • Schu_Mel
      • vor 7 Monaten
      • Gemeldet - anzeigen

       aber die Formel hilft mir auch schon sehr ;) funktioniert. vielen herzlichen Dank

      • Ninox-Professional
      • planoxpro
      • vor 7 Monaten
      • Gemeldet - anzeigen

       

      Ob man mit ‚create‘ einen neuen, leeren Datensatz erzeugt und dann einzeln dessen Felder füllt oder besser per duplicate() einen Datensatz mit allen Inhalten dupliziert und dann nur die betreffenden Felder ändert, hängt am Ende von der Anzahl der Felder ab, die angesprochen werden müssen. Sprich: Was geht schneller bzw. benötigt weniger Code? Rein technisch gesehen geht beides.

      Wobei zu beachten ist, dass beim duplicate() auch die Einträge von Untertabellen mit übernommen werden, nicht jedoch die Einträge normal verknüpfter Tabellen. Am besten, einfach mal ausprobieren.

      Das mit dem Zusatz vor dem Titel könnte man bspw. so hinbekommen:

      newRecord.(Titel := "Nachschulung: " + me.Titel);
      • Schu_Mel
      • vor 7 Monaten
      • Gemeldet - anzeigen

       ja das mit dem Titel hab ich schon genau so gemacht. es sind grob übern Daumen 10 felder ungefähr die er neu schreibt. ist also gerade so noch überschaubar mit dem schreiben.

      Und funktioniert jetzt super.

      Ich schreib gleich noch ein neues Thema zweck Duplikateprüfung. hab gesehen dass wir da doppelte Einträge erzeugen.is ja auch irgendwie quatsch

    • Andreas_Kappes
    • vor 3 Monaten
    • Gemeldet - anzeigen

    Hallo zusammen,

    lässt sich jetzt bei so einem Vorgang gleich die Bildgröße reduzieren?

    Gruß

    Andreas

      • Ninox-Professional
      • planoxpro
      • vor 3 Monaten
      • Gemeldet - anzeigen

      Nein, beim importFile() wird die Datei genommen, wie sie ist. Größen- oder Format-Änderung von Dateien geht m. W. nur mit externen Diensten wie cloudconvert.com o. ä.

    • Andreas_Kappes
    • vor 3 Monaten
    • Gemeldet - anzeigen

    na ja hier jetzt schon wieder einen kostenpflichtigen Dienst zu beauftragen find ich nicht sehr prickelnd. Selbst in Excel kann man Bilder einfach per Makro reduzieren. ☹️

    Meine PDFs werden mit 3 Bildern nicht mehr versendet da ich dann über 10MB habe, reduzieren beim erstellen ist nicht die Lösung da ich die Qualität benötige aber nicht in der PDF.

      • Ninox-Professional
      • planoxpro
      • vor 3 Monaten
      • Gemeldet - anzeigen

       Ich kann's nicht ändern, tut mir leid. Davon abgesehen: Excel ist eine Desktop-Software. Damit will ich nicht sagen, dass sowas nicht auch auf dem Server ginge - das wäre schön -, aber die Möglichkeit zur Konvertierung/Komprimierung von Bilddateien gehört m. E. nicht zum erwartbaren Standard einer Datenbank. Und der Vorteil cloudbasierter Software wie Ninox ist ja, dass man zusätzlich benötigte Funktionen über externe Dienste integrieren kann. Ob man das dann tut, ist natürlich eine individuelle Entscheidung. An den Kosten sollte es bei 2 Cent pro Bild jedenfalls nicht scheitern.
       

Content aside

  • Status Answered
  • vor 3 MonatenZuletzt aktiv
  • 11Antworten
  • 83Ansichten
  • 4 Folge bereits