Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Hallo Walde, der Mitarbeiter soll wenn er das Formular geöffnet hat beliebig viele Instanzen hinzufügen und löschen können. Jede der Instanzen wird automatisch mit einem Datum (dem aktuellen) versehen, wobei dieses Feld beschreibbar bleibt, damit die Instanz gelöscht werden kann. Trägt der Mitarbeiter keine Inhalt ein und löscht das Datum ist das Formularbin dem gleichen "Zustand" wie zu beginn (wenn er es öffnet). Trägt der Mitarbeiter nun etwas in eine Instanz ein und speichert das Dokument sollen alle Formularfelder dieser Instanz (zu dem Datum) nicht mehr beschreibar sein, um so änderungen zu einem vergangenen Datum zu verhindern (auch in den Feldern in denen nichts eingetragen wurde). Daher hatte ich die Frage wie ich die ganze Instanz abhängig von dem "preSave" event in den readOnly Zustand bringen kann.
Hast du eine weitere Idee wie man das am besten realiseren kann?
Gruß Marizous
Hast du eine weitere Idee wie man das am besten realiseren kann?
Gruß Marizous
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
[fontsize=2]Hallo Marizous,[/fontsize]
[fontsize=2][/fontsize]
[fontsize=2]Die angehängte Beispieldatei setzt vor dem Speichern des Formulars alle Felder einer Instanz auf "readOnly", sobald auch nur eines dieser Felder ausgefüllt ist. [/fontsize][fontsize=2]Dies geschieht über eine Schleife, welche alle Felder im Formular nach folgenden Kriterien überprüft:[/fontsize]
[fontsize=2]Feldwert ist ungleich null (!=null),[/fontsize]
[fontsize=2]Feldtyp ist kein Tastenfeld (className != "button") und[/fontsize]
[fontsize=2]Feld ist nicht auf "readOnly".[/fontsize]
[fontsize=2]Sobald ein Feld diese Kriterien erfüllt, wird der Referenz-Syntaxausdruck für das Übergeordnete Objekt (Instanz des Teilformulars) in eine 2. Schleife weitergegeben, welche alle Felder dieses Objektes (Teilformulars) auf "readOnly" setzt.[/fontsize]
[fontsize=2]Diese Methode ist sehr flexibel und kann beliebig abgeändert werden. Hierbei kann man auch festlegen, dass mehrere Felder ausgefüllt sein müssen, bevor eine Instanz auf "readOnly" gesetzt wird. Man kann auch mit entsprechenden Änderungen beim Öffnen des Formulars z.B. unvollständig ausgefüllte Instanzen wieder Freigeben oder sogar löschen.[/fontsize]
[fontsize=2][/fontsize]
[fontsize=2]Gruß,[/fontsize]
[fontsize=2][/fontsize]
[fontsize=2]Walde[/fontsize]
[fontsize=2][/fontsize]
[fontsize=2]Die angehängte Beispieldatei setzt vor dem Speichern des Formulars alle Felder einer Instanz auf "readOnly", sobald auch nur eines dieser Felder ausgefüllt ist. [/fontsize][fontsize=2]Dies geschieht über eine Schleife, welche alle Felder im Formular nach folgenden Kriterien überprüft:[/fontsize]
[fontsize=2]Feldwert ist ungleich null (!=null),[/fontsize]
[fontsize=2]Feldtyp ist kein Tastenfeld (className != "button") und[/fontsize]
[fontsize=2]Feld ist nicht auf "readOnly".[/fontsize]
[fontsize=2]Sobald ein Feld diese Kriterien erfüllt, wird der Referenz-Syntaxausdruck für das Übergeordnete Objekt (Instanz des Teilformulars) in eine 2. Schleife weitergegeben, welche alle Felder dieses Objektes (Teilformulars) auf "readOnly" setzt.[/fontsize]
[fontsize=2]Diese Methode ist sehr flexibel und kann beliebig abgeändert werden. Hierbei kann man auch festlegen, dass mehrere Felder ausgefüllt sein müssen, bevor eine Instanz auf "readOnly" gesetzt wird. Man kann auch mit entsprechenden Änderungen beim Öffnen des Formulars z.B. unvollständig ausgefüllte Instanzen wieder Freigeben oder sogar löschen.[/fontsize]
[fontsize=2][/fontsize]
[fontsize=2]Gruß,[/fontsize]
[fontsize=2][/fontsize]
[fontsize=2]Walde[/fontsize]
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Noch mal vielen Dank Walde, ich habe mein Formular mit deiner Hilfe nun endlich so wie ich es mir gedacht habe! Ich arbeite mich gerade mit "F1" duch die einzelnen Teile der Schleife um Sie auch zu verstehen
Gruß Marizous

