dialog fenster per cases durch verschiedene Datensätze möglich?
TABELLE 1 ist mit TABELLE 2 verknüpft (Tabelle 2 ist eine Komposition). Pro Datensatz in Tabelle 1 kann Tabelle 2 kann mehrere Datensätze beinhalten.
Eine Bedienschaltfläche in TABELLE 1 öffnet einen dialog und zeigt den Inhalt eines TEXTFELDES aus dem letzten Datensatz von Tabelle 2 an.
Nun würde ich gerne 3 Möglichkeiten haben: FERTIG, ZURÜCK und WEITER..
FERTIG ist selbsterklärend und beendet den dialog,
ZURÜCK durchkämmt das Textfeld aus den diversen Datensätzen von Tabelle 2 in einer Schleife durch..z.B. 5-4-3-2-1-5-4-3-2-1-5-4-3-2-1...
WEITER macht das gleiche in die andere Richtung.
Ich dachte eventuell an eine WHILE/ SWITCH Kombo. Ist das realisierbar?
Freue mich. Danke
16 Antworten
-
ich müsste es eigentlich nur schaffen mit den buttons weiter oder zurück im dialog immer den nächststehenden datensatz in der tabelle 2 ansprechen zu können. vielleicht hat jemand eine idee..? mein Hirn raucht..
-
let myFirst := ["FERTIG", "WEITER"];
let myNext := ["FERTIG", "WEITER", "ZURÜCK"];
let myLast := ["FERTIG", "ZURÜCK"];
var myFlag := 0;
let myArr := 'Tabelle 2'.Textfeld;
let myCNT := cnt(myArr);
while myFlag != myCNT do
switch dialog("Text", item(myArr, myFlag), switch myFlag do
case 0:
myFirst
case myCNT - 1:
myLast
default:
myNext
end) do
case "WEITER":
(myFlag := myFlag + 1)
case "ZURÜCK":
(myFlag := myFlag - 1)
case "FERTIG":
(myFlag := myCNT)
end
end -
DANKE! LEO! Ich habe leider vergessen zu erwähnen, dass ich mich bei der Abfrage in Tabelle 2 befinde :)
Lg Rene
-
Hallo Rene,
fünfte Zeile von Oben:
let myArr := 'Tabelle1'.'Tabelle 2'.Textfeld;
Leo
-
Ahh.. ja klar. DANKE.
Habe leider noch ein Problem damit.. der Sachverhalt, den ich in myArr darstellen will ist komplexer, da es mehrere Textfelder sind, und weiters auch "Text".. z.B.
let myArr := "Dokumentation: " + Tabelle1.Tabelle2'.Dokumentation + "
" + "Datum: " + Tabelle1.Tabelle2.Datum + "
" + KG: " + Tabelle1.Tabelle2.KG;
Leider bekomme ich das so nicht hin. LG Rene
-
let myArr := Tabelle1.Tabelle2.("Dokumentation: " + Dokumentation + "
Datum: " + Datum + "
KG: " + KG);
-
JA GENAU!!!
SUPER! DANKE
Ps. Fällt dir noch eine kleine Änderung ein, damit der Dialog nicht beim ersten Datensatz anfängt, sondern beim vorletzten.. Damit ich sozusagen - wenn ich im 10ten Datensatz auf den Button klicke, der 9te im Dialog erscheint und ich von dort weiter in die Vergangenheit gehen kann?
GANZ LIEBE GRÜßE und DANKE, Rene
-
Hallo Rene,
wenn die Datensätze nach ID sortiert sind dann statt vierte Zeile:
---
let my:=this;
var myFlag:=cnt(Tabelle1.Tabelle2[number(Nr)<number(my.Nr)])-1;
myFlag:=if myFlag<0 then 0 else myFlag;
---
Leo
-
Leo, es funktioniert. DANKE DU BIST DER BESTE!!!
LEO FOR PRESIDENT!!!!
-
noch ein kleines problem hat sich gerade ergeben als ich versucht habe einen case einzubauen, in dem der im dialog gewählte datensatz geöffnet werden sollte...
case "ÖFFNEN":
(
popupRecord(record(Dokumentation,myFlag));
myFlag := myCNT
)der Datensatz der sich öffnet ist ein komplett anderer :)
-
Hallo Rene,
ist ja logisch, myFlag ist keine ID. Es sollte in etwa so aussehen:
---
popupRecord(first(select Dokumentation [
("Dokumentation: " + Dokumentation + "
Datum: " + Datum + "
KG: " + KG)=item(myArr, myFlag)]))
---
Leo
-
Ok aber was mache ich wenn myArr so aussieht?
let myArr := Verordnung.Behandlungen.(raw(html("<font size=4><b>" + Name + "</font></b><i> (Aktuell absolvierte Therapien: " + cnt(Verordnung.Behandlungen) + ")</i><br>")) + raw(html("<font size = 4><b>Behandlung: " + 'Behandlungs Nr' + "/" + Verordnung.Anzahl + "</font> - Verordnung Nummer: " + Verordnung.'Vo Nummer' + "<br>" + "<font size=3>Datum: " + text(Termin) + "</font> " + text(format(Behandlungstermin, "HH:mm")) + "</b>")) + if 'Veränderung' != null then
raw(html("<font size=2><b> - Veränderung: " + 'Veränderung' + "</b><br>"))
end + if 'neues Problem deponieren' = true then
raw(html("<br><b>Neues Problem: </b><br><font size=1>" + 'neues Problem?' + "</font>"))
end + if Krankengeschichte != null then
raw(html("<br><b>Krankengeschichte: </b><br><font size=1>" + Krankengeschichte + "</font>"))
end + if 'Befund -> Wiederbefund' != null then
raw(html("<br><b>Befund/Wiederbefund: </b><br><font size=1>" + 'Befund -> Wiederbefund' + "</font>"))
else
raw(html("<br>"))
end + if Dokumentation != null then
raw(html("<br><b>Dokumentation: </b><br><font size=1>" + Dokumentation + "</font>"))
else
raw(html("<br>"))
end + if 'Procedere/Empfehlung' != null then
raw(html("<br><b>Dokumentation: </b><br><font size=1>" + 'Procedere/Empfehlung' + "</font>"))
else
raw(html("<br>"))
end); -
Und warum machst du das? dialog() unterstützt sowieso keine html-Texte?
-
Doch Leo! Das geht...
-
Ok ich glaub ich habs. ich musste diesen Dialog inkl. Formatierung als Filter im PopupRecord anlegen... Werds mal testen! LG
-
Das ist ja großartig, bin immer davon ausgegangen, dass es im Dialog nur mit Texten geht. Wieder was gelernt.
Ich habe noch eine Idee. Schreib vor let myArr noch ein Befehl :
let myIDArr:=Verordnung.Behandlungen.(Nr)
so werden di IDs in gleichen Reienfolge wi die Texte in myArr zugeordnet. Dann kannst du bei switch so schreiben:
---
case "ÖFFNEN":
(
popupRecord(record(Dokumentation,number(item(myIDArr,myFlag))));
myFlag := myCNT
)
---
Leo
Content aside
- vor 5 JahrenZuletzt aktiv
- 16Antworten
- 4250Ansichten