Kennwortschutz für einzelne Elemente

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Antworten
ChrisH1
Beiträge: 19
Registriert: 23.10.2016, 20:12

Kennwortschutz für einzelne Elemente

Beitrag von ChrisH1 » 02.02.2017, 16:36

Hallo liebe Community,

ich stehe mal wieder vor einem Problem, bei dem ich mir Hilfe von euch erhoffe.

Und zwar habe ich ein Dokument, in dem einige Felder nur von bestimmten Benutzern bearbeitet werden sollen. Die autorisierten Benutzer verfügen über ein Passwort, mit dem sich die Bearbeitung freischalten lässt.

Hierfür verwende ich ein Passwortfeld.
Im initalize-Event werden die Felder gesperrt.

Code: Alles auswählen

Element.access = "protected"
im Exit-Event werden die Felder wieder freigegeben wenn das Passwort stimmt.

Code: Alles auswählen

if this.rawValue == "Passwort"
{ Element.access = "open" }
else
{ Element.access = "protected" }
Das ganze funktioniert auch so weit.

Allerdings funktioniert es nicht, wenn sich die Felder auf der Masterseite befinden. Der Pfad

Code: Alles auswählen

Formular1.Masterseite
wird mir auch nicht durch die Autovervollständigung vorgeschlagen.

Ich habe ein wenig rumprobiert und das Passwortfeld auf die Masterseite verschoben. Dann funktioniert es aber weder für die Elemente auf der Masterseite noch für die Elemente auf den nachfolgenden Seiten.

Kann man von einer "regulären" Seite aus keine Elemente auf der Masterseite referenzieren und umgekehrt oder ist mir irgendwo ein Fehler unterlaufen? Kennt jemand ggf. eine Work-Around Lösung?


Freundliche Grüße,
Chris

Andreas H.
Beiträge: 533
Registriert: 14.04.2015, 11:10

Kennwortschutz für einzelne Elemente

Beitrag von Andreas H. » 02.02.2017, 20:33

Hallo Chris,

die Felder (Masterseite/Designansicht) lassen sich mit dem Passwort öffnen. Nach der Eingabe wird das Passwort für neugierige Mitarbeiter gelöscht. Setzt Du den Cursor nach dem Bearbeiten der Felder (Masterseite/Designansicht) ins Feld “Passwort“ und verlässt das Feld ohne Eingabe (oder falsche Eingabe) werden die Felder wieder “Geschützt“.

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

ChrisH1
Beiträge: 19
Registriert: 23.10.2016, 20:12

Kennwortschutz für einzelne Elemente

Beitrag von ChrisH1 » 03.02.2017, 11:07

Guten Morgen Andreas,

vielen Dank für deine Antwort und das Beispiel.

Ich habe den Code in mein Dokument übernommen aber es hat sich nichts verändert. Elemente in der Designansicht werden wie gewünscht entsperrt aber Elemente auf der Masterseite nicht. Zusätzlich habe ich das Problem, dass das Passwortfeld beim Verlassen nicht geleert wird.

Ich habe dann aus meinem Dokument alle Seiten, bis auf die Masterseite und die Seite mit Passwort, entfernt, um es hier hochzuladen und plötzlich funktioniert alles :shock:

Ich werde jetzt mal Seite für Seite löschen um den Fehler einzugrenzen.

PS: Es hat bei mir keinen Unterschied gemacht, ob die Elemente über das initalize-Event des jeweiligen Elements oder das initalize-Event des Passwortfeldes gesperrt wurden. Bei sehr vielen Elementen bietet es sich daher an, das initalize-Event des Passwortfeldes zu verwenden, da der Code einfach aus dem "else-Teil" des exit-Event kopiert und eingefügt werden kann.

Freundliche Grüße,
Chris

ChrisH1
Beiträge: 19
Registriert: 23.10.2016, 20:12

Kennwortschutz für einzelne Elemente

Beitrag von ChrisH1 » 03.02.2017, 11:19

Update:

Ich habe die Seite, welche die Probleme verursacht gefunden. Das Merkwürdige ist allerdings, dass es sich um eine Seite handelt die überhaupt kein Skript besitzt. Ich verstehe daher nicht wie diese Interferenzen zustande kommen.

Weitere merkwürdige Beobachtungen sind:
das Passwortfeld leert sich beim Verlassen immer noch nicht.
Wenn ich das Passwort nach richtiger Eingabe noch einmal verändere bleiben sämtliche Elemente in der Designansicht entsperrt. Textfelder und numerische Felder auf der Masterseite bleiben ebenfalls entsperrt, während Datumsfelder auf der Masterseite wieder gesperrt werden.

Freundliche Grüße,
Chris

ChrisH1
Beiträge: 19
Registriert: 23.10.2016, 20:12

Kennwortschutz für einzelne Elemente

Beitrag von ChrisH1 » 03.02.2017, 13:34

Ich habe noch ein wenig rumprobiert aber ich kann den Fehler nicht finden.

Die Seite die entfernt werden muss, damit die Elemente auf der Masterseite entsperrt werden, ist die Seite zwischen der Masterseite und der Seite mit dem Kennwortfeld.

Damit sich das Kennwortfeld beim Verlassen automatisch leert, müssen alle Seite, bis auf die Masterseite und die Seite mit dem Kennwortfeld entfernt, werden.

Mein, bzw. Andreas, Code sieht wie folgt aus:

Code: Alles auswählen

