みなさま、こんにちは!!
ゴールデンウィークも終ってしまいましたね。
弊社ではこの期間を利用し、本社事務所内の床の貼り替えと什器の入れ替えを行いました。
綺麗な事務所で、心機一転といきたいところですが、個人的にはすべて出勤でしたので、ちょっと疲れが・・・。
さて少しネタに困って参りましたので、ユニバーサルテンプレートの整備について、小出しにさせていただこうかと考えております。
そもそも弊社ではアクションボタンや、フォームのフィールド式を保存した「ライブラリ」というノーツデータベースがあり、設計要素をコピーして利用しておりました。
そんな中、昨年のノーツコンソーシアム 大阪研究会にてH様・・・先日公開しました
アプリケーション管理アプリをご紹介頂きました・・・よりまたしても、重要なヒントを頂いたものです。
H様がアプリケーションを新規作成する場合、必ずひとつのテンプレートから作成されるそうです。
そのテンプレートにはさまざまな設計要素が準備されており、コアな部分をそのまま流用するというものでした。
もちろんテンプレートの設計引継ぎは解除して作成することになります。
もっともテンプレートとして用意するか、設計要素をコピーするかの違いではありますが、先般の林様の「
Cool で使いやすい Notes アプリデザイン講座」の要素も含めると、テンプレート化した方が使いやすいのではと感じた次第です。
ということで、ブログを書きつつも、実は実際にテンプレートを作りながらというところが現実の姿になります。
ですから、後々に修正や追加は当たり前のように生じることになるはずですので、ご了承ください。
それでは今回はフォームについてご紹介させて頂きます。
新規でアプリケーションを作成し、新規のフォームを作成します。(各名称は自由)
フォームのウィンドウタイトルに
@If(@IsNewDoc;"
新規●● 作成中";
タイトルフィールド名)
と入力します。
赤字部分を実際に構築するアプリケーションに合わせて変更することで、ウィンドウのタイトルを制御します。
新規作成時・・・「新規●●作成中」
既存文書時・・・「タイトルフィールド名」
とノーツクライアントのタブとウィンドウのタイトルに表示されます。
続いて一般ユーザーへの非表示の表を作成します。
こちらに設計内容等を記載しておくことで、後々の参考にすることができます。
ノーツコンソーシアムの研究会でも、なかなかアプリケーションのドキュメントが残せないという意見が多くありました。
フォーム上に残しておくことで、改めてドキュメントを作成する必要を回避するものになります。・・・こちらもH様より頂いた情報になります。
フォームの上部に表をひとつ作成し、色は表・文字ともにグレーにしています。
ロールで[DBMgr]に割り当たっている方のみ表示できるように設定しますので、プロパティの段落非表示タブにて、
[式により段落を非表示] にチェックし、式には
!(@UserRoles="[DBMgr]")
と記述します。
もちろんACLでロールに[DBMgr]を追加し、管理者には割り当てておく必要があります。
続いて実際に表示させる表を追加します。
デザイン要素は先に記載の通り、林様セッションの内容を加味したものとしております。
次にフィールドです。
主に使う要素として、
・デフォルト値
・入力の変換
・入力の確認
を設定してあります。
入力の変換の例として、
@Narrow("")
として入力された内容の半角化を行っています。もちろん他の
@Wideで全角化も可能ですし、他の式でも使えます。
入力の確認としては、よく使用するブランクチェックとして以下の式を設定します。
@If(フィールド名="";@Failure("[フィールド]の指定は必須です。");@Success)
こちらも赤字部分の書き換えが必要です。
デフォルト値については、それ自体難しいものではありませんが、後日紹介予定のアクションとセットでnotes.iniへの値のやり取りを想定した設計を組み込んでおります。
YOMI=@Environment("
ini_name");
@If(
YOMI!="";
YOMI;"")
この式そのものは、notes.ini 内の ini_name に値がなければブランクを、値があればその値をフィールドにセットするというものです。
続いてアクションバーのデザインを変更しておきます。
最後にフォームとは異なりますが、サブフォームにて登録日・登録者・編集日・編集者の情報をまとめております。
現在は以上となります。
プリビューでは以下のようになります。
実際に使用するには、赤字部分を修正し、内容に合わせた表組みにするなどが必要ですが、アプリケーション開始時にここまで組まれていると楽に進められるのに加え、設定ミスを防ぐことができます。
今後はビューやアクションなどについても同様に進めさせて頂きます。