| Verfasser | Bericht |
|---|
Julischka Member
| Eintragen seit: | 26 Sep 2009 |
| Herkunft: | Deutschland |
| Berichte: | 214 |
| Status: |
Offline
|
|
Geschrieben: 16 Okt 2009 19:48 |
|
| . Anlage: Felder auf Schreibschutz setzen.pdf (418 Mal aufgenommen)
|
Jonny252 Member
| Eintragen seit: | 2 Dez 2009 |
| Herkunft: | |
| Berichte: | 21 |
| Status: |
Offline
|
|
Geschrieben: 8 Dez 2009 14: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 Member
| Eintragen seit: | 26 Sep 2009 |
| Herkunft: | Deutschland |
| Berichte: | 214 |
| Status: |
Offline
|
|
Geschrieben: 8 Dez 2009 17: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 Member
| Eintragen seit: | 21 Apr 2010 |
| Herkunft: | |
| Berichte: | 22 |
| Status: |
Offline
|
|
Geschrieben: 26 Apr 2010 07: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 Member
| Eintragen seit: | 9 Aug 2007 |
| Herkunft: | Schweiz |
| Berichte: | 99 |
| Status: |
Offline
|
|
Geschrieben: 20 Mai 2010 13: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 Member
| Eintragen seit: | 1 Mai 2008 |
| Herkunft: | Deutschland |
| Berichte: | 613 |
| Status: |
Offline
|
|
Geschrieben: 20 Mai 2010 20: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
Anlage: Test Teilformular sperren.pdf (173 Mal aufgenommen)
|
dreamer Member
| Eintragen seit: | 9 Aug 2007 |
| Herkunft: | Schweiz |
| Berichte: | 99 |
| Status: |
Offline
|
|
Geschrieben: 21 Mai 2010 04:19 |
|
Hallo Walde
Ich habe leider nur V8. Aber mit ein wenig probieren hab ich es hinbekommen.
Danke für den Anstoss
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
Letzte Änderung am 21 Mai 2010 07:33 von dreamer
|
merlin80 Member
|
Geschrieben: 10 Sep 2010 06:02 |
|
Julischka schrieb: 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.
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 Member
| Eintragen seit: | 1 Mai 2008 |
| Herkunft: | Deutschland |
| Berichte: | 613 |
| Status: |
Offline
|
|
Geschrieben: 10 Sep 2010 07: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
Letzte Änderung am 10 Sep 2010 13:10 von walde
|
merlin80 Member
|
Geschrieben: 13 Sep 2010 04:45 |
|
walde schrieb: ... 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.
|
nele_sonntag Super Moderator
|
Geschrieben: 13 Sep 2010 08:15 |
|
Hallo merlin80,
wenn Du Dein Dokument so angelegt hast, wie Du sagst, sollte das ohne Problem so gehen, wie es walde beschrieben hat.
Vlt. solltest Du es mal hochladen.
LG Mandy
|
Aida Member
| Eintragen seit: | 16 Okt 2010 |
| Herkunft: | |
| Berichte: | 1 |
| Status: |
Offline
|
|
Geschrieben: 21 Okt 2010 07:54 |
|
Hallo zusammen,
ich bin recht neu hier und mache meine ersten Schritte bei der Formularerstellung.
Ich habe mal den vorgenannten Button in mein Formular eingefügt, das PDF dann als dyn. XML Formular abgespeichert. Mit Acrobat habe ich dann die erweitereten Funktionen für dieses Dokuemnt freigeschalter damit mann es speichern kann.
Wenn ich jetzt dieses Dokument öffne, Inhalt eingebe und die zellen sperre ,über den Button, sieht das erstmal alles nicht megr veränderbar aus. wenn ich jetzt heregehe und eine Kopie von diesem PDF abspeichere und anschl. mit dem Reader wieder öffne sind die gesperrten Felder wieder Editierbar.
Kann mir jemand sagen was ich hier verkehrt mache?
Danke
AIDA
|
nele_sonntag Super Moderator
|
Geschrieben: 22 Okt 2010 10:32 |
|
Hallo AIDA,
lade doch mal Dein PDF hoch, dann kann man direkt schauen.
LG Mandy
|
sevenup_666 Member
| Eintragen seit: | 17 Feb 2011 |
| Herkunft: | |
| Berichte: | 12 |
| Status: |
Offline
|
|
Geschrieben: 14 Mar 2011 13:59 |
|
| Gibt es eine Möglichkeit den Protect mit einen anderen Button und einem Passwort zu entfernen?
|
nele_sonntag Super Moderator
|
Geschrieben: 14 Mar 2011 18:30 |
|
Wenn Du Dir das Skript anschaust, siehst Du den Befehl
| oFields.item(nNodeCount).access = "protected"; |
Wenn Du nun "access" bei F1 eingibst, siehst Du dort die restlichen Parameter von access und kannst entsprechend Deinen Wünschen "protected" ersetzen.
Für eine Passwortabfrage baust Du einfach eine IF-Abfrage vor dieses Skript.
if(Passwortfeld.rawValue == "Passwort")
{
Skript ausführen;
}else{
xfa.host.messageBox("Passwort falsch", "Tipp",1,0);
Passwortfeld.rawValue = "";
} |
LG Mandy
Anlage: access.jpg (396 Mal aufgenommen)
|
 Uhrzeit 18:01 | Seite: 1 2 3 |
|