Alle Felder sperren bis auf Senden / Drucken

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
doemsk
Beiträge: 8
Registriert: 29.10.2011, 20:29

Alle Felder sperren bis auf Senden / Drucken

Beitrag von doemsk » 02.01.2012, 23:38

Hallo zusammen,

ich hab nach längerer Verschnaufpause mal wieder am Bestellformular gesessen, und als letzte Vorgabe gilt es, das Formular abschliessend zu sperren, damit es nicht mehr verändert werden kann. Das haut auch hin. Nur funktionieren die beiden Buttons Senden oder Drucken grad natürlich auch nicht mehr.

Da ich mir das Formular aus mehreren (meist hier im Forum gefundenen) Einzelbausteinen zusammengesetzt habe, bin ich auch nicht sicher, ob die Scripte optimal sind.

Wäre dankbar, wenn sich jemand von euch die Zeit nimmt, und mir Hilfestellung leistet.

nächtliche Grüße, doemsk
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Alle Felder sperren bis auf Senden / Drucken

Beitrag von radzmar » 03.01.2012, 08:55

Ich hab dein Script mal geändert.
1. Ich habe weder ein Objekt "Lock" noch "padlockopen" in deinem Formular gesehen, was haben die Skripte dann zu bedeuten?

2. Die Schleife zur Sperrung aller Felder sperrt jetzt alle Felder außer diese, die Schaltflächen sind.
So sieht das Skript dazu aus.

Code: Alles auswählen

var nButton = app.alert({
    cMsg: "Möchten Sie wirklich alle Felder unwiderruflich sperren? nnFortfahren?",
    cTitle: "Bestätigung der Sperrung",
    nIcon: 1,
    nType: 2
});
if (nButton == 4) {
    function lockFields(vNode) {
        if (vNode.className === "field") {
            if (vNode.ui.oneOfChild.className !== "button") {
                vNode.access = "protected";
            }
        }
        for (var i = 0; i < vNode.nodes.length; i++) {
            lockFields(vNode.nodes.item(i));
        }
    }
    lockFields(xfa.template);

    this.presence = "invisible";
}
3. Das Skript im layoutReady:Event zum Entsperren solltest Du komplett löschen, da ersten das Objekt "Lock", das überprüft werden soll ohnehin nicht existiert und weil man Schleifen nicht in diesem Event benutzt, da es stest und ständig ausgelöst wird und die Schleifen das Formular dann sehr langsam werden lassen.

Antworten