191 Views
February 02, 25
スライド概要
Notes/Dominoの@関数を取り上げながら、調べたこと、経験したことを雑談してゆきます。
第44回は @DocFields について
@ -notes knows community- 2023/05/11 @関数Talk 第45回 公開版 ✔ @DocFields @ 阿部 覚 (tw:) @abesat Talks around @Functions in Notes and Domino 45th
@ 意外と知られていない…? 私はけっこう使っていまして @
@ @DocFields @ で放談
@ @DocFields ヘルプによれば 「文書のすべてのフィールドのリストを返します。」 「この関数は、文書内で実行するどの式でも使用できます。 列式やビュー選択式では機能しません。」 @
@件名と本文をテキスト入力するだけの 単純なフォームでためしてみましょう テキストフィールド3つだけのフォームを作りました TitleとBodyTxtは編集可能な フツーのフィールド DocFieldsは 表示用の計算結果で ここに式として @DocFields を入れておきます @
@このフォームで文書を作成した時 F9キーまたはF5キーを押すと @
@Ctrl+S で保存すると F9キーまたはF5キーを押すと @
@Ctrl+S で保存すると F9キーまたはF5キーを押すと @
@また、保存後に一度閉じた文書を開くと @
@ @DocFields は、前述のように、 ・文書内のすべてのフィールドのリスト なんだけど、とりあえずは こんな性格がある…と思われます ・$で始まる自動生成フィールドも含む ・表示用の計算結果も含む (表示中の文書内で一時的にでも存在する間は) @ ・文書更新したり保存するタイミングで計算される (保存の「直前」に計算されるのでは)
@私はどんなことに使ってるかというと ビューで使っています いくつかのフォームが混在するDBで どんなフォームの文書でもとりあえず 多少は中身を表示してくれるビュー を作って、利用しています @
どんなフォームの文書でもとりあえず @ 多少は中身を表示してくれるビュー: @ 列ごとに、 " @DocFields の○個目 " の 「フィールドID」と、(可能なら)「その内容」を 表示しています
@ あれ、待てよ? 冒頭で… @DocFields ヘルプによれば 「文書のすべてのフィールドのリストを返します。」 @ 「この関数は、文書内で実行するどの式でも使用できます。 列式やビュー選択式では機能しません。」
@ビューで動いてるよ、ヘルプ間違ってるやん と、突っ込もうとしてたんですが @ よくよく見ると、少し事情がありそうで…
@こちらの列は、式もそのまま @DocFields ですが 文書プロパティ上には残っていないフィールド 文書を開いたときしか表示されないはずの 表示用の計算結果や、$始まりのシステムフィールドが ビュー列上の @DocFields で表示されることがあります @ どうやらビュー列上 @DocFields は、 文書が保存される時点の画面UIが反映される感じなのです (👆「る」であって「た」ではなさそう😬)
@ でもまあ、そこを踏まえてさえおけば 文書上に常にあるものは表示してくれてるわけなので ビューで使ってもいいんじゃない? 例えばこんな使い方はできると思っていますが @
@文書リンクやDBリンクなど、 Notesのリンクが文書内に貼り付けられると $Links というフィールドが自動生成されます $Links をビュー列で指定しても何も表示されません (@IsAvailable 関数も使えません) でも、@DocFields には含まれるので、 たとえば こんな式で 列アイコンを使って @ リンクの存在をビューで表示できます
を使った他の応用例として、 @@DocFields いまは更新がなくなってしまった Notes サポートのブログに2例 設計を隠してあるDBで文書のフィールドを表示する http://hnagasim.blog8.fc2.com/blog-entry-191.html @ スマートアイコン: アイテムの変更と削除 http://hnagasim.blog8.fc2.com/blog-entry-23.html 特にこちら 私は強烈重宝しています
@ 最後に私のフォームでの応用例をちらっと どんなフォームで作られた文書でも とりあえず全フィールドの中身を テキスト表示する着せ替えフォーム @
@とりあえず全フィールドの中身を テキスト表示する着せ替えフォーム は フォームにフィールドはひとつも置かず たったひとつの計算結果テキストを置きまして そこへ@DocFieldsを使った式を入れます @
@これで、ひとまず文書内の全フィールドの IDと値を表示しちゃうものです @ フィールド定義のないアイテムや 隠しフィールド等の確認に 本来のフォームで表示中の文書を 「フォームの切り替え」で、 あるいは、設計上のフォームが失われた文書の 中身を見るのに使えるかと
@ 式については次回 他の関数も使用するため 放談は @For @Elements などの予定でおります♥ @
@ 今回もお付き合い ありがとうございました 😀 @