Kontrollkästchen abfragen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
Benutzeravatar
Merklin
Beiträge: 1857
Registriert: 04.04.2009, 17:03

Kontrollkästchen abfragen

Beitrag von Merklin » 31.03.2010, 19:10

Hallo Forum,

ich habe in meinem Formular mehrere Kontrollkästchen, die aber wie Optionsfelder funktionieren (über JS).
Also ist K1 an, wird K2 ausgeschaltet usw.

Jetzt möchte ich vor dem Drucken abfragen ob eins der Kästchen angeschaltet ist.
Ich möchte vorne weg sagen, das ich kein Teilformular benutzen kann. Läßt LCD nicht zu, da der Formularhintergrund eine PDF Datei ist.

Habe folgendes Script gefunden.

Code: Alles auswählen

if(K1.rawValue == 0){
  app.alert("Sie haben ein Kontrollkästchen vergessen");
}else{
  AS.print(); //Funktionsskript hier würde jetzt der skript von LCD kommen
}
Wie müßte das Script aussehen, damit alle Kästchen überprüft werden, ob eines davon an ist, dann ist alle in Ordnung. Ist kein Kästchen angeklickt, soll eine Meldung erscheinen.

Ich wäre natürlich auch für ein anderes Script Beispiel dankbar.

Vielen Dank im Vorraus und hoffe auf Eure Hilfe.

Gruß Merklin

P.S. Nur noch einmal zum besseren Verstehen. Es soll nur abgfragt werden, ob eines der Kontrollkästchen angeklickt ist, wenn ja soll der Druckvorgang beginnen. Wenn nicht soll eine Warnung ausgegeben werden und nicht gedruckt werden.

Wäre schön wenn ihr mir helfen könntet.

Gruß Merklin








Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

Kontrollkästchen abfragen

Beitrag von FileAffairs » 01.04.2010, 18:40

Hallo Merklin,

angenommen Die Kontrollkästchen sind alle innerhalb eines Teilformulars "Test" dann bekommst Du eine Liste aller Kontrollkästchen in diesem Teilformular mit

Code: Alles auswählen

var oNodes = xfa.resolveNodes("Test.*.ui.#checkButton");
darüber kannst Du dann iterieren und den Wert abfragen.

Gruß
Maruan Sahyoun | fileaffairs.de

Benutzeravatar
Merklin
Beiträge: 1857
Registriert: 04.04.2009, 17:03

Kontrollkästchen abfragen

Beitrag von Merklin » 01.04.2010, 19:54

Hallo Maruan Sahyoun,

vielen Dank für deine Info.

Aber leider kann ich die Funktion "Teilformular" nicht nutzen. Dadurch, das der Formularhintergrund eine PDF Datei ist, blendet mir LCD einige Funktionen aus.
Das Formular wurde aus einer Word Datei erstellt. Das heißt eine Word Datei wurde zur PDF Datei generiert und dann als Hintergrund verwendet.
Leider blendet jetzt LCD einige Funktionen aus (Inop).
Ich kann dadurch die Funktion "Teilformular" nicht nutzen.

Ein Versuch diese Word Datei in LCD zu integrieren, hat mir das Layout so durch einander gebracht, das ich Tage brauche um es wieder in die Reihe zu bekommen.
Deshalb wäre es schön, wenn es noch eine andere Möglichkeit gibt.

Also mir würde es reichen, wenn ich eine Script hätte, was mehrer Kontrollkästchen abfragt ob sie angeklickt sind. Sobald eines angeklickt ist, soll der Druck beginnen, wenn kein Kästchen angeklickt ist, soll eine Meldung erscheinen.

Ich hoffe, du hast dafür auch noch einen Tip.

Ansonsten Fröhliche Ostern

Gruß Merklin

Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

Kontrollkästchen abfragen

Beitrag von FileAffairs » 01.04.2010, 20:06

Hallo Merklin,

dann kannst Du statt Teilformular die oberste Hierarchie nehmen also z.B. Formular1.

Ansonsten mal kurz Dein Formular posten.

Gruß
Maruan Sahyoun | fileaffairs.de

Benutzeravatar
Merklin
Beiträge: 1857
Registriert: 04.04.2009, 17:03

Kontrollkästchen abfragen

Beitrag von Merklin » 02.04.2010, 10:56

Hallo Maruan Sahyoun,

ich habe das Formular mal angehängt.

