Neuer Ansatz - neues Problem, Datensätze aus DMAF per Button löschen
Hallo zusammen,
ich habe meinen workflow umgestellt bzw neuen Bedingungen angepasst.
In Bild 1 sieht man quasi ausgewählte Datensätze (grün), mögliche Datensätze (gelb) und nicht gewollte Datensätz (rot). Diese werden auch korrekt im Drucklayout angezeigt.
In einem weiteren Schritt möchte ich alle gelben und roten Datensätze löschen. Dies habe ich mit
delete 'ausgewählte Dekaden'[Auswahl = 2 or Auswahl=3]
auch gelöst wie man in Bild 2 sieht, jedoch im Drucklayout bleibt der Datensatz.
Ich habe verstanden, dass es daran liegt, dass dieser Datensatz im MDAF noch 'angeklickt' ist.
Wie schaffe ich es, dass per Button alle 'gelben' und 'roten Datensätze gelöscht werden bzw im DMAF 'entklickt' werden.
Natürlich kann ich das im DMAF manuell machen, aber ich würde es gerne mit einem Button lösen.
Das DMAF ertellt die Datensätze mit folgendem Skript:
let me := this;
let cat := concat('ausgewählte Dekaden'.Tabelle1.Nr);
let multi := numbers('Mehrfachauswahl (dynamisch)');
for i in multi do
if not contains(cat, text(i)) then
let c := (create Dekadenauswahl);
c.(Haupttabelle := me);
c.(DekadenBeginn := record(Tabelle1,i).Datum);
c.(DekadenEnde := record(Tabelle1,i).'Datum 2');
c.(Dauer := record(Tabelle1,i).Zahl);
c.(Tabelle1 := number(i))
end
end;
for i in 'ausgewählte Dekaden' do
if not contains(text(multi), text(i.Tabelle1)) then
delete i
end
end
Ich weiss, dass hier der Ansatz liegt und habe schon einiges ausprobiert und im Forum gesucht, aber ich komme zu keinem Ergebnis und hoffe, dass mir hier jemand auf die Sprünge helfen kann. Die BspDB habe ich ebenso eingefügt.
Vielen Dank schon mal.
Gruß Kruna
12 Antworten
-
Vielleicht hilft das von Leo/ speziell fürs Drucken https://forum.ninox.de/t/g9h2hxl#x2h2at0
-
Guten Morgen Michi,
vielen Dank für Deinen Tip. Ich habe mir das mal angeschaut, aber so wie ich das verstanden habe, hilft mir das leider nicht weiter.
Eigentlich geht es ja nur darum, ob es möglich ist mit einem Button die Datensätze aus dem dmaf wieder abzuwählen, aber eben in Abhängigkeit von der Auswahl, die man in der Untertabelle hat.
Gruß Kruna
-
Hallo Kruna, vielleicht habe ich Tomaten auf den Augen, aber in deiner DB konnte ich kein DMAF (= Dynamisches Mehrfachauswahlfeld) finden. Das Feld 'Auswahl' ist ein normales, einfaches Auswahlfeld. Deshalb ist mir auch nicht klar, was da genau passieren soll.
Wenn es im Kern aber um die Frage geht, wie man per Script Einträge in DMAF abwählen kann, dann hilft als Ansatz vielleicht ein vereinfachtes Schema weiter. Mehrfachauswahlfelder geben ja immer Arrays zurück, bei dynamischen enthält es die Record-Nummern der ausgewählten Einträge. Angenommen, du hast ein DMAF, dass eine Tabelle mit den Einträgen "A", "B", und "C" anzeigt. Um nun bspw. den Eintrag "B" abzuwählen, benötigt man man dessen Record-Nummer (Zeile 1). Anhand derer lässt sich überprüfen, ob der Eintrag "B" überhaupt ausgewählt ist (2) und ggf. das Array ohne die Record-Nummer von "B" neu aufbauen (3 - 7):
1 let myRecord := first(select Tabelle where Textfeld = "B"); 2 if chosen(DMAF, number(myRecord)) then 3 let myArray := numbers(DMAF); 4 let myNewArray := for ii in myArray do 5 if ii != number(myRecord) then ii end 6 end; 7 DMAF := myNewArray 8 end
Um Datensätze zu löschen, die in einem DMAF ausgewählt sein könnten, würde ich sie wohl erst abwählen und dann löschen. Vielleicht ist die Reihenfolge aber auch egal, das habe ich jetzt nicht ausprobiert.
-
HAllo Axel,
vielen Dank auch für Deine Hilfe.
Das dmaf befindet sich in der Tabelle 'Standorte'.
Meine Haupttabelle ist ja 'Dekadenplanung'. Diese hat eine Untertabelle Standortauswahl und Tabelle 'Dekadenauswahl' ist Untertabelle von Tabelle 'Standortauswahl', in etwa so:
- Dekadenplanung
- Standortauswahl
-Dekadenauswahl
Die Tabelle1 ist für dahingehend wichtig, da ich dort die Dekaden aufzeige, die ich für das dmaf brauche.
Ich habe die Tabelle noch etwas verändert und hier neu beigefügt.
Ich habe auch nochmal versucht, in diesem Bild darzustellen, was ich meine.
Ich weiss, dass ich die Datensätze (Dekaden) natürlich auch manuell wieder 'abwählen' kann bzw es im Moment auch so mache. Ich möchte aber, falls überhaupt möglich, den workflow mit einem Button realisieren.
Das hat folgende Gründe - 1. sind es insgesamt 34 Dekaden und es können 15-20 Dekaden mit sehr vielen Strassen bzw Standorten sein. Zumal ich das dmaf angezeigt habe als Combobox und nicht wie im Bild, als switch.
Gruß Kruna
-
Kruna said:
Mir ist dabei noch etwas aufgefallen:
delete 'ausgewählte Dekaden'[Auswahl != 1]
erübrigt sich, da durch den letzten Teil des Scripts im dmaf, also durch Abwahl eines dmaf, der Datensatz bereits gelöscht wird:Das meinte ich ja. Mit dem Button-Script wird das DMAF geändert, so dass dort der Trigger "Bei Änderung" anschlägt, welcher das "delete" auslöst.
-
tja, das kommt davon, wenn man vor lauter Freude und Begeisterung nicht bis zum Ende liest bzw überliest!
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 12Antworten
- 111Ansichten
-
4
Folge bereits