過去の桐井戸端BBS (桐ver.8)
2248 呼出カナでの表引き 福岡 太郎 1999/7/24-16:23
桐ver.8の表引きについて
 売上伝票入力の得意先の呼び出しを考えています。
 (商品も同じ要領で考えたいと思ってます)
   
 例. コード番号 123
   呼出カナ  ニホンショウジ
   得意先名 鞄本商事

  上のような場合に、数字コード番号で得意先を呼び出すのではなく
  ニホン を入力して表引きして、50音順で頭だしをしてから得意先の一覧が出て
  その中から得意先を指定する。 という処理がしたいのです。
  表引きで検索項目に 呼出カナ を指定すると得意先名が画面で確認できませ 
  ん。
  何かよい方法はないでしょうか。
  自分はシステムを開発してます。ポイントだけで結構ですのでどなたか
  よろしくお願いします。 
2249 Re: 佐田 守弘 1999/7/24-22:34
記事番号2248へのコメント
福岡 太郎さん
>  表引きで検索項目に 呼出カナ を指定すると得意先名が画面で確認できません。

これができるのが表引きなのですが。おそらく設定がどこかで間違っているのだと思います。
値項目に得意先名を設定してありますか?まずこれをご確認下さい。
それでも解決できなければ、それぞれの表の項目名と、設定した表の表引き条件をお書き下さい。
表引き条件は、定義画面で「項目属性をすべて表示」に設定すれば、表示されます。

佐田守弘
2252 Re: 天野☆ミ 1999/7/25-23:20
記事番号2249へのコメント
新人の天野と申します。
項目の並び方とか、列固定の設定の仕方?
的を得ていないのでしたら、馬鹿なやつで片づけて下さい。
2253 Re: 福岡 太郎 1999/7/26-08:08
記事番号2249へのコメント
表引き{[呼出WORK],"得意先50音",[得意先カナ],[得意先番号]} という式を[呼出WORK]の値条件に
設定してます。
[呼出WORK]に "フクオカ" を入力し、Endキーを押すと50音で頭だししてメニューより得意先を
選択しています。
 ※[呼出WORK]は文字列です。[得意先番号]は数値連番です。マクロで数値に変換してます。
この方法では得意先を選ぶ時に得意先カナは確認できますが得意先名が確認できません。もちろん、
メニューで指定した後は得意先名を表示しています。しかし、得意先を一覧から選ぶ時に得意先名を確認
したいのです。
ポイント
  ・50音カナで検索する
  ・[得意先番号]をGETしたい
  ・得意先を指定するメニューでは[得意先名]を表示したい
以上のようなことが可能な方法を探してます。値条件の表引きでは無理でしょうか?
ちなみに、桐Ver.5の時は一括処理のメニュー3コマンドを使用して変数に得意先名をカンマで
区切りながら一定件数代入して使用していました。
複雑な方法で結構ですので教えてください。
2255 Re: SAKURA 1999/7/26-11:34
記事番号2253へのコメント
>・50音カナで検索する
>・[得意先番号]をGETしたい
>・得意先を指定するメニューでは[得意先名]を表示したい

ということですので,あまりスマートな方法ではないのですが以下の方法が考えられます。

1)得意先50音 表にダミー項目として計算項目を追加
項目名:[得意先カナ&得意先名]
計算式:#連結([得意先カナ],":",[得意先名])
2)値条件の式を以下に変更
表引き{[呼出WORK],"得意先50音",[得意先カナ&得意先名],[得意先番号]}

一応上記の方法で可能かと思いますが[得意先カナ]の長さがマチマチですと表示が
見づらくなりますのでそのときは計算式を次のようにしてもいいかもしれません。
ただしこの場合は10文字を越える長い[得意先カナ]の検索が不能となります。
  計算式:#連結(#部分列([得意先カナ],1,10),":",[得意先名])

