2)ヘッダと明細の組み合わせの選択プログラム

144 views

プログラムの仕様

  • ヘッダに条件(顧客カナ)を入れる
  • 検索ボタンを押すことで条件に沿った顧客名で抽出した一覧データを表示する
  • 1)ヘッダと明細の組み合わせの一覧参照形式と違いあいまい検索を行う
  • 各プログラムからコールされる
  • 顧客番号を記述したボタンをクリックすると該当する顧客番号を返す

その他該当プログラム

ZM0010、ZM0020、ZM0030、ZM0040


タスクの構造


ZM0010(オンライン):抽出条件入力項目など抽出条件を配置するタスク。メインソース未定義
ZM0010List(オンライン):条件に合致したデータの一覧を表示するタスク。メインソース顧客マスタ

なぜこのタスク構造になるのか?

メインソースの種類、単票(スクリーンモード)、明細(ラインモード)によってタスクを作成するかを判断します。
ZM0010(メインタスク)は条件入力変数を入れるためメインソースはありません。
次は条件に対する一覧を表示するために、もう1つのタスクを作成します。
このZM0010に顧客マスタを参照リンクで引っ張ろうとする方法を時折見受けますが、これは間違えた方法です。
参照リンクは1行のみ位置付けする方法です。
そのため今回のように複数行をリストとして表示する場合は、メインソースに顧客マスタを指定して、テーブルに設定しなければなりません。


タスク特性について

ZM0010(メインタスク)の場合


タスクタイプ:Web Client
インタラクデティブ:入力画面なのでチェックをつける
初期モード:変数項目を修正できるように修正モードに設定します


ルート:空白
ルーティングではなくコールプログラムによって呼ばれるため空白となります。
ただし、別の目的などでルーティングによっても呼ばれる場合はルートを設定します。


トランザクション:データベースの更新がないため「なし」
空のデータビュー許可:データベースのとのやりとりがないため「なし」


Z0010List(サブタスク)の場合


明細を表示するのみです。
このタスクでは編集や削除を行わないため、初期モードを照会にする必要があります。
修正モードでも動きますが余計なロックなどを防ぐために照会モードにしてください。

選択テーブル:Yes
明細をダブルクリックや選択イベントが発生することでプログラムを終了いたします。


トランザクション:データベースの更新がないため「なし」
空のデータビュー許可:データがない場合の挙動を決定します。


空のデータビュー許可:Noの場合
データが無い場合、最初から一行表示されており入力モードとなります。
編集ボタンが押すことが可能ですので不具合の温床になります。


空のデータビュー許可:Yesの場合
データが無い場合は何も表示されません。
参照系の場合はぜひ、データビュー許可をYesにした方がよいでしょう。


データビュー、ロジック、フォームについて

ZM0010(メインタスク)の場合

データビュー


パラメーター P.顧客番号
入力変数項目(v顧客フリガナ)ボタン変数項目(v検索ボタン)を追加
パラメータP.顧客番号に初期値がある場合は、受け取りレコード後処理にて参照渡しで戻します。

フォーム


コールで呼ばれモーダルで表示するので、ウィンドウタイプをオーバーレイに設定してください。
必ずオーバーレイに設定してからSmartUXのフォームを構築してください。
間違ってオーバーレイにしないままSmartUXのフォームを作成した場合はSmartUX側のフォームを再作成する必要があります。

変数項目とZM0010Listを配置するサブフォームを置くきます。
サブフォームはプログラム/タスク番号にサブタスク:ZM0010Listを指定します。

ロジック


検索ボタンをクリックした場合、全角カナなどを一旦半角に変更したのちに
条件に沿ってZM0010Listを再表示させます。
また,
項目上でESCキーを押した場合はプログラムを終了させます。


ZM0010List(サブタスク)の場合

データビュー


メインソースには顧客マスタを指定します。
ボタン用の変数を追加して、ボタンには顧客番号を表示しております。
このボタンをクリックすることで選択したことにします。


読込専用テーブルのため、アクセスは読込を選択して下さい。
書き込みにすると余計なロックがかかる場合があります。

範囲 MagicSQL


今回は先頭一致ではなくあいまい検索を行います。
あいまい検索を行う場合はタスク環境⇒範囲/位置付にて
MagicSQLにWhere句を指定する必要があります。
今回は 顧客名カナ LIKE (‘*’ & Trim (v顧客フリガナ) & ‘*’) とします。
これであいまい検索が可能となります。

フォーム


テーブルに対して表示する項目をドラッグ&ドロップします。
入力項目ではない表示項目に関しては修正許可を「False」に変更してください。
ボタンをクリックすると選択テーブルを選択することにするので
イベントタイプ=内部、イベントを選択にしてください。

ロジック


レコードを選択することでレコード後処理が動きますので、
ZM0010にて参照渡しで受け取った変数に対して選択した顧客番号を渡します。

以上で選択した伝票番号をコール元のプログラムに渡すことができるようになりました。

Share this Article

2)ヘッダと明細の組み合わせの選択プログラム

Or copy link

CONTENTS