Create-Befehl über Button Tabellenübergreifend ausführen
Hallo zusammen,
ich komme mit dem create-Befehl nicht klar.
Ich habe Tabelle 1 - in der ist der ausführende Button und der Inhalt der Übertragen werden soll (Wunschdatum und Wunschtext)
In Tabelle 2 habe ich mehrere Kontaktpersonen mit einer Nachrichtentabelle und einer Checkbox.
Ich möchte eigentlich "nur" über den Button bei den Kontaktpersonen wo die Checkbox angehakt ist, eine neue Nachricht.
let MyDatum := WunschDatum;
let MyNachricht := WunschText;
select 'B-Kontakt' where Check = true;
let satz := (create 'B-Kontakt').NeueNachricht;
satz.(Datum := MyDatum);
satz.(Notiz := MyNachricht)
Hier motzt zwar nichts, und Ninox tut auch was, aber ich sehe nichts...
10 Antworten
-
ich würde das über eine for-Schleife machen... die Zeile mit dem select kann da so nicht stehen
let MyDatum := WunschDatum;
let MyNachricht := WunschText;
for p in select 'B-Kontakt' where Check = true do
p.(
let satz := (create 'B-Kontakt').NeueNachricht;
satz.(Datum := MyDatum);
satz.(Notiz := MyNachricht)
)
end
Versuch das mal...
Im klartext heisst das: Für jedes Element p in der Tabelle 'B-Kontakt' wo Check = true ist mache das was hinter p. in der Klammer steht... ;))
-
Hallo, wenn 'Tabelle1' und 'B-Kontakt' miteinander verknüpft sind und 'Nachrichten' eine Untertabelle von 'B-Kontakt' ist, dann könnte man es so versuchen:
let me := this;
for i in 'B-Kontakt' where Check do
let myK := i;
let satz := (create Nachrichten);
satz.('B-Kontakt' := myK);
satz.(Datum := me.WunschDatum);
satz.(Notiz := me.WunschText)
end
-
Wieder zu spät. Müssten aber sowieso eckige Klammern statt "where" sein:
[...]
for i in 'B-Kontakt'[Check] do
[...] -
Hmm - klappt leider beides nicht..
Aber schon mal danke für die Rückmeldung und @Tobias Bartzsch danke für die Erklärung
-
Hm, Du hast also in Tabelle 2 mit dem Namen "B-Kontakt" verschiedene Datensätze und jeweils eine Untertabelle in jedem Datensatz?
-
ja genau - vielleicht etwas genauer :)
Tabelle 1 liest die Checkbox aus und gibt mir eine Mail-Liste aus Tabelle 2. Wenn ich jetzt diese Mails verschickt habe, möchte ich per Button in die Kontaktliste einen Eintrag vornehmen lassen - Datum und Text (Mail xy verschickt) und halt überall da, wo die Checkbox ja noch ausgewählt ist.
-
Ich würde eine Mischung aus beiden Vorschlägen machen:
---
let me := this;
for i in select 'B-Kontakt' where Check do
let satz := (create DEINENACHRICHTENTABELLENNAME);
satz.('B-Kontakt' := i);
satz.(Datum := me.WunschDatum);
satz.(Notiz := me.WunschText)
end
---
Leo
-
Yeah - danke Leo - klappt.
Kannst du mir bitte noch erklären, warum das jetzt klappt, und die anderen beiden Varianten nicht?
Ich mag das gerne nachvollziehen können.
-
Ok,
bei Tobias die Zeile:let satz := (create 'B-Kontakt').NeueNachricht;
kann nicht funktionieren weil create einen Tabellennamen braucht und hier vermuttlich ein neuer Datensatz bei Kontakten erstellt wird.
Und der Copytexter ist davon ausgegangen dass deine Kontakte als Untertabelle vorliegen und die Schleife ohne select gemacht.
Die Schritte in meinem Skript:
/
/fixiere mit me den aktuellen Datensatz//
let me := this;
//fange eine Schleife in der Tabelle B-Kontakt wo das Feld Chek ageklickt ist (true) //
for i in select 'B-Kontakt' where Check do
//erstelle einen neuen Datensatz in der Tabelle Nachrichten//
let satz := (create DEINENACHRICHTENTABELLENNAME);
//Verknüpfe der neu erstellten Datensatz mit dem aktuellen Datensatz i aus der Schleife//
satz.('B-Kontakt' := i);
//Füge die Werte an//
satz.(Datum := me.WunschDatum);
satz.(Notiz := me.WunschText)
//fertig//
end
---
Leo
-
super - vielen vielen Dank
Content aside
- vor 4 JahrenZuletzt aktiv
- 10Antworten
- 1236Ansichten