Fehler in if-Abfrage

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
sprint
Beiträge: 8
Registriert: 29.08.2008, 09:36

Fehler in if-Abfrage

Beitrag von sprint » 29.08.2008, 11:15

[font=arial]
Hallo,
 
ich beschäftige mich seit kurzem mit der Formularerstellung mit dem LCD Version 8. Jetzt habe ich folgendes Problem:

Ich habe ein Formular mit einem Textfeld „Anredezeile“. Hier soll später folgendes drin stehen:

Sehr geehrte Frau soundso,

sehr geehrter Herr soundso,


Dann gibt es noch die Textfelder ANREDE1 und ANREDE2. Diese werden standardmäßig mit einem Wert befüllt der in der Binding-Datei hinterlegt ist, also Feld ANREDE1 enthält z.B. „Sehr geehrte Frau soundso,“ und Feld ANREDE2 enthält z.B. „sehr geehrter Herr soundso,“. Im Feld ANREDE2 muss aber nicht immer ein Wert hinterlegt sein.

Das Feld „Anredezeile“ soll jetzt befüllt werden mit diesen zwei Werten. Wenn aber nur in Feld ANREDE1 was drin steht und FeldANREDE2 leer ist soll nur der Wert von Feld ANREDE1 in Feld „Anredezeile“ geschrieben werden. Wenn beide Felder einen Wert enthalten sollen beide ins Feld „Anredezeile“ geschrieben werden und nach ANREDE1 soll ein Zeilenumbruch gemacht werden. 

Dafür nutze ich folgende Abfrage (diese ist im Feld „Anredezeile“ hintelegt):
 

Code: Alles auswählen

 

if (ANREDE2.rawValue.length == null)

{ 

        this.rawValue = ANREDE1.rawValue;}

 

else

{

        this.rawValue = ANREDE1.rawValue + "\n" + ANREDE2.rawValue;}

 
Die Abfrage funktioniert auch wenn in Feld ANREDE1 und ANREDE2 ein Wert hinterlegt ist. Dann wird, wie im „else-Teil“ definiert, ins Feld „Anredezeile“ zuerst der Wert aus ANREDE1 eingetragen, ein Zeilenumbruch gemacht und in die zweite Zeile der Wert aus ANREDE2 geschrieben.

Wenn in Feld ANREDE2 nun aber kein Wert hinterlegt ist passiert gar nichts, obwohl dann ja eigentlich der Wert aus ANREDE1 dort eingetragen wird. Ich habe die Felder auch schon über die komplette Hierarchie angesprochen, d.h. xfa.form… usw, aber daran liegt es auch nicht. Ich verstehe auch nicht warum der „else-Teil“ funktioniert und der „if-Teil“ nicht.Hat irgendjemand eine Idee wo der Fehler liegt? Danke für eure Hilfe.

 Gruß sprint
[/font]

dreamer
Beiträge: 122
Registriert: 10.08.2007, 16:19

Fehler in if-Abfrage

Beitrag von dreamer » 01.09.2008, 12:51

Ich habs mal probiert.....

Gruss
Hermann
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

sprint
Beiträge: 8
Registriert: 29.08.2008, 09:36

Fehler in if-Abfrage

Beitrag von sprint » 01.09.2008, 15:50

Hallo Hermann,

danke für deine Antwort.
So wie in deinem Dokument dargestellt funktioniert die Abfrage, allerdings ziehst du die Daten ja aus dem Drop-Down-Feldern. In meinem Formular ist es so, dass die Daten für die Felder ANREDE1 und ANREDE2 beim Öffnen des Formulars automatisch aus einer Datendatei (Binding-Datei) gezogen werden und da funktioniert die Abfrage nicht.

Gruß sprint

sprint
Beiträge: 8
Registriert: 29.08.2008, 09:36

Fehler in if-Abfrage

Beitrag von sprint » 14.10.2008, 12:53

Also ich hab das Problem mittlerweile gelöst.
Die if-Abfrage sieht jetzt folgendermaßen aus:
[fontsize=2]
if [/fontsize]
[fontsize=2](this.rawValue [/fontsize][fontsize=2]==[/fontsize][fontsize=2] [/fontsize][fontsize=2]null[/fontsize][fontsize=2])
{
this.presence [/fontsize][fontsize=2]=[/fontsize][fontsize=2] "hidden";
}[/fontsize]

[fontsize=2]Die beiden Anredezeilen habe ich mit einem eigenen Teilformular umschlossen und dieses auf Textfluss gesetzt. So wird die zweite Zeile komplett ausgeblendet wenn sie keinen Wert enthält.[/fontsize]

[fontsize=2]Gruß sprint
[/fontsize]

Antworten