ここでは新規にデータベースにデータを登録できるように、画面を作成し機能を設定しま す。
最初にプロジェクトの登録部分を作成します。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー/テキスト |
---|---|---|---|
パネル | 1 | 画面構成部品>パネル | プロジェクト |
ラベル | 3 | 画面構成部品>ラベル | 受注番号 品名 納期 |
テキストフィールド | 2 | 画面構成部品>テキスト | 受注番号 品名 |
日付入力フィールド | 1 | 画面構成部品>テキスト | 納期 |
ボタン | 1 | 画面構成部品>ボタン | プロジェクト追加 |
コンポーネント名 | 必要数 | カテゴリー | タイトル |
---|---|---|---|
フレーム | 1 | 画面構成部品>フレーム | データ追加 |
これまでの画面とは別フレームに配置したので、メインの[フレーム(工程管理)]に[メニュー]を追加し、メニューアイテムを選択した
と きに[フレーム (データ追加)]が表示されるようにします。
コンポーネント名 | 必要数 | カテゴリー | テキスト |
---|---|---|---|
メニュー | 2 | 画面構成部品>メニュー | DBデータ編集 接続設定画面表示 |
メニューアイテム | 2 | 画面構成部品>メニュー | データ追加 接続設定画面表示 |
[編集画面図1]※起動メソッド情報設定画面図は省略します。引数の設定はありません。
[編集画面図2]接続イベントは「アプリケーション終了イベント」です。
※起動メソッド情報設定画面図は省略します。引数の設定はありません。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
文字列格納変数 | 1 | 処理部品>変数 | 検索SQL |
イベント生成 | 1 | 処理部品>イベント | SQL実行 |
テーブル格納変数 | 1 | 処理部品>変数 | 検索結果 |
等価演算(=) | 1 | 処理部品>条件制御 | 重複確認 |
メッセージダイアログ | 1 | 画面構成部品>ダイアログ | 重複通知 |
コンポーネント名 | メソッド | 変更メソッド名 |
---|---|---|
テーブル格納変数(検索結果) | テーブルを設定する(PFObjectTable) | 検索結果テーブルを設定する |
以上の接続は【接続9】([積上棒グラフ表示部]の処理要求イベント処理)をコピーして、貼り付けると簡単です。
【接続12-3】に当たる処理は接続先が[積上棒グラフ表示部]複合コンポーネントになっているので、右クリックして接続コン
ポーネント 選択で[データ追加部]に変更します。
メソッドも消えてしまうので、設定し直します。
確認ここまで設定して重複する受注番号(例:A01)を[テ キストフィール ド]に入力し、メッ セージダイアログが表示されることを確認してください。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
文字列格納変数 | 1 | 処理部品>変数 | InsertSQL |
サブルーチン | 1 | 処理部品>サブルーチン | Insert文作成 |
※【13-1】~【13-3】の接続を【上位接続6】([ガントチャート表示部]データ更新イベント処理)からコピーして貼り付けると
簡単です。
メソッドの変更はありません。
確認 [ボタン(プロジェクト追加)]を押して、エラーが発生しなければ
データが追加されています。
メインフレーム(工程管理)のテーブル表示画面でプロジェクトが追加されているのを確認してください。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
サブルーチン | 2 | 処理部品>サブルーチン | 開始処理 終了処理 |
カレンダー | 1 | 処理部品>システムまたは 処理部品>ユーティリティ |
初期日付設定 |
各フィールドの値をクリアします。
コンポーネント名 | メソッド | 公開メソッド名 |
---|---|---|
サブルーチン(開始処理) | 処理を呼び出す() | 開始処理を呼び出す |
サブルーチン(終了処理) | 処理を呼び出す() | 終了処理を呼び出す |
上位階層に戻り、開始と終了の処理を呼び出します。
[テーブル(工程)]に工程予定表を作成し、受注番号とともに、データベースのtaskテーブルに追加します。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー/テキスト |
---|---|---|---|
パネル | 1 | 画面構成部品>パネル | 工程 |
ボタン | 3 | 画面構成部品>ボタン | 編集行追加 選択行削除 データベースに追加 |
テーブル | 1 | 画面構成部品>テーブル | 工程 |
接続処理設定
コンポーネント追加
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
比較演算(>) | 1 | 処理部品>条件制御 | 選択行確認 |
接続処理設定
入力したテーブルデータをデータベースのtaskテーブルに追加します。
[データベースアクセス]のメソッドに、
データをテーブルごと追加できる「InsertRowDirectryByQuery(String,PFObjectTabel)」があります。
このメソッドを使って、[テーブル(工程)]に入力したデータをデータベースのtaskテーブルに追加します。
列の数や順番は追加先のデータベーステーブルと違っていても構いませんが、列名は一致している必要があります。
コンポーネント名 | メソッド | 公開メソッド名 |
---|---|---|
データベースアクセス | InsertRowDirectryByQuery(String,PFObjectTabel) | データベースにテーブルデータを追加する |
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
テーブル格納変数 | 1 | 処理部品>変数 | 追加用データ |
文字列格納変数 | 1 | 処理部品>変数 | 列名リスト |
イベント生成 | 1 | 処理部品>イベント | データ追加 |
追加用のテーブルデータの列名を「task」テーブルに合わせて設定して、イベントを発生させます。
接続元イベントは[データ追加部]のデータ更新イベントです。
データ更新イベントが複数の処理から発生しているので、先に設定してあった【接続13-2】にもイベント番号を設定します。
確認ここまで設定すると、taskテーブルにデータが追加できる ようになります。
ここまででテーブルデータのデータベースへの追加はできるようになりましたが、さらに入力作業がしやすいように入力機能を工夫します。
[テーブル]の開始予定時刻、終了予定時刻列のヘッダーをクリックすると[日時選択ダイアログ]を表示するようにします。
コ ンポーネント追加コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
日時選択ダイアログ | 1 | 画面構成部品>ダイアログ | |
整数(Integer)格納変数 | 1 | 処理部品>整数 | 選択列番号 |
イベント生成 | 1 | 処理部品>イベント | 日時ダイアログ表示 |
比較演算(>) | 1 | 処理部品>条件制御 | 行選択確認 |
作業時間と開始日時を入力すると終了日時を自動的に計算し、設定するようにします。
コ ンポーネント追加コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
イベント生成 | 1 | 処理部品>イベント | 時間設定 |
ファンクション | 1 | 処理部品>サブルーチン | 終了日時設定 |
NULL判定 | 2 | 処理部品>条件制御 | 作業時間 開始日時 |
カレンダー | 1 | 処理部品>ユーティリティー | 時間設定 |
8.2.2までで作業時間と開始予定日時が分かれば、終了予定日時が自動的に計算されて入力されます。
ここでは、終了予定日時を入力または変更したとき作業時間が入力されていれば、開始時間を自動的に計算するようにします。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
ファンクション | 1 | 処理部品>サブルーチン | 開始日時設定 |
NULL判定 | 2 | 処理部品>条件制御 | 作業時間NULL? 終了日時NULL? |
整数(BigInteger)格納変数 | 1 | 処理部品>変数 | ミリ秒 |
前項までの処理のままでは、[テーブル(工程)]のデータ更新イベントが、無限に発生する可能性があります。
[イベント伝播制御]コンポーネントは、イベント制御モードを「false」または「true」にすることによって、イベントを伝播するかし な
い か切り替えることができます。
[テーブル]のデータ更新イベント処理に[イベント伝播制御]を設定し、セルの値を設定する前後でイベント制御モー ドを変更します。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
イベント伝播制御 | 1 | 処理部品>イベント |
確認ここまで設定すると、開始日時と終了日時が分かると作業時間 が自 動計算されるようになります。