ここまでの設定では、全ての期間のデータを取得してグラフ表示しています。
日付の設定の画面を作成し、設定期間内の検索データを取得するSQLを発行できるようにします。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー/テキスト |
---|---|---|---|
パネル | 1 | 画面構成部品>パネル | 表示期間指定 |
ラベル | 2 | 画面構成部品>ラベル | From To |
日付入力フィールド | 2 | 画面構成部品>テキスト | 期間開始 期間終了 |
ボタン | 2 | 画面構成部品>ボタン | 📅(カレンダーの絵文字) 期間開始 期間終了 |
チェックボックス | 1 | 画面構成部品>チェックボックス | 表示期間を指定する |
チェックボックスを選択状態にしたときの日付や、画面のクリア処理などを設定します。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー/テキスト |
---|---|---|---|
サブルーチン | 2 | 処理部品>サブルーチン | 開始日付設定 終了日付設定 |
カレンダー | 1 | 処理部品>システム または 処理部品>ユーティリティ |
日付設定用 |
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
NULL判定 | 1 | 処理部品>条件制御 | 開始日付 終了日付 |
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー/テキスト |
---|---|---|---|
サブルーチン | 1 | 処理部品>サブルーチン | 画面クリア |
日時の入力が簡単になるように、ボタンを押して[日時選択ダイアログ]を表示し、その選択日を[日付入力フィールド]に設定できる よう にします。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー/テキスト |
---|---|---|---|
日時選択ダイアログ | 2 | 画面構成部品>ダイアログ | 期間開始 期間終了 |
それぞれのボタンを押したら、[日時選択ダイアログ]が表示されるようにします
確認ボタンを押して[日時選択ダイアログ]を表示し、時 刻部 分が設定されているか確認します。
画面編集
上位階層にイベントを伝播する前に複合コンポーネント内で検索SQL文字列を作成し、その検索SQLを上位階層で実行します。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
等価演算(=) | 1 | 処理部品>条件制御 | 期間指定有無 |
文字列格納変数 | 1 | 処理部品>変数 | 検索SQL |
イベント生成 | 1 | 処理部品>イベント | 検索 |
まず、Where句の付いていない検索SQL文字列を設定します。
上位階層に戻り、[積上棒グラフ表示部]のアクションイベント処理をコピーして、処理要求イベントに貼り付けます。
アクションイベントの処理は不要になります。
確認ここまで設定して、グラフが表示されるか確認します。
Where句を指定していないので、今まで通り期間を区切らない全体データが表示されます。
[チェックボックス]が選択状態の時にWhere句を付加する[サブルーチン]の処理を作成します。
今回はtaskテーブルのdateStart(開始予定日時)が指定期間内にあるデータを検索します。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
サブルーチン | 1 | 処理部品>サブルーチン | where句 |
文字列格納変数 | 1 | 処理部品>変数 | where句 |
検索期間を設定することで、期間内のデータ件数が0の場合も有り得ます。
該当のデータが無い場合も、行数「0」のテーブルデータが検索結果として取得されます。
ここまでは[テーブル格納変数]にデータが設定されたタイミングでデータの取得などを行っているので、行データが無いテーブルを対象
に処 理を行うとエラー が発生する可能性があります。
そこで、検索結果が[テーブル格納変数]に設定されたときに演算し、行数が「0」より大きい場合のみ処理を呼び出すようにします。
コンポーネント追加
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
比較演算(>) | 1 | 処理部品>条件制御 | テーブル行数 |
メッセージダイアログ | 1 | 画面構成部品>ダイアログ |
接続処理設定
該当データが無い場合グラフは表示されず、検索SQLが実行されたかどうか判りにくいので、メッセージを表示することにします。
確認ここまで設定すると、期間を設定した検索ができるよ うに なります。
グラフの数値軸の最大値や最小値は、既定では設定されるデータに合わせて調整されるようになっています。
項目別やプロジェクト別に変えて表示すると最大値や表示間隔が変わってしまうため、検索で取得されたテーブルデータの最大値に合わせて変わら
ない ように設定します。
数値軸の最大値は自動調整のままなので、検索期間を変更したり新規データが追加されたときは、データに合わせて最大値は変わります。
コンポーネント名 | 必要数 | カテゴリー | コンポーネントキー |
---|---|---|---|
任意精度実数格納変数 | 2 | 処理部品>変数 | 数値軸最大値 数値軸間隔 |
比較演算(>) | 1 | 処理部品>条件制御 | 最大値比較 |
全体データの最大値とグリッド間隔を格納しておきます。
[ボタン(積上棒グラフ表示)]のボタンを押す都度、一旦初期化します。
※ドラッグして【接続1-2】の前に来るように順番を入れ替えます。
検索SQLを実行し、1件以上の検索テーブルデータが設定されたときに、最大値とグリッド間隔を格納しておきます。
接続イベントは[比較演算(>)]の処理完了イベント(【接続2のコピー】)です。
グラフにデータが設定されたタイミングで変数内の数値と比較し、グラフの最大値の方が小さい場合は、大きい方の変数内の数値を最大値と して 設定しま す。
確認ここまで設定すると、自動調整設定のままで細かく系列を変更 して 表示し ても、入っている全体データに合わせて数値軸の最大値は固定されます。