2008-09-16 4 views
2

Ich habe ein Infopath 2007 Formular, das ich entwickle, das 3 verschiedene Ansichten verwendet.
Die 3 verschiedenen Ansichten sind grundsätzlich die gleiche Form, haben aber unterschiedliche Textfelder, je nachdem, welche Schaltfläche der Benutzer auswählt. Ich stoße auf ein Problem, bei dem 'Ansicht 1' eine Formularüberprüfung hat, aber der Benutzer hat 'Ansicht 2' ausgewählt und übermittelt es. Die Formularvalidierung für "Ansicht 1" wird ausgelöst, und der Benutzer kann das Formular nicht senden. Wie kann ich die Formularvalidierung für 'Ansicht 1' ignorieren, wenn der Benutzer gerade 'Ansicht 2' einreicht?Infopath 2007 - Wie führe ich NUR eine Datenvalidierung für die aktuelle Ansicht durch?

Antwort

2

Anstatt das Kontrollkästchen "Dieses Feld darf nicht leer sein" anzukreuzen, müssen Sie stattdessen die Datenvalidierungsregeln verwenden. Nehmen wir an, Sie haben zwei Ansichten mit jeweils einem Textfeld, das nicht leer sein kann, aber Sie möchten nur die aktuelle Ansicht erzwingen. Hier ist die Struktur der Form:

Felder:

  • Current (Anzahl) (default = 1)
  • text1 (Text) text2 (Text)
  • button1
  • button2

Ansicht 1 (Standard)

text1 - rule: if (currentView = 1 UND text1 ist leer) show "kann nicht leer sein"

button1 - action: setze einen fields value (currentView = 2); Schalter Ansichten (2)

Ansicht 2:

text2 - Regel: if (Current = 2 und text2 ist leer) zeigen "nicht leer sein"

button2 - Aktion: Stellen Sie einen Felder Wert (currentView = 1); Ansichten wechseln (zu 1)

Sinn machen?

Oisin

Verwandte Themen