過去の桐井戸端BBS (桐ver.8)
10878 フォーム上でモード変更によりカーソルが移動する項目を変えたい 桐坊主 2001/04/14-23:22
フォーム入力で、モード変更出来ないかをお教えいただけないでしょうか
伝票入力中ですが、仮に、「詳細・高速」モードとします。
モード切り替えはコマンドボタンを利用したいと思います。

項目が[商品番号][商品名][数量][単価][金額]・・・とします
詳細モードでは、[商品番号][商品名][数量][単価]にカーソルが止まって、
高速モードでは[商品番号][数量]だけカーソルが動くようにしたいのが目的です。

商品名・単価等は時々変更することがある為、表(tbl)は
項目初期値等で表引きを設定し、項目計算式は空白です
変更の必要があるときのみ詳細モードを利用したいと思います

質問ですが、高速モードの時、商品名のタブストップを"0"にすると
コード入力後、金額までカーソルは動くのですが、商品名が表示されません。
また、その行が最後の行でなく単なる途中の処理です。

いろいろ#表引きや行訂正等試してみましたが思うようにいきません
きっとコード入力後何かをするのかな?と思いますが
イベント等で項目値を表示(更新)する方法はございませんか
是非方法をご存じの方よろしくお教え下さい
お願いいたします。

10882 Re:フォーム上の項目(値)変更 ONnoji 2001/04/15-02:00
記事番号10878へのコメント
>質問ですが、高速モードの時、商品名のタブストップを"0"に
>するとコード入力後、金額までカーソルは動くのですが、
>商品名が表示されません。
>また、その行が最後の行でなく単なる途中の処理です。

桐坊主さん こんばんは。 ONnojiです。

表(.tbl)の行挿入初期値式と編集初期値式は[商品名]に入力カーソルが出現した時に初めて動作するようです。
従って[商品名]のタブストップがOFFの場合には[商品名]を素通りしてしまうので値が入らないのだと思います。

いろいろ試してみましたが、#表引き( )関数を使うのは無理のようなので、#表引き( )関数と等価なプログラムを
[商品番号]の[ソース値更新]イベントで実行したらうまくいきました。

以下を参考にして下さい。&idは[商品番号]と同じデータ型にしてください。
例では[商品番号]が文字列型と想定しています。
----------------------------------------
名札 メイン
変数宣言 局所,文字列{&id,&syouhinmei}


手続き定義開始 t商品番号::ソース値更新()
*以下は#表引き([商品番号],=,"表引きする.tbl",
*               [商品番号],[商品名])と等価な処理
 &id=[商品番号]
 表 "表引きする.tbl"
 検索 [商品番号]=&id
 if (.not #eof)
  &syouhinmei=[商品名]
 else
  &syouhinmei=#未定義
 end
 中止 表 編集対象表
 条件 (&syouhinmei<>#未定義) 項目値代入 [商品名]=&syouhinmei
手続き定義終了
----------------------------------------

10889 Re:フォーム上の項目(値)変更 桐坊主 2001/04/15-16:14
記事番号10882へのコメント
ONnojiさん。ありがとうございます

>表(.tbl)の行挿入初期値式と編集初期値式は[商品名]に入力カーソルが
>出現した時に初めて動作するようです。
>従って[商品名]のタブストップがOFFの場合には
>[商品名]を素通りしてしまうので値が入らないのだと思います。

>いろいろ試してみましたが、#表引き( )関数を使うのは無理のようなので、
>#表引き( )関数と等価なプログラムを
>[商品番号]の[ソース値更新]イベントで実行したらうまくいきました。

桐の仕様だったら無理ですね
コマンドの一覧を見ると一括やイベントで使用できるかそうでないか一目でわかりますが、
関数の一覧にもイベントで使用できるかどうかの表示があればいいと思いました。

お答えの通り、イベントは「ソース値更新」で、項目値代入を利用して作成してみます。
どうもありがとうございました

戻る