過去の桐井戸端BBS (桐ver.9)
18562 フオームで商品コードを入力したらすぐに商品名と型番が自動表示されるようにしたい aki 2003/01/17-02:38
どうも、はじめまして。
かなり以前は職場でDOS版を利用して作業を行っていましたが
Win版になってから手が出せずにそのままになっていました。
しかし、すこしWin版に興味が出て体験版ですが
Ver9を利用して練習してみようと思いました。あまりにも感じが違い戸惑っています。

やりたいことは販売管理なのですがフォームを使って日付をグループ項目にして
商品コードを手動入力して商品名と型番は自動的に表示させ、
後は数量を手動で入力したい。
商品コードを入力した時点でうまく商品名と型番が表示させられません。
数量を入力した後ですとその時点で表示されます。
DOSの頃は一括処理で行追加を使い、商品コードを訂正にして商品名と型番を計算式で代入する形を取り、
数量の所では型番も表示の状態で入力できるようにしていました。
Winにはイベント機能もあるようなのでなにかいい方がないかと思うのですけど、
どうもうまくいきません。(DOSになかったイベントが良くわかっていないだけだと思いますが・・)
なにか処理のイメージでもアドバイスいただけませんでしょうか?
18589 Re:フオームでの自動表示 島尾 2003/01/18-11:31
記事番号18562へのコメント
メソッド呼び出し @フォーム.更新モード設定(0)   更新モードOFF
メソッド呼び出し @フォーム.更新モード設定(2)   更新モードON

この辺をつかってみたらどうでしょうか?
商品コードを入力後、イベントで更新モードをOFF→ONすれば
内容更新されると思います。
18600 Re:フォームでの自動表示 aki 2003/01/19-02:42
記事番号18589へのコメント
>メソッド呼び出し @フォーム.更新モード設定(0)   更新モードOFF
>メソッド呼び出し @フォーム.更新モード設定(2)   更新モードON
>
>この辺をつかってみたらどうでしょうか?
>商品コードを入力後、イベントで更新モードをOFF→ONすれば
>内容更新されると思います。

島尾さん、ありがとうございます。
他の方にもアドバイスされていてこれなら簡単でいいかもと思ってやってみたんですけど
表示モードへの以降が禁止されているイベントの処理中ですとエラーが出てしまったのです。
メソッドについて他の質問も参考にさせていただいたんですけどいまいち理解できないというのか・・。
難しいです。
もう少しメソッド調べてみます。
18634 Re:フォームでの自動表示 悲しげ 2003/01/20-01:14
記事番号18600へのコメント
どもっ、akiさん

>表示モードへの以降が禁止されているイベントの処理中ですとエラーが
>出てしまったのです。

と云うことは、使われたのは「入力後」イベントでしょうか?
これは、名前とはウラハラに実はまだ「入力中」なのです。(^^;)
次の段階、即ち入力が完了した後の「ソース値更新」イベント
で試してみてはいかがでしょう。

18644 Re:商品名の項目は計算項目ではありませんか? ONnoji 2003/01/20-13:43
記事番号18634へのコメント
>商品コードを手動入力して商品名と型番は自動的に表示させ、後は数量を手動で
>入力したい。商品コードを入力した時点でうまく商品名と型番が表示させられま
>せん。数量を入力した後ですとその時点で表示されます。

akiさん、こんにちは。

ご質問を拝読したところ・・・
>数量を入力した後ですとその時点で表示されます。
から推察して、表の( .tbl )の商品名の項目は計算項目ではありませんか?

商品コードの項目が計算項目ならば・・・

(1)
表( .tbl )を再定義して、[商品コード]項目に対して、
[項目属性]ウィンドウの[編集]タブの[入力後再計算]に
チェック印を付けるといいと思います。

(2)
フォーム( .wfm )を再定義して、商品コードのテキストオブジェクトに対して、
[オブジェクトの属性]ウィンドウの[編集]タブの[入力後、再計算]に
チェック印を付けるといいと思います。

(1)または(2)のどちらか一方を行えば十分です。

あくまでも、計算項目ならば・・・です。

タラレバの話ですいません。


18661 やっと解決!m(_ _)m aki 2003/01/20-23:09
記事番号18644へのコメント
悲しげさん、ONnojiさん、アドバイスいただいて感謝します。

で、皆様の暖かいアドバイスで解決いたしました。

ONnojiさん、ずばり、#表引きで計算式していました。
他にやり方がわからなかったんで。

>(1)または(2)のどちらか一方を行えば十分です。
>
>あくまでも、計算項目ならば・・・です。

(1)は、チェックできないようになっていましたので(2)を行いました。
やった!感動、でした。正直言って、これにはや、二週間悩んでました。
もう一度DOS版に戻ろうかと・・、うれしいです。

これからは、形になるようがんばって体験版ではなく製品が購入してもらえるようにして
島尾さん、悲しげさん、ONnojiさん方のようにアドバイスができるようにがんばって
勉強していきたいと思います。
大変、お世話になりました。どうもありがとうございます。

18665 「入力後再計算」の設定について 悲しげ 2003/01/21-00:51
記事番号18661へのコメント
どもっ、akiさん
既に解決したようですが、ちょっと誤解がありそうなので(^^;)
補足します。

「入力後再計算」とは、ある非計算項目に値を手動入力した直後に、
全ての計算項目に設定された項目計算式を、直ちに計算させて
その結果を表示させるような意味だと、私は理解しています。

その上で、

>(1)は、チェックできないようになっていましたので
>(2)を行いました。

(1)とは表定義の項目属性のことですね。
で、「チェックできないようになって」いたとは、計算項目についてだと思います。
この場合、おそらく[商品コード]が非計算項目で、[商品名]と[型番]は項目計算式として
「#表引き」関数を設定した計算項目だろうと思います。
で、計算項目は「入力後再計算」を設定しようにも、
そもそもその項目に「手動入力」されることが無いため設定できないようになっています。
設定する意味が無いから、と云うか「入力後再計算」の主体側ではなく客体である、
と云った方がいいでしょうか。
片や[商品コード]項目は、「商品コードを手動入力して」とあるように
非計算項目でしょうから、「入力後再計算」の設定は可能だったはずです。
但し、表の方で設定すべきだ、と主張している訳ではありません。(^^;)
方法(2)即ちフォームの方で設定してもかまいません(表で設定すれば
表とフォーム両方で適用となり、フォームだけで設定すればフォームから
入力した時だけ適用となります)。

しかしながら、上記の事情はフォームにも実は該当しますから、
テキストソースが計算項目であるオブジェクトについては、「入力後再計算」の設定ができるようになってはいるものの、
設定しても全く無意味だと思います。

具体的に項目名を挙げれば次のようになろうかと思います。
[商品コード] …表でもフォームでも設定可能 
[商品名]   …表では設定不能、フォームでは設定しても無意味
[型番]    …表では設定不能、フォームでは設定しても無意味

18698 重ね重ねありがとうございます aki 2003/01/23-20:28
記事番号18665へのコメント
悲しげさん、長文によるとってもすばらしい解説ありがとうございます。

>既に解決したようですが、ちょっと誤解がありそうなので(^^;)
>補足します。

まさに仰る通りです。チェックが付けられないからではないですもんね。
よく分かる説明どうもありがとうございました。

戻る