Bildfeld per Befehl löschen
Es wäre fantatsisch wenn es endlich einen Befehl gibt, der den Inhalt eines Bildfeldes löscht, statt wie bisher den Inhalt in die Anhänge des Datensatzes zu verschieben.
Danke
9 Antworten
-
bei mir geht:
Bild:=null
-
Es gibt einen Weg über die REST-API von Ninox. Ohne Cloudanbindung wird es nicht automatisch funktionieren.
"/
/ Funktion um Anhang im Record zu löschen /
/";
function fx_AnhangLoeschen(xUrl : text) do
let Antwort := "";
let vAPIKey := "API-KEY";
let vHeader := {
Authorization: "Bearer " + vAPIKey
};
Antwort := text(http("DELETE", xUrl, vHeader, ""))
endAufruf der Funktion:
"/
/ Anhang leeren /
/";let vFileName := urlEncode(text(get(this, "BILDFELD")));
let vUrl := "https://api.ninoxdb.de/v1/teams/" + teamId() + "/databases/" + databaseId() + "/tables/" + tableId(this) + "/records/" + Nr + "/files/" + vFileName;
fx_AnhangLoeschen(text(vUrl))Hinweis: Nr ist die ID des Records, wo der verschobene Anhang gelöscht werden soll und muss nicht extra definiert werden.
Das funktioniert nur, wenn man das Bildfeld per Button löscht und nicht direkt im Bildfeld. Bevor es neu gefüllt wird muss der Name der alten/aktuellen Bildfelddatei vorab gespeichert werden damit die Funktion weiss, wie die in den Anhang verschobene Datei heisst.
-
Hallo MZ
In der Cloudversion löscht dir 'Bildfeld:= null' zwar das Bildfeld, aber wie R.Hartung schrieb, wird die gelöschte Datei als Anhang im Record gespeichert. Damit machst du dir deine Datenbank richtig fett. -
Okay. Danke Uwe.
-
Überlegenswert wäre auch eine Lösch-Funktion in Verbindung mit einem Mülleimer, aus dem man versehendlich gelöschte Daten wiederherstellen könnte. Fürs erste wäre eine Löschfunktion aber sehr hilfreich.
-
Hallo allerseits. Man kann Datei-Anhänge auch generell in einer Extra-Tabelle speichern. Dann lässt sich der betreffende Datensatz mit dem Bild komplett löschen.
-
@ planox.pro
das ist richtig, das handhabe ich auch so, jedoch erzeuge ich in einem Bildfeld quasi eine "Vorschau" zum kontrollieren und speichere diese dann in einer extra Tabelle ab. Muss dann aber jedes Mal per Hand das Bildfeld leeren.
-
Lege dir als "Vorschau" doch ein Funktionsfeld an mit record(DEINEBILDTABELLE, Id).BILDFELD
-
Oder direkt über eine Verknüpfung.