過去の桐井戸端BBS (桐ver.7) |
1893 | 前項目の値により入力範囲を制限したい | 小川 | 1999/5/28-16:04 |
前項目の値により入力範囲を制限したいのですが、 出来るものでしょうか? 例:表「組合せ許可マスタ」 [項目A] [項目B] 01 001 01 002 01 003 02 001 02 003 03 002 03 003 03 005 の様な組合せのマスタテーブルを持っています。 入力表の[項目A]に"02"が入力されたら[項目B]に入力できる のは"001","003" に限定したいのです。 できれば、[項目B]の表引きには"001","003"のみ表示できると なお嬉しいのですが 一括の「項目訂正」ならばできそうな気がするのですが、 「行挿入」時にはどうすればよいのでしょう? ベストは会話処理で出来るといいのですが... どなたか教えて下さい。 | |||
1895 | Re: | 悲しげ | 1999/5/28-18:57 |
記事番号1893へのコメント どもっ、小川さん、 桐ver5なのか7.*なのかはわかりませんので、なるべく共用できる形でコメントします。 > できれば、[項目B]の表引きには"001","003"のみ表示できると > なお嬉しいのですが ここで云う「表引き」とは関数の#表引きのことを指しているのだと思われますが、 値条件(項目属性)の表引きで代用できませんでしょうか? 比較項目 項目A 表引き表 組み合わせ許可マスタ 使用索引 項目Aについて設定したもの 検索項目 項目A 値項目 項目B このように設定しておくと、入力表で、例えば「02」と入力すると表引き小窓が開いて、 カーソルが下記★印のところに位置しますから、 「001」や「003」を選びやすくなると思います。 >例:表「組合せ許可マスタ」 [項目A] [項目B] >01 001 >01 002 >01 003 >02 001 ←★ >02 003 >03 002 >03 003 >03 005 ただ、これだと検索しやすくはなりますが、限定はできません。 会話処理で限定するには、同じく項目属性で「項目制約式」をシコシコ書かなければならない かもしれません。要素が少なければそれでもかまわないかもしれませんが、 多い場合はあまり現実的ではありません。 が、要素が多ければ逆に、この表引きもより効果的だと思えます。 一括処理でなら、 1)入力表で[項目A]に入力された値を変数&aに取得 2)編集表をマスター表に移す 3)マスター表の[項目A]について&aで絞り込み(選択) 4)処理行指定などでレコードを指定 5)当該レコードの[項目B]の値を変数&bに取得 6)入力表に戻って、行訂正 [項目B]=変数&b で書き込む のようなやり方が考えられます。これだと3)の時点で限定され ますから、使い勝手はよくなると思います。 ちなみに、一括処理に「項目訂正」と云うコマンドはなかったと思います。(^^;) 「行挿入」の場合も基本的には同じです。 一括の場合は「行挿入」または「行追加」した時は、当該レコード位置にレコードポインタを 戻してから「行訂正」させます。 初めに述べた会話処理の表引きの場合なら、行訂正・項目訂正・ 行挿入・行追加の全てに共通して使えます。 | |||
1908 | Re: | 小川 | 1999/5/31-11:39 |
記事番号1895へのコメント 悲しげさん、詳しい解説有り難うございました。 > 会話処理で限定するには、同じく項目属性で「項目制約式」をシコ > シコ書かなければならないかもしれません。要素が少なければそれ > でもかまわないかもしれませんが、多い場合はあまり現実的ではあ > りません。 要素数も多いですし、実はこの後[項目A][項目B]の入力値により[項目C]、 その入力値により[項目D]まで4段階の入力規制をしたいので、 一括処理の方が現実的みたいですね。 > 1)入力表で[項目A]に入力された値を変数&aに取得 > 2)編集表をマスター表に移す > 3)マスター表の[項目A]について&aで絞り込み(選択) > 4)処理行指定などでレコードを指定 > 5)当該レコードの[項目B]の値を変数&bに取得 > 6)入力表に戻って、行訂正 [項目B]=変数&b で書き込む これなら何段階でもいけそうですし... 有り難うございました。また、困ったときはお願いします。 |