ユーザーが誤って特定の4D Write Proドキュメントを変更することを避けたいですか(完全または部分的に)?ドキュメントの一部を変更しないようにしたいですか(例えば、秘密保持契約書のフィールドを埋める能力をユーザーに与えながら、ドキュメント内の情報が一切変更されないようにしたい)?もし、あなたが首をかしげるのであれば、読み続けてください。4D v18 R3では、ドキュメントの一部を 保護することができます。「編集不可“です。
下の例では、4D Proドキュメントを使ってフォームを作成し、保護された部分と保護されていない部分が明確に識別できるようにしています(入力可能な部分は白で、変更不可能な部分はグレーで表示されています)。
ドキュメントで保護を定義するには、2つのステップを使用します。
- 最初のステップ-ドキュメントのどの部分が保護されるかどうかを定義します(デフォルトではすべての部分が保護されます)。
- 第二段階:ドキュメントの保護フラグを有効にし、第一段階の設定が考慮されるようにします。
新しい属性
どのように進めるか?新しいコマンドは必要ありません。よく知られたコマンドであるWP SET ATTRIBUTES で使用するために、2つの新しい属性が作成されました :wk protected とwk protection enabled 。最初の属性 (wk protected) は、文書に属するほとんどすべての種類のターゲットに設定できます(例: 段落、テーブル、セクション、テーブルの行、アンカー付きの画像など)。継承は管理されるので、あるセクションを保護した場合、そのセクションの段落はデフォルトで保護されるので、保護する必要はありません。ただし、保護されたセクションの中の1つの段落の保護を解除することもできます。
注意すること
注意しなければならないのは、ターゲットの順番だけです……これは完全に理にかなっています。例えば、あるセクションを保護した場合、そのセクション内の段落は常に保護を解除することができます。しかし、その逆は真ではありません。もし、ある段落を保護し、その段落が属するセクションの保護を解除すると、その段落の保護は失われます。
コードサンプル
エンドユーザーが記入しなければならないいくつかの領域を除いて、完全に保護しなければならない文書があるとします。この文書の設定方法は次のとおりです。
// set full parts of document protected
WP SET ATTRIBUTES$rangeWP 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)
:=WP Bookmark range(WParea; "Firstname")
WP SET ATTRIBUTES ($range;wk protected;wk false)
$range :=WP Bookmark range(WParea; "City")
WP SET ATTRIBUTES (
$range;wk protected; "wk false" )
// Finally activate the document protection
この機能のデモを見るには、上記のHDIとドキュメントをご覧ください。