このような暫定的な手段をとらなければならないのは,桐の表引き機能が被検索項目と
被表示項目を別々に指定できないからなのです。
桐ver8をご使用でしたらイベント処理で独自の表引き機能を実現するのが
ベストな方法ではないかと思います。
2256 Re: 福岡 太郎 1999/7/26-13:35
記事番号2255へのコメント
>1)得意先50音 表にダミー項目として計算項目を追加
> 項目名:[得意先カナ&得意先名]
> 計算式:#連結([得意先カナ],":",[得意先名])
>2)値条件の式を以下に変更
> 表引き{[呼出WORK],"得意先50音",[得意先カナ&得意先名],[得意先番号]}
>
>
>このような暫定的な手段をとらなければならないのは,桐の表引き機能が被検索項目と
>被表示項目を別々に指定できないからなのです。
>桐ver8をご使用でしたらイベント処理で独自の表引き機能を実現するのが
>ベストな方法ではないかと思います。
>
上記の方法も考えましたが表引きの時点でメニューの表示幅が短く隠れてしまいます。
マウスで表示を広げることもできますが、毎回のため実用的でないです。
イベントで独自の表引き機能とは具体的にどうしたらいいのですか?
今まで桐Ver.5のみでしたのであまりピンときません。
ちなみに今、DOS桐から桐8へのプログラム移行の模索中です。よろしくお願いします。
2258 Re: SAKURA 1999/7/26-19:01
記事番号2256へのコメント
>イベントで独自の表引き機能とは具体的にどうしたらいいのですか?
>今まで桐Ver.5のみでしたのであまりピンときません。
>ちなみに今、DOS桐から桐8へのプログラム移行の模索中です。よろしくお願いします。
ということですね。^_^;
>桐ver8をご使用でしたらイベント処理で独自の表引き機能を実現するのが
>ベストな方法ではないかと思います。
と偉そうなこと書きましたが,実は当方も現在ver7.1販売管理システム作成の最後の
追い込み中でして,イベント処理については作成後に取り組む予定でイベント処理の
詳しいことについてはまったくわかりません。スンマヘン。^_^;;
ただ現時点での理解から述べさせてもらうと,イベント処理といっても内容は一括処理
の記述とさほど変わらないようなので次のような流れになると思います。
1.名札 メイン にて必要な局所変数を定義する。
2.手続き定義開始 フォーム::フォーム開始 にて被表引き表を開く。
3.手続き定義開始 表引き実行ボタン名::マウス左クリック にて表引き手続きを実行する
4.手続き定義開始 表引き手続き()の内容
1)入力された表引き検索項目値をどうにかして変数に代入する。^_^;
2)被表引き表を編集対象表に指定し1)の変数で検索する。
3)2)の表をなんとかしてフォーム形式で画面に表示させる。^_^;
4)3)のフォーム上で処理行指定でレコード位置を指定させる。
5)4)の処理行の被表引き項目値を変数に代入する。
6)3)のフォームを閉じる。
7)項目値代入で5)の変数値を表引き結果項目に反映させる。
8)メソッド呼び出しで該当フォームを再描写する。
 6.手続き定義開始 フォーム::フォーム終了 にて被表引き表を閉じる。

ただし上記は想像上の産物ですので実際に動くかどうかは当てになりません。^_^;;;
2264 Re: 福岡 太郎 1999/7/26-22:38
記事番号2258へのコメント
>>桐ver8をご使用でしたらイベント処理で独自の表引き機能を実現するのが
>>ベストな方法ではないかと思います。
>と偉そうなこと書きましたが,実は当方も現在ver7.1販売管理システム作成の最後の
>追い込み中でして,イベント処理については作成後に取り組む予定でイベント処理の
>詳しいことについてはまったくわかりません。スンマヘン。^_^;;
SAKURA さん御返事ありがとうございます。SAKURAさんの販売管理では得意先や商品の呼出は
どんな方法をされますか?Ver7.1でいいのができますか?
もしよろしければ教えてください。参考にします。
このページを見られた方、桐8で売上処理での得意先、商品の呼出のベストと思える
ルーチンを教えてください。
 (佐多先生宜しくお願いします。ホームページよく拝見させて頂いてます)
2267 Re: cheese 1999/7/27-10:22
記事番号2264へのコメント
お疲れ様です。
さて、呼出カナでの表引きの件ですが、
私は、呼出カナを検索項目にして、値項目に名称(得意先名等)
を指定し取得した名称から計算項目でコードを表引きする方式を
取りました。
これは少し安易な方法かもしれません。

またご参考までに、銀行名、支店名等の表引きの方法を
kevで、

手続き定義開始 検索項目::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整
数 &入力継続)
編集表 10
条件 (#絞り込み状態>0) 解除
絞り込み [銀行名]_&編集文字列,部分一致検索=含む
 編集表 #表番号取得( &hwindow )   
手続き定義終了

というようにし、たとえば検索項目に "さくら"と入れるとさくら銀行が選択され、
さくら銀行だけの支店名の一覧を表示し、選択された結果から、
表引きでコードを取得するようにしました。

この場合、表引き用tblは、KEVファイルの "名札 メイン"の 下に表を開く
記述をします。

戻る