Gruß Marizous
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Ich habe noch mal eine Frage zu der Freischaltung von weiteren Nutzerechten mit Acrobat Pro 9. Um mein Formular auch für Anwender des Acrobat Readers nutzbar zu machen (Daten speichern zu können) vergebe ich ja mit Acrobat Pro 9 "weitere Rechte". Nun habe ich in meinem Formular eine Berechnung des aktuellen Datums. Wenn ich aber die erweiterten Rechte im Acrobat vergebe, funktioniert diese Berechnung bzw. das auslesen des aktuellen Datums nicht mehr.
Hier noch einmal das Script, was für das Datum zuständig ist und auf einem "Textfeld" liegt
Hier noch einmal das Script, was für das Datum zuständig ist und auf einem "Textfeld" liegt
Code: Alles auswählen
if($.rawValue > "") then $.rawValue
else $.rawValue = Num2Date(Date(), DateFmt(2, "de_DE"))
endif
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Hallo Walde, ich habe noch ein Problem mit der Datei, Acrobat Reader setzt ja alle befüllten Felder auf ReadOnly. Jetzt habe ich drei Textfelder die ausserhalb der Instanz sind (die auf ReadOnly gesetzt werden soll). Diese sollen nicht auf ReadOnly gesetzt werden. Ich habe schon einiges ausprobiert, bin aber nicht weiter gekommen. Kannst du mir bitte noch mal helfen? Gruß Marizous
Hier die Struktur die ich meine:
Header: Instanz mit Textfeldern die Ein-/Ausgeblendet werden können (editierbar)
Body: Mit dem Formular wo befüllte Instanzen nach dem Speichern auf ReadOnly gesetzt werden.
Hier die Struktur die ich meine:
Header: Instanz mit Textfeldern die Ein-/Ausgeblendet werden können (editierbar)
Body: Mit dem Formular wo befüllte Instanzen nach dem Speichern auf ReadOnly gesetzt werden.
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Hallo Marizuos,
Mann kann die Felder, die Sie nicht auf "readOnly" setzen möchten in der Schleife ausschließen. Siehe abgeänderten Script.
Die Felder mit den Namen "Textfeld1" und "Textfeld2" werden jetzt von der Schleife ausgeschlossen.
Gruß,
Walde
Mann kann die Felder, die Sie nicht auf "readOnly" setzen möchten in der Schleife ausschließen. Siehe abgeänderten Script.
Code: Alles auswählen
function nodesuche(node){
var oField = node.nodes;
var oFieldlength = oField.length;
for (var i = 0; i < oFieldlength; i++){
var oItem = oField.item(i);
if(oItem.name != "Textfeld1" & oItem.name != "Textfeld2"){
oItem.access = "readOnly";
}
}
}
Die Felder mit den Namen "Textfeld1" und "Textfeld2" werden jetzt von der Schleife ausgeschlossen.
Gruß,
Walde
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Das klappt schon soweit ganz gut. Eine Fragen zu der Schleife habe ich noch an dich. Wie stelle ich es an Optionsfelder /Teilformulare auszuschließen (Ich blende nämlich mit hilfe eines Optionsfeld das Teilformular in denen die Texfelder, die editierbar bleiben sollen ein und aus)? Ich habe versucht mit oItem.name != "name-des-optionsfeldes", leider ohne Erfolg. Danke nochmal für deine riesen Hilfe.
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Hallo Marizous,
Das Kontrollkästchen sollten Sie bereits in der 1. Funktion aus der Schleife ausschließen. Siehe Script und Beispieldatei.
Es ist die Stelle mit dem oItem.ui.oneOfChild.className != "checkButton".
Gruß,
Walde
Das Kontrollkästchen sollten Sie bereits in der 1. Funktion aus der Schleife ausschließen. Siehe Script und Beispieldatei.
Code: Alles auswählen
function InstanceReadOnly(){
for(var i = 0; i < xfa.host.numPages; i++){
var oFields = xfa.layout.pageContent(i, "field");
var nodesLength = oFields.length;
for(var j = 0; j < nodesLength; j++){
var oItem = oFields.item(j);
if(oItem.ui.oneOfChild.className != "button" & oItem.rawValue != null & oItem.ui.oneOfChild.className != "checkButton"){
if(oItem.access != "readOnly"){
nodesuche(xfa.resolveNode(oItem.parent.somExpression));
}
}
}
}
}
Gruß,
Walde
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe
Danke Walde, mit deiner Hilfe habe ich das Formular endlich so wie es sein soll 
Gruß Marizous

Gruß Marizous