掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
where条件内のCheckBoxについて (ID:47427)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
DBGridにて保守画面作成中です。 ヘッダーの検索条件に コンボボックスにて営業所・営業部選択できるようにしてます。 もう一つ検索条件があり、チェックボックスにて区分を設けてるのですが、 ☐A ☐B ☐C ☐D ☐E ☐F ☐G と7つチェックボックスがあります。 明細抽出時に、営業所or営業部 and チェックされた区分CD で絞込みをしたいです。 この時チェックは複数可能です。 ここで聞きたいのはこの時のwhere文の書き方です。 今は sWhereSQL := ' where 0 = 0 '; // 店所 if cmbKaisou.ItemIndex = 0 then sWhereSQL := sWhereSQL + ' and 営業所CD = ' + currtostr(edtEIGYO.Value) else sWhereSQL := sWhereSQL + ' and 営業部CD = ' + currtostr(edtEIGYO.Value); // 収入区分 if chkA.checked = True then sWhereSQL := sWhereSQL + ' and (区分CD in [1,10])'; if chkB.checked = True then sWhereSQL := sWhereSQL + ' and (区分CD in [2,20])'; if chkC.checked = True then sWhereSQL := sWhereSQL + ' and (区分CD in [3,30])'; if chkD.checked = True then sWhereSQL := sWhereSQL + ' and (区分CD in [4,40])'; if chkE.checked = True then sWhereSQL := sWhereSQL + ' and (区分CD in [5,50])'; if chkF.checked = True then sWhereSQL := sWhereSQL + ' and (区分CD in [6,60])'; if chkG.checked = True then sWhereSQL := sWhereSQL + ' and (区分CD in [7,70])'; としています。 この書き方だと()の場所が悪い為 思ってる通りに明細が出ません。 例えば、☐B ☐D にチェックされているとき (営業所 = XXX) and (区分CD = 2 OR 区分CD = 20) and (区分CD = 4 OR 区分CD = 40) となってしまうので...。 (営業所 = XXX) and (区分CD = 2 OR 区分CD = 20 or 区分CD = 4 OR 区分CD = 40) と出したいのです。 1つ1つ組み合わせてくと7つチェックボックスがありますので 組み合わせの数がすごいことになります。 何か効率の良い方法はございませんでしょうか? バージョンは Delphi® XE バージョンです。 長々とすみません。宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.