Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Marizous
Beiträge: 16
Registriert: 01.09.2009, 12:19

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von Marizous » 18.09.2009, 09:36

Hallo ich versuche ein Formular zu erstellen bei dem ich auf der ersten Seite eine Eingabemaske habe in die ich /der Benutzer Daten einträgt. Wenn alle Felder ausgefüllt sind soll der benutzer einen Button betätigen der automatisch eine neue Instanz hinzufügt.

Soweit kein Problem. Nun soll die ausgefüllte Instanz aber nicht mehr auf der ersten Siete sichtbar sein sonder auf die zweite bzw. folgenden umgebrochen werden. Desweiteren soll sie nicht mehr zu bearbeiten sein (eine reine Ausgabe)

Ist sowas möglich? Wenn ja wie?:)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von walde » 21.09.2009, 18:38

Hallo Marizous,

 

Ja sowas ist möglich. Das Teilformular für die Tabelle (kann in sich Zeilen einfügen und auch sich selbst dublizieren) muss dementsprechend eine ganze Seite ausüllen. Damit erreicht man, dass die Tabelle beim Dublizieren automatisch auf die nächste Seite springt. Auf dem Click Event der Taste, welche dei Tabelle dubliziert kann man per JavaScript auch die Anzahl der Instanzen einer Tabelle auslesen und diese bei Bedarf auf Schreibgeschütz setzen.

Nachfolgend finden Sie  Beispiele zu dynamischen Formularen, in welchen Zeilen bzw. Tabellen dynamisch eingefügt bzw. gelöscht werden können.

http://www.acronaut.de/view_topic.php?id=1030&forum_id=18&jump_to=3548#p3548

http://www.acronaut.de/view_topic.php?id=1212&forum_id=35&jump_to=4172#p4172




Gruß,

 

Walde


Marizous
Beiträge: 16
Registriert: 01.09.2009, 12:19

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von Marizous » 21.09.2009, 18:56

Hallo Walde, das mit dem einfügen ist nicht das Problem, es geht um die Reihenfolge (neueste Instanz oben) was ich jetz so gelöst habe:

Code: Alles auswählen

Tabelle1.Zeile1.instanceManager.insertInstance(0, true);
Kann man instancen auch nach einem gewissen Zeitraum in read only umwandeln?

Gruß und danke für Antwort

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von walde » 22.09.2009, 09:51

Hallo Marizous,

 

Eine Funktionsweise für Ihr Vorhaben habe ich als Beispieldatei angehängt. Diese hat 2 Tabellen. Die 1. ist offen für Eingaben und ist auf der 1. Seite, die 2. ist Schreibgeschützt und befindet sich auf der 2. Seite und speichert die Werte aus der 1. Tabelle.

Mann kann Instancen nach einer gewissen Zeit auf "readOnly" setzen. Von welcher Zeit sprechen wir? Sekunden oder Tage? Die dauer der gewissen Zeit hat direkten Einfluss auf die Vorgehensweise zur Umsetzung.

Alternativ dazu kann man auch vor dem Speichern die Instanzen auf "readOnly" setzen, was vielleicht mehr Sinn machen würde.  

 

Gruß,


Walde

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

Marizous
Beiträge: 16
Registriert: 01.09.2009, 12:19

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von Marizous » 23.09.2009, 10:04

Hallo Walde,
danke für dein Beispiel, es geht schon stark in die Richtung wie ich mir das gedacht habe. Aber dein Vorschlag die Instanz(en) beim Speichern auf readOnly zu setzen ist glaube ich sogar die beste Lösung. Wie würdest du das machen? Wäre es bei dieser Lösung (beim Speichern auf readOnly setzen) möglich beim neuen öffnen eine neue Instanz mit beschreibbaren Feldern hinzuzufügen?
Gruß Marizous


Marizous
Beiträge: 16
Registriert: 01.09.2009, 12:19

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von Marizous » 23.09.2009, 11:12

Hab jetzt eine Teillösung hinbekommen indem ich auf die Instanz(bzw. die Tabelle in der sich die Instanz befindet) folgendes script gelegt habe:

Code: Alles auswählen

Formular1.#subform[0].Teilformular.Tabelle1.Zeile1::preSave - (JavaScript, client)


Teilformular.Tabelle1.Zeile1.access = "readOnly";
Nachteil bei dieser Variante ist das er mir auch die (hinzuzufügene Instanz) auf readOnly setzt. Was ja auch logisch ist da diese sich in der Tabelle befindet. setze ich aber das "readOnly" nur auf die Instanz selber führt das dazu das er mir nur eine Instanz des Formulares auf "readOnly" setzt. Ich hoffe mein Problem ist verständlich ;-)

Könnte ich nicht eine art Bedingung aufstellen in der die Zeile/Instanz null ausgeschlossen wird?

Gruß Marizous

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von walde » 23.09.2009, 11:42

Hallo Marizous,

 

Die Instanze vor der Speicherung auf "readOnly" zu setzen ist mit einer Schleife kein Problem. Beim erneutem Öffnen des Formulars können wie gewohnt neue Instanzen hinzugefügt werden. Siehe Beispieldatei.

 

Gruß,


Walde

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

Marizous
Beiträge: 16
Registriert: 01.09.2009, 12:19

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von Marizous » 23.09.2009, 12:07

Vielen Dank Walde, das ist genau der Ansatz den ich brauche. Ich versuche jetzt erst mal die Logik der Schleife bzw. deiner Lösung zu verstehen und setze es dann passend in meinem Formular um. Ein dickes Lob an dich und dieses Forum, hier wird einem Einsteiger echt promt geholfen!

Gruß Marizous

Marizous
Beiträge: 16
Registriert: 01.09.2009, 12:19

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von Marizous » 23.09.2009, 13:47

Ich hab mir das Script/die Funktion angesehen und glaube ich auch verstanden. Es überprüft die einzelnen Felder nach Inhalt und setzt Sie beim Speichern (preSave) auf access. readOnly. Da ich ein Datumsfeld in jeder Instanz habe, welches automatisch vergeben wird

Code: Alles auswählen

if($.rawValue > "") then $.rawValue
else $.rawValue = Num2Date(Date(), DateFmt(2, "de_DE"))
endif


Gibt es in jeder Zeile/Instanz mindestens ein ausgefülltes -> readOnly Feld nach dem Speichern. Das heißt eigentlich wäre es sinvoller die vollständige Instanz nach dem Speichern auf readOnly zu setzen und nicht nur einzelne Felder.

Wie muß ich diesen Teil :

Code: Alles auswählen

            if(oItem.ui.oneOfChild.className != "button" & oItem.rawValue != null){
                oItem.access = "readOnly";
der Funktion ändern, damit die ganze Instanz auf access.readOnly gesetzt wird?

Gruß Marizous

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Dnynamisches Formular -> 1Seite Eingabe / 2-x Seite Ausgabe

Beitrag von walde » 24.09.2009, 10:12

Hallo Marizous,

 

Seit Acrobat bzw. Reader 9.0 wäre es eigentlich kein Problem die ganze Instanz auf "readOnly" zu setzten. Dies würde mit nachfolgendem Skript gehen.

Code: Alles auswählen

if(oItem.ui.oneOfChild.className != "button" & oItem.rawValue != null){

oItem.parent.access = "readOnly";
Doch leider scheint es Probleme hinsichtlich dieser Funktion zu geben.

Es gibt aber die Möglichkeit alle Felder einer Instanz zu sprren, welche z.B. nicht Null sind und noch nicht auf "readOnly" stehen.

Eine genaue Beschreibung Ihrerseits würde sehr hilfreich sein. z.B. Ab wann soll eine Instanz wieder gelöscht werden? Man kann vor der Löschung einer Instanz ein Skript ausführen, welches die in der Istanz einhaltenen Felder auf bestimmte Kriterien überprüft und dann die Löschung entwerder freigibt oder verweigert. Wann solle der ganze Inhalt einer Instanz auf "readOnly" gesetzt werden?

 

Gruß,

 

Walde

Antworten