Felder durch Klick auf Button in schreibgeschützt umwandeln

Sammlung von Vorlagen und Hilfestellungen
Julischka
Beiträge: 237
Registriert: 27.09.2009, 14:30

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von Julischka » 16.10.2009, 21:48

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

Jonny252
Beiträge: 21
Registriert: 03.12.2009, 15:40

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von Jonny252 » 08.12.2009, 16:01

Hallo,
wie hast du das gemacht? Ich versuche gerade im LiveCycle Designer die Schaltfläche zu reproduzieren, aber ich finde einfach die Verbindung nicht.
Ich habe eine zweite Schaltfläche angelegt, die ebenfalls die Felder sperren soll.

Julischka
Beiträge: 237
Registriert: 27.09.2009, 14:30

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von Julischka » 08.12.2009, 19:17

Hallo Jonny,

haben Sie sich die Struktur mal genau angesehen und auch das Skript im Skripteditor?
Die Schaltfläche ist unsichtbar und darunter liegt ein Bildfeld mit dem Schloss drauf.

In der unsichtbaren Schaltfläche ist ein Skript im Click event hinterlegt:

var nButton = app.alert({
cMsg: "Möchten Sie wirklich alle Felder unwiederruflich sperren? \n\nFortfahren?",
cTitle: "Assure HSC",
nIcon: 1, nType: 2
});
if ( nButton == 4 )
{
// Get the field containers from each page.
for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) {
var oFields = xfa.layout.pageContent(nPageCount, "field");
var nNodesLength = oFields.length;
// Set the field property.
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
oFields.item(nNodeCount).access = "protected";
}
}

// save value of lock
Lock.rawValue = "1";

padlockopen.presence = "invisible";
this.presence = "invisible";

}
form1.#subform[0].Protect::ready:layout - (JavaScript, client)
if (Lock.rawValue == "0")
{
// Get the field containers from each page.
for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) {
var oFields = xfa.layout.pageContent(nPageCount, "field");
var nNodesLength = oFields.length;
// Set the field property.
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
oFields.item(nNodeCount).access = "open";
}
}
Protect.presence = "visible";
padlockopen.presence = "visible";
}
else
{
// Get the field containers from each page.
for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) {
var oFields = xfa.layout.pageContent(nPageCount, "field");
var nNodesLength = oFields.length;
// Set the field property.
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
oFields.item(nNodeCount).access = "protected";
}
}
Protect.presence = "invisible";
padlockopen.presence = "invisible";
}


Wichtig ist, das die Namen der Felder alle identisch sind.

Versuchen Sie es wirklich exakt nachzubauen, dann funktioniert es.

Grüße
Julischka

EasyPerte
Beiträge: 22
Registriert: 22.04.2010, 10:44

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von EasyPerte » 26.04.2010, 09:23

Kurze Frage hierzu,

welche Scripte muss ich hier ändern damit er mir NICHT alle Felder sperrt?

Soweit ich das richtig lesen sperrt er mir ja alle "Field" Felder.

Nun habe ich in meinem Formular den oberen Teil, der vom Mitarbeiter ausgefüllt wird und einen unteren Teil der vom den jenigen ausgefüllt werden muss der das Formular vom Mitarbeiter bekommt.

Habt ihr zu diesem Script eine Lösung oder muss ich über den .access = "readOnly" gehen?

Gruß

easyPerte

 

 

dreamer
Beiträge: 122
Registriert: 10.08.2007, 16:19

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von dreamer » 20.05.2010, 15:38

Ich habe auf der Basis dieses Scripts versucht, nur ein/oder mehrere Teilformular(e) zu sperren, komme aber nicht drauf. Ich kann natürlich alle Felder einzeln ansprechen, aber da gibt es sicherlich eine elegante Lösung.

Gruss
Hermann

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

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von walde » 20.05.2010, 22:56

Hallo dreamer,

 

Man kann auch Teilformulare auf "schreibgeschützt" setzen. Diese Funktion funktioniert problemlos wenn Sie die Zielversion unter "Datei - Formulareigenschaften... - Standart" auf 9.0 oder höher einstellen. Siehe Beispieldatei.

 

Gruß,

 

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

dreamer
Beiträge: 122
Registriert: 10.08.2007, 16:19

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von dreamer » 21.05.2010, 06:19

Hallo Walde

Ich habe leider nur V8. Aber mit ein wenig probieren hab ich es hinbekommen.

Danke für den Anstoss

