hinzugefügte Zellen in Tabelle sperren

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
moere22
Beiträge: 11
Registriert: 04.05.2012, 08:46

hinzugefügte Zellen in Tabelle sperren

Beitrag von moere22 » 08.05.2012, 13:44

Liebe Acronauten,

wieder einmal stehe ich vor einen Problem und komme nicht weiter, aber weiß das Ihr es bestimmt lösen könnt ;)

Und zwar habe ich eine Tabelle erstellt (siehe Anhang) die erweiterbar ist mit + und - , Ich habe es auch geschafft das die erste Zeile sich komplett sperrt sobald speichern gedrückt wird, jedoch wie spreche ich die hinzugefügten Zeilen an?

Danke im Voraus für eure Antworten!

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

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

hinzugefügte Zellen in Tabelle sperren

Beitrag von armine » 08.05.2012, 15:20

Hallo,

so, wie du referenzierst, wird nur die 1. Instanz angesprochen. Du mußt in JavaScript eine Schleife durchlaufen wie

for (i = 0; i <= Formular1.Abholauftrag.Header.Tabelle1.Zeile1.instanceManager.count; i++) {
    xfa.resolveNode("Formular1.Abholauftrag.Header.Tabelle1.Zeile1[" + i + "]").Menge.access = "readOnly";
    xfa.resolveNode("Formular1.Abholauftrag.Header.Tabelle1.Zeile1[" + i + "]").MaterialNr.access = "readOnly";
}
app.execMenuItem("SaveAs");

oder du schreibst in FormCalc ins Enter-Ereignis

Abholauftrag.Header.Tabelle1.Zeile1[ *].Menge.access = "readOnly"
Abholauftrag.Header.Tabelle1.Zeile1[ *].MaterialNr.access = "readOnly"

(da ersetzt das Sternchen die Schleife) und löst das durch

this.execEvent("enter") ;
app.execMenuItem("SaveAs")

im Click-Ereignis aus.

vg armine


moere22
Beiträge: 11
Registriert: 04.05.2012, 08:46

hinzugefügte Zellen in Tabelle sperren

Beitrag von moere22 » 08.05.2012, 22:46

Hallo armine,

der Ansatz mit der Schleife finde ich sehr gut, aber nun habe ich das Formular nach deinen Angaben geändert und es wird trotzdem nur die erste Zeile gesperrt.

Was mach ich denn noch evntuell falsch?

Anbei das veränderte Formular.

Danke und Gruß
moere
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

hinzugefügte Zellen in Tabelle sperren

Beitrag von armine » 09.05.2012, 08:25

Hallo moere,

du hast nur bei den Buttons etwas zuviel mitgedacht. Anzusprechen ist die Instanz, also "Zeile1".
Weil ausgefüllte Pflichtfelder nicht mehr hervorgehoben werden müssen, zeige ich dir bei "Menge", wie man das abstellen kann.
Bei dem "Minus-Button" habe ich für die Optik das math. Minus statt dem immer wieder verwendeten Divis eingesetzt und damit das mit der Dynamik unterhalb der Tabelle funktioniert habe ich bei "Header" von Objekt > Teilformular > Inhalt von "Position" auf "Textfluss" umgestellt.
Das überflüssige Teilformular(?) "Equipment" wurde entfernt und der Code angepasst.

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

moere22
Beiträge: 11
Registriert: 04.05.2012, 08:46

hinzugefügte Zellen in Tabelle sperren

Beitrag von moere22 » 09.05.2012, 09:42

Moin,

ja jetzt funzt es super mit den Sperren. Und ohh ja das Teilformular war irgendwie überflüssig ist mir gar nicht mehr aufgefallen -  Danke für die Info!

Eine Sache hätte ich aber denn noch. Und zwar öffnet er nun das speichern unter  Fenster nicht mehr, so dass ich die Datei direkt abspeichern kann, des weiteren möchte ich automatisch danach eine E-Mail versenden. Ohne die Schleife funktioniert das alles tadellos, nur mit Schleife nicht. Hast Du eventuell auch dafür eine Lösung?

Ich hoffe Du verstehst was ich meine ;)

Danke vorab und Gruß
moere
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

hinzugefügte Zellen in Tabelle sperren

Beitrag von armine » 09.05.2012, 11:58

Hallo moere,

warum das "app.execMenuItem("SaveAs")" nicht funzt? Die Lösung war Button neu anlegen und die Schleife nach "enter" verschieben.
Einen E-Mail-Button habe ich auch angelegt und der wird im Anschluss an das Speichern ausgelöst. Den kannst du also auch unsichtbar machen.

Ein Problem ergibt sich: Vor dem Speichern werden Pflichtfelder auf "readonly" gesetzt und evtl. notwendige Korrekturen sind dann nicht mehr möglich. Vielleicht hilft es, wenn du die Felder gleich nach der erfolgten Eingabe per validate.nullTest = "disabled" von den roten Rändern befreist? Beispiel bei "Beschreibung".

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

moere22
Beiträge: 11
Registriert: 04.05.2012, 08:46

hinzugefügte Zellen in Tabelle sperren

Beitrag von moere22 » 09.05.2012, 14:38

... Du bist genial, wenn ich das so sagen darf - herzlichen Dank! TOP-Forum und Leute hier!!!!

Habe es jetzt in mein richtiges Dokument eingearbeitet und es funktioniert :D Juhu!!! Das mit den erforderlichen Feldern hab ich raus genommen und auf Optional abgeändert. Das mit den roten Rändern befreien ist eine gute Idee, muss ich mir mal anschauen wie das genau geht mit validate.nullTest = "disabled". Da hab ich noch kein Plan von. ;)

Also Danke nochmal und wenn ich das mit den roten Rand nicht hinbekommen sollte, kann ich dann nochmal bei Dir anfragen?

Gruß
moere

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

hinzugefügte Zellen in Tabelle sperren

Beitrag von armine » 09.05.2012, 14:42

Hallo moere,

deine Begeisterung ist ja ansteckend!

Für den Einsatz von validate.nullTest = "disabled" hast du das Beispiel bei "Beschreibung".

vg armine

moere22
Beiträge: 11
Registriert: 04.05.2012, 08:46

hinzugefügte Zellen in Tabelle sperren

Beitrag von moere22 » 10.05.2012, 08:48

Guten Morgen armine,

ich bin halt ein fröhlicher Mensch und freue mich über die kleinen Dinge bzw. Erfolge im Leben ;)

Ich habe leider noch nicht ganz verstanden wo ich diese Funktion einbauen soll. Kannst Du mir sagen wo ich das reinkopieren muss? Ich hatte bereits über die Formulareigenschaften versucht die Ränder zu entfernen, hat aber nicht funktioniert.

lg moere

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

hinzugefügte Zellen in Tabelle sperren

Beitrag von armine » 10.05.2012, 10:45

Hallo moere,

nimm das Skript

[font=courier new][fontsize=2]Formular1.Abholauftrag.Tabelle1.Zeile1.Beschreibung::exit - (FormCalc, client)

$ = Ltrim($) // verhindert "leere" Eingaben
if ($ > "") then
    $.validate.nullTest = "disabled"
else
    $.validate.nullTest = "error"
    $ = ""
endif

[/fontsize][/font](aus [font=courier new][fontsize=2]Beschreibung::exit [/fontsize][/font]und kopiere es ins [font=courier new][fontsize=2]exit[font=verdana] der[/font][/fontsize][/font] anderen Pflichtfelder.

vg armine

Antworten