Bitte um Hilfe beim Script
Hallo zusammen,
Nach langen herumprobieren, komme ich mal wieder nicht weiter und brauche bitte eure Hilfe.
Ich habe mal kleine DB quasi einen Auszug der DB erstellt.
1. In PLZ_Suche habe ich in der Tabelle (Trigger nach Änderung)
let myZahl := 100;
if special = 1 then
Tabelle1.(Zahl := myZahl)
else
Tabelle1.(Zahl := null)
end
Somit wird in Tabelle1 (wenn in PLZ_Suche 'special' angeklickt wird) bei Feld 'Zahl' 100 stehen. Da das schon mal funktioniert hat, dachte ich mir, dass ich in PLZ_Suche 'Trigger nach Änderung' ein weiteres Script setzen könnte.
Nun möchte ich in Tabelle1 Feld Zahl 2 gerne folgendes erreichen:
Wenn in Tabelle PLZ_Suche im Feld Einwohnerzahl zwischen 0 - 19.999 steht,
dann soll in Tabelle1 im Feld Zahl2
wenn dynamisches Auswahlfeld 'Daten A' (in meinem Kontrukt ist das DantesatzNr1), dann 1000
wenn dynamisches Auswahlfeld 'Daten B' (DatensatzNr5), dann 1100
stehen.
Wenn bei Einwohnerzahl zwischen 20.000 - 49.999 steht,
dann soll in Tabelle1 im Feld Zahl2
wenn dynamisches Auswahlfeld 'Daten A', dann 1300
wenn dynamisches Auswahlfeld 'Daten B', dann 1400
usw.
Im dynamischen Auswahlfeld werden auch eben nur diese zwei DatensätzeNr 1 und 5 benutzt.
Mein Ansatz war folgender:
if Einwohnerzahl > 0 and Einwohnerzahl < 19999 then
switch Tabelle1.'Zahl 2' do
case 1:
if Tabelle1.'Auswahl (dynamisch)' = 1 then
Tabelle1.('Zahl 2' := 1000)
else
if Tabelle1.'Auswahl (dynamisch)' = 2 then
Tabelle1.('Zahl 2' := 1500)
end
end
end
end
Hat leider nicht geklappt.
Hat jemand eine Idee, wie ich das richtig umsetzen könnte?
Ich danke schon mal für jede Hilfe.
Gruß Kruna
PS ich kann die DB z Zt nicht hochladen und werde es später noch einmal versuchen!
13 Antworten
-
Sorry für den DoppelPost, hier nun die testDB.
wünsche noch eine schönen Tag.
Gruß
Kruna
-
Hallo zusammen,
entschuldigung, dass ich noch mal nachfrage.
Hätte jemand evtl eine Idee, wo der Fehler liegen könnte? Ich komme in dem Punkt einfach nicht weiter.
Danke schon mal und schönen Sonntag.
Gruß Kruna
-
@Kruna said:
Ich habe mal kleine DB quasi einen Auszug der DB erstellt.
1. In PLZ_Suche habe ich in der Tabelle (Trigger nach Änderung)Hallo Kruna, ich bin nicht so recht schlau aus deiner Beschreibung geworden und habe mir deshalb die DB angesehen. Da lässt sich in der Tabelle 'PLZ_Suche' aber weder ein Trigger "Nach Änderung" finden noch ein Feld namens "special". Auch eine Tabelle1 gibt es in der DB nicht. Hast du vielleicht die falsche DB hochgeladen oder sie nach dem Posting verändert?
-
HAllo planox,
ja, peinlich! Ich konnte die DB nicht sofort hochladen, da mein Post einen ganzen Tag in einer Freigabe-Schleife fest hing. Was auch nicht schlimm war, der Support hatte es dann korrigiert. Ich hatte in der Zeit nach einer Lösung gesucht und habe an der DB 'herumgebastelt' und ausprobiert.
Nun, special ist jetzt prio und Tabelle1 ist Tabelle2.
Den Trigger habe ich wieder gelöscht, weil ich da nicht weitergekommen bin.
Ich habe mir schn fast gedacht, dass ich mich mal wieder unverständlcih ausgedrückt habe. Dazu habe ich soviel ausprobiert, dass ich gar nicht mehr weiß, was genau ich da gemacht habe.
Entschuldigung für die Verwirrung.
Gruß Kruna
-
Kruna
Probiere mal folgendes im 'Tabellentrigger nach Änderung':
let myZahl := 100;
if prio then
Tabelle2.(Zahl := myZahl)
else
Tabelle2.(Zahl := null)
end;
switch EinwohnerZahl do
case EinwohnerZahl > 0 and EinwohnerZahl < 20000:
switch Tabelle2.'Auswahl (dynamisch)' do
case 1:
Tabelle2.('Zahl 2' := 1000)
case 5:
Tabelle2.('Zahl 2' := 1100)
end
case EinwohnerZahl >= 20000 and EinwohnerZahl < 50000:
switch Tabelle2.'Auswahl (dynamisch)' do
case 1:
Tabelle2.('Zahl 2' := 1300)
case 5:
Tabelle2.('Zahl 2' := 1400)
end
end
Annahme: Die ID in der dynAWF-Tabelle stimmt mit dem Case-Wert überein.
-
Hallo Uwe,
wow, das funktioniert genauso, wie es soll!! Klasse, ich bin echt total begeistert!!! VIELEN DANK!!Ich habe allerdings folgendes gemacht --> in Tabelle 2 im Trigger:
function fx_Zahl2(OptionA : number,OptionB : number) do
switch 'Auswahl (dynamisch)' do
case 1: 'Zahl 2' := OptionA
case 2: 'Zahl 2' := OptionB
end
end;
switch PLZ_Suche.EinwohnerZahl >= 0 do
case PLZ_Suche.EinwohnerZahl >= 0 and PLZ_Suche.EinwohnerZahl < 20000:
fx_Zahl2(1000, 1100)
case PLZ_Suche.EinwohnerZahl >= 20000 and PLZ_Suche.EinwohnerZahl < 50000: fx_Zahl2(1300, 1400)
end
Desweiteren in Tabelle PLZ_Suche im Trigger:
let myZahl := 100;if prio then
Tabelle2.(Zahl := myZahl)
else
Zahl := null end;
klappt auch wunderbar, nur habe ich gerade festgestellt, dass das auch vom dynamischen Auswahlfeld abhängig ist, also wenn prio, dann
wenn Tabelle2.dynA = Nr1 dann 100
wenn Tabelle2.dynA = Nr5 dann 200Mein Ansatz war ua
if prio then
switch Tabelle2.dynA do
case 1:
Tabelle2.Zahl := 100
case 5:
Tabell2.Zahl := 200
end
endich habe auch versucht:
let myZahl := switch Tabelle2.dynA do
case 1:
Tabelle2.Zahl := 100
case 5:
Tabell2.Zahl := 200end;
if prio then
Tabelle2.(Zahl := myZahl)
else
Tabelle2.(Zahl := null)
end
hat leider auch nicht geklappt. Hast Du eine Idee, was ich da übersehen habe?
Gruß Kruna
-
Guten Morgen Uwe,
das hat prima geklappt! Vielen, vieeln Dank, es funktionert alles bestens!
Ich habe noch eine Frage dazu. Gibt es bei den dynamischen Feldern auch die Möglichkeit der Einschränkung (zB bei Verknüpfungen), so dass zB nur bestimmte Datensätze angezeigt werden. In diesem Fall DantensatzNr 1,5,17,18?
Es gibt ja eine sehr gut beschriebenen Post von planox bzgl der DAF. Ich versuche gerade, dass irgendwie mit
let myNr := number(DynAuswahl);
let myID := first((select Mitarbeiter)[number(Nr) = myNr])
myID.Datenfeld
umzusetzen, aber leider ohne Erfolg. Ist das bei DAF denn überhaupt Möglich? Ich kann in Netz leider nichts dazu finden.
Vielen Dank und einen schönen Wochenanfang.
Gruß Kruna
-
Hallo Uwe,
ok soweit habe ich das verstanden.
Ich habe zB durch
((select Zusatz) order by Text)[number(Nr = 14)]
den 14. Datensatz angezeigt bekommen. Der 15.Datensatz will nicht!
Ich habe dann in der Tabelle ein ja/NeinFeld hinzugefügt, angeklickt und unter anderem (alles ausprobieren, bis es klappt) folgenden Code:
if Zusatz2.'Einschränkung' then
((select Zusatz) order by Text)[number(Nr=14 )]verbunden mit and/or/+
((select Zusatz) order by Text)[number(Nr=15 )]
enddann
if Zusatz2.'Einschränkung' then
((select Zusatz) order by Text)[number(Nr )]funktioniert irgendwie auch nicht.
Letztendlich kann ich es auch dabei belassen, aber es wurmt mich schon, dass ich das nicht hinbekomme.
-
if Zusatz2.'Einschränkung' then
((select Zusatz) order by Text)[number(Nr)=14 or number(Nr)=15 ]Damit werden dir die Records mit der ID 14 und 15 angezeigt.
-
Hallo Uwe,
genauso funktioniert es!! :-) Vieeln Dank für die super tolle Hilfe, das hat mir enorm weitergeholfen.
Gruß Kruna
Content aside
- Status Answered
- vor 2 JahrenZuletzt aktiv
- 13Antworten
- 152Ansichten
-
3
Folge bereits