//initalize-Event von jedem zu sperrenden Element
this.access = "protected";

Code: Alles auswählen

//Exit-Event des Kennwortfeldes
for (var i = 0; i < xfa.host.numPages; i+++)
{
var oFields = xfa.resolveNode ("#pageSet.Page1.Fußzeile[" + i + "]");
if (this.rawValue === "admin")
{
//Masterseite
  oFields.Elemente.access = "open";
//übrige Seiten
  Formular1.Pfad.Elemente.access = "open";
}
else
{
//Masterseite
  oFields.Elemente.access = "protected";
//übrige Seiten
  Formular1.Pfad.Elemente.access = "protected";
}
}
this.rawValue = null;
Sieht irgendjemand einen Fehler oder hat eine Vermutung was mit meinem Formular nicht stimmt?

Freundliche Grüße,
Chris

Andreas H.
Beiträge: 533
Registriert: 14.04.2015, 11:10

Kennwortschutz für einzelne Elemente

Beitrag von Andreas H. » 05.02.2017, 17:03

Hallo Chris,

mit dem “Code“ den Du hier eingefügt hast habe ich nichts zu tun!

Die Fehler die Du in dem nicht mehr funktionierenden Code eingebaut hast, die siehst Du am besten wenn Du deinen mit dem funktionierenden Code vergleichst und was in Deinem Formular nicht stimmt bleibt auch bei Dir weil Du der einzige bist der das sieht.

Im Anhang findest Du wieder dieselbe Übungsdatei. Als Ergänzung sind noch ein paar Felder, Tabellen und Spielereien dazugekommen und der Weg zum Ziel unterscheidet sich zum ersten Beispiel.

Gleich bleibt: Die Felder (Masterseite/Designansicht) lassen sich mit dem Passwort öffnen. Nach der Eingabe wird das Passwort vor neugierige Mitarbeiter durch ein "Hinweis" ersetzt. Setzt Du den Cursor (nach dem Bearbeiten der Felder Masterseite/Designansicht) ins Feld “Passwort“ werden die Felder wieder “Geschützt“.

Viel Glück
Andreas H.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

ChrisH1
Beiträge: 19
Registriert: 23.10.2016, 20:12

Kennwortschutz für einzelne Elemente

Beitrag von ChrisH1 » 07.02.2017, 12:01

Hallo Andreas,

noch einmal vielen Dank für die Mühe und die investierte Zeit.

Ich habe versucht die zweite Vorgehensweise zu übernehmen aber nach wie vor lassen sich nur die Elemente auf den "normalen" Seiten wie gewünscht sperren und entsperren. Ich glaube daher, dass der Fehler an einer anderen Stelle im Dokument versteckt liegt.

Das Dokument ist mit >50 Seite aber sehr umfangreich, sodass die Fehlersuche etwas Zeit in Anspruch nehmen wird. Ich melde mich sobald ich den Fehler gefunden habe und berichte euch was los war ;)

Freundliche Grüße,
Chris

ChrisH1
Beiträge: 19
Registriert: 23.10.2016, 20:12

Kennwortschutz für einzelne Elemente

Beitrag von ChrisH1 » 08.02.2017, 14:37

Ich habe gerade festgestellt, dass die Elemente der Masterseite entsperrt werden, ich diese aber nur auf der ersten Seite des Dokumentes bearbeiten kann. Ich weiß nicht ob das so vorgesehen ist, es ist auf jeden Fall eine Sache mit der ich Leben kann.

Freundliche Grüße,
Chris

Andreas H.
Beiträge: 533
Registriert: 14.04.2015, 11:10

Kennwortschutz für einzelne Elemente

Beitrag von Andreas H. » 08.02.2017, 15:54

Hallo Chris,

nehmen wir mal an, Du möchtest in den Feldern (Datum Masterseite/1. Seite  oder 2. Seite) aus der "Übungsdatei" das Datum manuell eingeben. Die Eingabe/Bearbeitung kann auch auf der 2. Seite erfolgen (ohne dass sich das Datum auf der 1. Seite verändert, es sei denn, die Felder tragen die gleiche Benennung, sind auf global eingestellt und das Feld auf der 2. Seite ist auf "Geschützt" eingestellt).

Warum bei Dir das Bearbeiten der Felder nur auf der 1. Seite möglich ist erklärt sich mir nicht. Wie viele Masterseiten sind denn bei Dir im Einsatz, unterschiedliche Benennung? Wenn dem so ist, dann sollten die Felder auf den unterschiedlich benannten Masterseiten mit angepasstem Code angesprochen werden.

Gruß
Andreas

ChrisH1
Beiträge: 19
Registriert: 23.10.2016, 20:12

Kennwortschutz für einzelne Elemente

Beitrag von ChrisH1 » 08.02.2017, 16:07

Hallo Andreas,

Ich habe nur eine Masterseite und die Element sind bei Bindung alle auf global gesetzt. Wenn ich die Elemente entsperre und auf der ersten Seite einen Wert eingebe, wird dieser Wert auch auf allen anderen Seiten übernommen. Lässt sich aber nur auf ersten Seite wieder ändern.

Ich kann mir auch nicht erklären woran es liegt.´

Ich vermute, dass dies auch die gesamte Zeit schon das Problem war. Ich habe nämlich immer nur versucht die Master-Elemente auf der Seite zu verändern, auf der ich auch das Kennwort eingebe.

Freundliche Grüße,
Chris

Antworten