Code: Alles auswählen

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.parent.name != "keine_pruefung")
      {
         for(var i = 0; i < xfa.host.numPages; i++)
         {
            oItem.access = "protected";
         }
      }
   }
}
Gruss
Hermann

merlin80
Beiträge: 37
Registriert: 23.08.2010, 05:53

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von merlin80 » 10.09.2010, 08:02

Julischka hat geschrieben:Hallo Jonny,

In der unsichtbaren Schaltfläche ist ein Skript im Click event hinterlegt:

var nButton = app.alert({
cMsg: "Möchten Sie wirklich alle Felder unwiederruflich sperren? nnFortfahren?",
cTitle: "Assure HSC",
nIcon: 1, nType: 2
});
if ( nButton == 4 )
{
...
}
So ganz habe ich nun nicht verstanden, weshalb man an dieser Stelle so einen langen Code benötigt, wenn es auch mit "Teilform1.access = "protected";" funktioniert.  Okay, noch die fünf Zeilen für Abfrage, ob man das wirklich will, zusätzlich.  Aber was macht denn dieses ellenlange Programm anders?

Noch eine Frage:
Ich habe, auf der selben Seite wie die Schaltfläche 'Sperren', noch eine Schaltfläche 'Drucken', welche auch nach dem Sperren noch funktionieren soll.

Nun habe ich schon die Schaltfläche Drucken in ein Teilformular gepackt und spreche auch dieses Teilformular beim sperren gar nicht an und dennoch wird es mit gesperrt.
Ich vermute mal, dass es daran liegt, dass 'Drucken' mit in dem zu sperrenden Teilformular liegt. Räumlich gesehen will und kann ich dies nicht ändern. Wenn ich 'Drucken' jedoch in der Hierarchie-Ansicht aus dem zu sperrenden Teilformular herausziehe, ändert sich auch die räumliche Anordnung.

Nun habe ich mir gedacht, anschließend das Teilformular 'Drucken' wieder freizuschalten, aber dann funktioniert das Sperren gar nicht mehr.

Code: Alles auswählen

var nButton = app.alert({
    cMsg: "Möchten Sie wirklich alle Felder unwiderruflich sperren? \n\nHinweis: Die Sperre wird erst dauerhaft wirksam, \n nachdem das Formular abgespeichert wurde.",
    cTitle: "Eingabefelder sperren?",
    nIcon: 2, nType: 2
});
if ( nButton == 4 )
{
Seite1_Teilformular.access = "protected";
Seite2_Teilformular.access = "protected";
Seite2_Teilformular.Drucken-Teilformular.access = "open";
}

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

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von walde » 10.09.2010, 09:51

Hallo merlin80,

 

Wenn ein Teilformular gesperrt wird, so werden alle Objekte, die es enthält auch gesperrt.

Es gibt hier mehrere lange Skripte. Manche dienen dazu mehr flexibilitä in das Skript zu bringen, besonders wenn es um mehrere Seiten lange Formulare mit pro Seite mehreren Teilformularen geht oder um eine Variable Sperrung von Teilformularen, die nicht immer gleich ist ... . Andere Skripte sind notwendig, weil noch nicht alle Benutzer auf die Acrobat / Reader Version >= 9.0 umgestiegen sind. Teilformulare sperren funktioniert erst ab Acrobat / Reader 9.0.

In Ihrem Skript erkenne ich, dass Seite2_Teilformular gesperrt wird, das Drucken-Teilformular sich aber in Seite2_Teilformular befindet und somit auch gesperrt wird. Sie sollten das Drucken-Teilformular in ein Teilformular auf der gleichen Hierarchieebene verschieben, wie Seite2_Teilformular.

 

Gruß,

 

Walde

merlin80
Beiträge: 37
Registriert: 23.08.2010, 05:53

Felder durch Klick auf Button in schreibgeschützt umwandeln

Beitrag von merlin80 » 13.09.2010, 06:45

walde hat geschrieben:... Sie sollten das Drucken-Teilformular in ein Teilformular auf der gleichen Hierarchieebene verschieben, wie Seite2_Teilformular...
Wie schon erwähnt funktioniert das leider nicht.
Sowie ich das 'Drucken-Teilformular" in der Hierarchie-Ansicht in ein neues Teilformular verschiebe ändert sich auch die räumliche Anordnung innerhalb meines Dokumentes.
Bisher habe ich keine Möglichkeit gefunden, dies zu umgehen.

Antworten