Relationen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
merlin80
Beiträge: 37
Registriert: 23.08.2010, 05:53

Relationen

Beitrag von merlin80 » 03.11.2010, 11:12

Hallo zusammen,

in angehangener Datei habe ich versucht zwei Dropdownfelder miteinander zu vergleichen. Dabei darf die Unterauswahl nicht größer als die Hauptauswahl sein.
Sollte es dennoch so sein, habe ich es vorgesehen, dass eine Meldung erscheint.
Nur genau das passiert nicht.
Hat da jemand eine Idee?
Habe ich nur was vergessen oder kann ich nur den Inhalt "dieses Feldes (this.rawValue)" mit einem schon festgelegten Wert vergleichen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Relationen

Beitrag von nele_sonntag » 03.11.2010, 11:31

Hallo Merlin80,

also der Debugger sagt schon mal:

Code: Alles auswählen

Auswahl_HA is not defined
1:XFA:Formular1[0]:#subform[0]:Auswahl_HA-Sicherung[1]:change
Auswahl_HA is not defined
1:XFA:Formular1[0]:#subform[0]:Auswahl_HA-Sicherung[1]:change
Ich schaue mal drüber. Bis gleich.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Relationen

Beitrag von nele_sonntag » 03.11.2010, 11:42

Nun ja.

Du hast ja Einträge in einem DropDown-Menü. Diese werden natürlich als Text (String) erkannt/eingegeben und nicht als Zahl. Insofern kannst Du natürlich nicht mit größer respektive kleiner arbeiten.

LG Mandy

merlin80
Beiträge: 37
Registriert: 23.08.2010, 05:53

Relationen

Beitrag von merlin80 » 03.11.2010, 12:03

"Du hast ja Einträge in deinem DropDown-Menü"
Was sollte ich denn sonst da haben, wofür ist denn eine solche Liste dann da, wenn nicht für Einträge?

Deshalb dachte ich, dass ich das ganze über 'Elementwerte' löse, da wird doch meinem Text ein eindeutiger Wert, also eine Zahl zugeordnet.

Das mit dem Debugger kann damit zusammenhängen, dass ich die beiden Felder einfach aus dem Originaldokument entnommen habe.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Relationen

Beitrag von nele_sonntag » 03.11.2010, 12:17

Ja, aber es sind halt KEINE ZAHLEN!! Und bekanntlich kann man mit größer/kleiner NUR ZAHLEN und KEINEN Text vergleichen.

Ach so,aber Du meinst vermutlich die Bindungswerte. Lass mich mal überlegen.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Relationen

Beitrag von nele_sonntag » 03.11.2010, 12:25

Ich probiere es gerade so, aber irgendwo hakt es grad. Das Skript liegt im CHANGE-Ereignis des zweiten DD.

Code: Alles auswählen

switch(xfa.event.newText)
{
//entspricht ja dem Eintrag "20" im DD 2
case "1":
    break;

//entspricht ja dem Eintrag "25" im DD 2
case "2":
    if(AHS_1.rawValue==1){xfa.host.messageBox("Die Zählervorsicherung darf nicht größer als die Hauptsicherung sein!","Hinweis",3,0);}    
    break;

//entspricht ja dem Eintrag "35" im DD 2
case "3":
    if(AHS_1.rawValue==1){xfa.host.messageBox("Die Zählervorsicherung darf nicht größer als die Hauptsicherung sein!","Hinweis",3,0);}
    break;
}
Bin gerade am Überlegen, ob man die Bindungswerte anders ansprechen muss, als wenn man die DD-Werte ausliest. vermute dort gerade den Fehler.

merlin80
Beiträge: 37
Registriert: 23.08.2010, 05:53

Relationen

Beitrag von merlin80 » 03.11.2010, 12:44

Aber wenn ich mit Switch - Case arbeiten kann, kann ich auch "if" nehmen.
Unter FormCalc kann ich da sogar Buchstaben miteinander vergleichen, also da SOLLTE das doch mit meinen Zahlen erst recht gehen !?

http://help.adobe.com/de_DE/livecycle/8 ... .97.3.html

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Relationen

Beitrag von nele_sonntag » 03.11.2010, 12:48

Ich habe jetzt mal die Bindung weggenommen, dann funktioniert es zumindest. Müsste man mal die Oberprofis fragen, wie man genau die Bindungswerte anspricht und ob >/< funktioniert.

Code: Alles auswählen

switch(xfa.event.newText)
{
case "20":
    break;

case "25":
    if(AHS_1.rawValue=="20"){xfa.host.messageBox("Die Zählervorsicherung darf nicht größer als die Hauptsicherung sein!","Hinweis",3,0);}    
    break;

case "35":
    if(AHS_1.rawValue=="20"){xfa.host.messageBox("Die Zählervorsicherung darf nicht größer als die Hauptsicherung sein!","Hinweis",3,0);}
    break;

default:
    xfa.host.messageBox("Fehler","Hinweis",3,0);
    break;
}

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Relationen

Beitrag von nele_sonntag » 03.11.2010, 13:19

Switch Case ist meines Erachtens nach professioneller, da Du hier zur Laufzeit und ohne Verzögerung mit xfa.event.newText den Wert des DD auslesen kannst.

Mit IF funktioniert es nicht korrekt, zumindest bei mir.

Der Link bringt mir leider nichts, da er mich nur zur Startseite von Formcalc führt. Aber wenn es das beschrieben ist, probiere es.

Zahlen vergleichen ist m.E. nach auch etwas anderes als ><. Du kannst ja mal schauen, ob Du etwas findest, wie Du einen String in eine Zahl umwandelst. Die kannst Du definitv vergleichen oder aber, wie man DD-Bindungswert als Zahl anspricht.

merlin80
Beiträge: 37
Registriert: 23.08.2010, 05:53

Relationen

Beitrag von merlin80 » 03.11.2010, 13:24

Ich dachte du wärst auch einer von denen ;)

Kannst du bitte die PDF noch einmal veröffentlichen?
Weil so recht kann ich das jetzt nicht nachvollziehen.

Aber ich ahne, dass es mit diesem Weg sehr viel Text zu schreiben (kopieren) gibt.
Z.B. bei Auswahl 20 im ober, darf ich ja nur die 20 im unteren auswählen, alles andere wäre ja größer.
Du muss ich ja für jede Eventualität ein "Case" schreiben !?

Ergänzung:
Ja, ich sehe gerade, der Link geht nicht. Der Suchbegriff wäre "Relational".

Antworten