4D Write Pro Dokumente als Eingabeformulare verwenden

Möchten Sie verhindern, dass Benutzer versehentlich ein bestimmtes 4D Write Pro Dokument (ganz oder teilweise) ändern? Sind Sie daran interessiert, einige Teile eines Dokuments unberührt zu lassen(z. B. den Benutzern die Möglichkeit zu geben, Felder in einer Geheimhaltungsvereinbarung auszufüllen und gleichzeitig sicherzustellen, dass keine der Informationen im Dokument in irgendeiner Weise verändert werden)? Wenn Sie mit dem Kopf nicken, dann lesen Sie weiter! Mit 4D v18 R3 können Sie Teile Ihrer Dokumente schützen, oder anders ausgedrückt:„nicht editierbar„.

HDI: 4DWP-Dokumentenschutz

Im folgenden Beispiel haben wir ein Formular mit einem 4D Pro Dokument erstellt, bei dem die geschützten und ungeschützten Bereiche klar erkennbar sind (eingabebereite Bereiche in weiß, nicht veränderbare Bereiche in grau):

Um den Schutz in einem Dokument zu definieren, werden zwei Schritte verwendet:

  • Erster Schritt – Definieren Sie, welcher Teil des Dokuments geschützt werden soll oder nicht (standardmäßig werden alle Teile geschützt).
  • Zweiter Schritt – Aktivieren Sie das Dokumentschutzkennzeichen, damit die ersten Einstellungen berücksichtigt werden.

Neue Attribute

Wie kann man vorgehen? Ein neuer Befehl ist nicht erforderlich, denn es wurden zwei neue Attribute geschaffen, die mit dem bekannten Befehl WP SET ATTRIBUTES verwendet werden können: wk protected und wk protection enabled. Das erste Attribut (wk protected) kann auf fast jede Art von Ziel gesetzt werden, das zu einem Dokument gehört(z. B. Absatz, Tabelle, Abschnitt, Zeilen in einer Tabelle, verankerte Bilder usw.). Die Vererbung wird verwaltet, d. h. wenn Sie einen Abschnitt schützen, brauchen Sie die Absätze dieses Abschnitts nicht zu schützen, da sie standardmäßig geschützt sind. Allerdings können Sie den Schutz eines einzelnen Absatzes innerhalb eines geschützten Abschnitts auch wieder aufheben.

Behalten Sie im Hinterkopf

Das Einzige, worauf Sie achten müssen, ist die Reihenfolge der Ziele … was durchaus sinnvoll ist. Wenn Sie z. B. einen Abschnitt schützen, können Sie den Schutz eines Absatzes innerhalb dieses Abschnitts jederzeit aufheben. Das Gegenteil ist jedoch nicht der Fall. Wenn Sie einen Absatz schützen und dann den Schutz des Abschnitts, zu dem er gehört, aufheben, geht der Schutz des Absatzes verloren.

Code-Beispiel

Sie haben ein Dokument, das bis auf einige Bereiche, die vom Endbenutzer ausgefüllt werden müssen, vollständig geschützt werden muss. So richten Sie dieses Dokument ein:

// set full parts of document protected
WP SET ATTRIBUTESWP SET ATTRIBUTESWPareawk protection enabledwk true(WParea;wk protected;wk true)
// then remove protection on three ranges based on bookmarks
$range :=WP Bookmark range(WParea; "Name")
WP SET ATTRIBUTES ($range;wk protected;wk false)
$range :=WP Bookmark range(WParea; "Vorname")
WP SET ATTRIBUTES ($range;wk protected;wk false)
$range :=WP Bookmark range(WParea; "Stadt")
WP SET ATTRIBUTES ($range;wk protected;wk false)
// Finally activate the document protection

Eine Demonstration dieser Funktion finden Sie in der obigen HDI und in der Dokumentation.

Roland Lannuzel
- Product Owner & 4D Experte - Nach seinem Studium der Elektronik arbeitete Roland als Entwickler und Berater in der industriellen IT-Branche, wo er Lösungen für Kunden mit einer Vielzahl von Datenbanken und Technologien entwickelte. In den späten 80er Jahren verliebte er sich in 4D und setzte es bei der Entwicklung von Geschäftsanwendungen wie Buchhaltungs-, Abrechnungs- und E-Mail-Systemen ein. 1997 trat er schließlich in das Unternehmen ein und leistete einen wertvollen Beitrag, indem er Spezifikationen, Testtools und Demos entwarf, Schulungen durchführte und auf vielen Konferenzen für die 4D Community sprach. Er gestaltet die Zukunft von 4D aktiv mit, indem er neue Funktionen und Datenbankentwicklungstools definiert.