概要
本記事は、Unifinity Wizard(以下「Wizard」と表記)で生成されたアプリに対して、Unifinity Studioを用いてカスタマイズを実施される方を対象としています。
Wizardでアプリを生成すると、「.ufpz」という拡張子のファイルも生成されます。このファイルにはZip形式でUnifinity Applicationのプロジェクトファイル一式が格納されています。本記事では、Wizardで設定した「工程」について、Unifinity Studioでカスタマイズを検討されている方向けの情報を解説します。
目次
工程について
Wizardの「作業工程」画面で工程を複数設定した場合、生成されるアプリケーションでは入力項目を工程ごとに分けることが可能となります。
Wizardでは工程を8つまで登録できますが、9つ以上の工程を作成したい場合や、工程の挙動を修正したい場合は、下記の情報をもとにカスタマイズを行うことで実現することが出来ます。
工程の設定箇所について
工程に関係するテーブルについて
「X_工程」テーブル
工程の名称や状態などを制御するためのテーブルです。
アプリ起動時(「0_0000_フレームページオープン」ロジック)に、このテーブルを初期化しており、これにより工程名などの情報が設定されます。
Wizardで設定できる工程は8つまでですが、最後に「完了」の工程が必要であるため、フィールドは工程9まで存在しています。
工程の名称を変更する場合は、このテーブルの「工程名●」のフィールドの「デフォルト値」を変更してください。
工程画面の「編集」「削除」のアイコンを変更したい場合は、「ボタン名●」「削除ボタン名●」のフィールドのデフォルト値に入っている内容をプロジェクトの「プロパティー」の「リソース」に登録されている内容に設定してください。
文字を表示したい場合は、デフォルト値に文字を入力した後、「2.詳細画面00_工程詳細_サブフォーム」画面の各ボタンのプロパティーで「データ」タブ→「リソース画像」タブ→「リソース」のチェックをOFFにしてください。
「X_工程フィルタ」テーブル
「9.31.1.工程フィルタ」画面内に配置される「9.31.2.工程リスト」画面で使用されるテーブルです。このテーブルに工程名や選択状態を登録することで、工程フィルタの画面を生成します。
「基本データ」テーブル
「工程」が設定されたアプリは、「工程」の情報を記録するために「基本データ」テーブルに自動で「工程(p_process)」と「工程番号(p_processNumber)」フィールドが追加されます。
それぞれ、各「基本データ」がどの工程の状態なのかを表すために使用します。
工程に関連する処理について
0_9310_工程フィルター起動(画面名,コントロール名,表示名,初期値)
「9.31.1.工程フィルタ」画面を開いたり、画面に表示する選択肢を作成するための処理です。
*5_4XXX_工程データ更新(工程番号,pid)
「現場データ」更新時に、「基本データ」の「工程」「工程番号」を更新するための共通処理です。
+0_2000_工程ページオープン(ID)
「工程詳細ページ」をオープンした際に工程の状態を「X_工程」テーブルに書き込むことで、編集ボタンなどの使用可否を設定します。
*9_2010_ボタン_工程●
工程編集ボタンを押した際の処理です。「現場データ」をワークテーブルにコピーして編集画面に遷移します。
*9_2010_ボタン_削除●
該当工程の「現場データ」を削除します。
+9_4000_ボタン_確定
「現場データ」の入力確認画面で「確定」を押した際の処理です。「基本データ」の工程を更新する処理が含まれています。
カスタマイズ例
最初からすべての工程を入力可能にしたい場合
Wizardで作成したアプリは現在の工程以前のみのボタンが有効となっており、工程を順々と進んでいく仕様となっております。工程のスキップを行うことはできません。ボタンの制御は「工程詳細画面」のオープン時に「+0_2000_工程ページオープン(ID)」で「X_工程」テーブルの「工程状態●」フィールドに1(ON)もしくは0(OFF)を設定することで実現しています。
必ず1が設定されるように変更すれば、工程のボタンが常に有効となるため、工程をスキップして入力することが可能となります。
工程を9つ以上追加したい場合
テーブルの準備
他の工程度同様にデータ用のテーブルを3つ(L_、T_、W_)を作成します。また、そのフィールドも同様の構成にします(_id、_pid等)
次に「X_工程」テーブルのフィールドにも追加を行います。工程の状態などには、前述のとおり完了工程のための「工程9」用のフィールドが存在しますので、新たに「工程10」用のフィールドを追加していきます。
画面の追加
既存の画面をもとに「3.入力画面09_現場情報通常入力」「3.入力画面08_現場情報通常入力_サブフォーム」等を作成し、データを先ほど作成したデータテーブルに紐づけます。
続いて「2.詳細画面00_工程詳細_サブフォーム」に工程9用のボタンなどを追加します。既にあるボタンなどをコピーし、「データ」の紐づけフィールドを「工程9」のものに変更します。
処理の追加
まず、グローバル変数に「+現場情報フィールドリスト9」を追加し、工程9のフィールドの物理名を列挙してください。
既存の処理を元に「*9_2010_ボタン_工程9」「*9_2010_ボタン_削除9」を作成し、先ほど作成した「2.詳細画面00_工程詳細_サブフォーム」のボタンに設定します。また、入力画面や確認画面用の処理も他工程の処理を参考に作成します。
次に「+0_2000_工程ページオープン(ID)」の「データの初期化」の欄で、「工程9」用の条件処理とデータベースの更新を行います。
また、「9_0101_現場データ8削除(削除対象レコード群,強制削除)」を参考に工程9用の削除処理も新規追加を行い、「9_0100_基本データ削除(削除対象レコード群)」から呼び出すようにします。
通信の各処理「9_0213_現場情報データ新規分送信8」「9_0223_現場情報データ受信8」「9_0233_現場情報データ変更分送信8」「9_0243_現場情報データ削除分送信8」について、工程9用の処理を作成し、それらを通信の各親処理「9_0210_データ新規分送信親処理」「9_0220_データ受信親処理」「9_0230_データ変更分送信親処理」「9_0240_データ削除分送信親処理」から呼び出します。
一覧画面にフィルターを設定している場合は、フィルターポップアップ用の「0_9310_工程フィルター起動(画面名,コントロール名,表示名,初期値)」ロジックを開き、工程名の取得とその後のデータベースへの追加処理も1工程分追加を行います。