Mit den Textfeldern geht es schon ganz gut. Danach soll abgefragt werden, ob mindestens zwei Kästchen angeklickt worden sind. Wie schon erwähnt funktionieren die Kontrollkästchen, wie Optionsfelder. Dadurch ist es egal welche Kästchen angeklickt sind.

Ich würde mich sehr über eine Lösung freuen.

Schöne Feiertage.

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

Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

Kontrollkästchen abfragen

Beitrag von FileAffairs » 02.04.2010, 14:38

Hallo Merklin,

einfach mal folgenden Code aufnehmen:

Code: Alles auswählen

// counter for number of checkboxes which are selected

var numSelected = 0;

// get all fields which are of type check box

var oNodes = xfa.resolveNodes("Page1.*.ui.#checkButton");

if (oNodes != null) {

    for (var i=0;i<oNodes.length;i++) {

        // we have to move up in the XML strcuture as

        // we are currently at the checkButton Node to get

        // to the field itself

        var oField = oNodes.item(i).parent.parent;



        // as the check boxes have a value of 1 if selected

        // we simply add the values

        numSelected += oField.rawValue;

    }

}

if (numSelected > 1) {

    // do something

}
bei "do something" musst Du halt dann noch reinsetzen was Du brauchst.

Gruß

Maruan Sahyoun | fileaffairs.de

Benutzeravatar
Merklin
Beiträge: 1857
Registriert: 04.04.2009, 17:03

Kontrollkästchen abfragen

Beitrag von Merklin » 02.04.2010, 15:08

Hallo Maruan Sahyoun,

erst einmal vielen Dank, das du dir die Mühe gemacht hast, mir zu helfen.

Leider ist scripten nicht meine stärkste Seite und meine Versuche dein Script einzubauen schlugen bis jetzt fehl.
Wärst du noch einmal so freundlich und könntest es in meinem Beispiel eingeben, das würde mir unheimlich weiter helfen.

Vielen Dank

Merklin

beppo
Beiträge: 9
Registriert: 30.04.2009, 12:05

Kontrollkästchen abfragen

Beitrag von beppo » 29.04.2010, 08:02

Hallo Maruan,

wie müßte es bei resolveNodes heißen wenn ich im Teilformular Page1 noch eine Tabelle (Tabelle1) habe, damit ich auf diese Tabelle mit den Checkboxen zugreifen kann?

var oNodes = xfa.resolveNodes("Page1.*.ui.#checkButton");

Wäre dir sehr dankbar für deine Hilfe,

Grüße,

Bruno

MacPurschi
Beiträge: 43
Registriert: 11.10.2012, 09:44

Kontrollkästchen abfragen

Beitrag von MacPurschi » 18.10.2012, 14:55

Hallo, ich möchte auch prüfen, ob mindestens eines von 5 Kontrollkästchen aktiviert wurde und habe mich deshalb schon sehr gefreut, dass ich diesen Code gefunden habe:
var oNodes = xfa.resolveNodes("Test.*.ui.#checkButton");
Den würde ich in meinem Formular auch gerne verwenden.

Allerdings muss ich diese Prüfung irgendwie in eine bereits vorhandene integrieren. Ich möchte den Befehl in meinen "Email senden"-Button mit einbauen. Hier wird aber bereits auf Pflichtfelder geprüft. Nun weiß ich nicht, wie ich beide Prüfungen sinnvoll miteinander verbinden kann.

Mein aktueller Java-Code für den Senden-Button sieht wie folgt aus:

Code: Alles auswählen

var pflichtfeld = xfa.form.execValidate();
if (pflichtfeld == true) {

var oDoc = event.target;
oDoc.mailDoc({
	bUI: false,
	cTo: "adresse",
	cCc: E_Mail.rawValue,
	cSubject: "Auftragsdaten für GP: " + gp.rawValue + " " + kunde.rawValue + " für Kampagne " + kampagne.rawValue,
	cMsg: "*** Der Email-Betreff wurde automatisch generiert! Bitte NICHT verändern! ***"})
}
Das i-Tüpfelchen wäre dann noch, wenn ich, für den Fall, dass keines der Kontrollkästen aktiviert wurde, auch eine Fehlermeldung bekäme, die zusammen mit den Meldungen der Pflichtfeldprüfung angezeigt würde.

Ich hoffe, dass meine Wunschvorstellung nicht zu weit von dem Machbaren entfernt ist?!

Kann mir hier jemand auf die Sprünge helfen?

Viele Grüße
MacPurschi

Antworten