Q&A

回答の並べ替え:
投稿新規に質問を投稿する

トランにあるけどマスタにないデータの表示方法について

shimashima shimashima

2019-10-01 16:03

CELFでアプリを作っているのですが、データ表示で困っています。
一覧表形式で、表示、登録、更新、削除ができるアプリです。
データはトランザクションデータとマスタデータを紐づけて表示させています。

マスタにないデータは登録させたくないので、マスタデータをリストボックスの形で表示し、登録時はそこから選ぶようにしています。
必須入力の項目ではないので、リストの1番目は空白で表示しています。
=LIST(1,"",A1:A10) こんな感じです。

空白のまま登録した時、トランデータは空白でデータ登録されます。
このデータをマスタと紐づけて表示させようとすると、一覧上に表示されなくなってしまいます。

アクションは「データ操作のテーブルから複数件取得」でトランとマスタを紐づけて表示させていますが、マスタ側に空白データがないので紐づかず、表示されないのだと考えています。
SQLで外部結合したらいいのですが、後々他の人がメンテする事を考えるとアクションで全て済ませたく…

何かよい解決策を持っているかた、いらっしゃいますか??
・登録時はマスタデータにないデータは登録させたくない
・ただし、必須選択項目ではないのでトラン側に空白が登録される事がある
・データ表示する時はアクションを使いたい(SQLは後々の人が理解できない恐れがあるので…)
・マスタ側に空白データは作りたくない
・空白データはnull、半角スペース、全角スペースにこだわりはないです

よろしくお願いいたします。

shimashima shimashima
回答ありがとうございました!

簡潔に、はなかなか難しいですね。

まずは2回ループさせる方法を試してみたいと思います。それで何か問題がでるようであれば、マスタに空白も考えてみます。

お二方とも、ありがとうございました!
zoe7010 zoe7010
データを登録する際に、デフォルトで登録されるIDをキーに紐づけるのはいかがでしょうか?

例えば、空白のIDが1、その他のマスタデータにもデフォルトでIDが登録されていると思いますので、
マスタのデータではなく、IDをキーにすることで、全件表示することは可能でしょうか?
この方法の場合、トランザクションデータ?に、マスタのIDも登録する必要もあるので、カラムを追加する必要があり、現実的ではないかもしれませんが、、、、

マスタ側に空白データは作りたくないとのこと、申し訳ございませんでした。
これだと、空白データ用のマスタを作らなければいけないですね。失礼いたしました。
Yexiongmao Yexiongmao
メダルベストアンサー
SQLを使用しない条件なら、トランザクション側のデータを出力した後、出力件数分のループを回して「テーブルから1件取得」で、検索条件にトランザクション側のブランクを含むキーを指定してマスタのカラムを出力するしかないと思います。
キーがブランクなら検索データは還りません。