過去の桐井戸端BBS (桐ver.7)
758 フォームでの変数を入力する一括処理 ikjun 1998/12/8-14:13
皆さん、こんにちは!いつもお世話になってます。

 なんか初心者的な質問で、質問するのが恥ずかしいのですが、やはり行き詰まってしまったのでよろしくお願いします。
 桐V7で少し本格開発する場合に問題になりそうなところを、実験的に開発しているのですが、画面伝票で行き詰まっています。
 いまおこないたいのは、販売伝票入力で得意先や日付の入力です。
 以前に投稿したように、基本的にはグループ追加やグループ訂正でおこなうのですが、それだけでは新規入力の時に思ったようになりません。
 そこで、なんらかの形で変数に得意先や日付のデータを入力して、その変数の値でグループ追加すれば希望の通りにいくのではないかと考えました。
 さっそく、ヘッダーにテキストオブジェクトをつくり、一括処理で入力できるようにしようとしたのですが、ここで行き詰まりました。
 あれ?変数のテキストオブジェクトに入力するコマンドってなんだろう。
行訂正でもないし、グループ訂正でもない。フォーム形式編集というのもちょっと違うし、キー入力はちょっとデザイン的に良くない。
 どうも適当なものがないと思うのですが、こんな簡単なことができないというのも信じられないような気がします。
 なんだか、オオボケかましてそうな気がしますが、どなたか助けていただけませんでしょうか?
759 Re: 前田 1998/12/8-16:23
事番号758へのコメント
> あれ?変数のテキストオブジェクトに入力するコマンドってなんだろ
>う。行訂正でもないし、グループ訂正でもない。フォーム形式編集とい
>うのもちょっと違うし、キー入力はちょっとデザイン的に良くない。
>
今日は、お世話になります。
ちょうど私も、フォーム作成中でしたのでご意見賛同します。
私の場合は、「売上入力フォームで日付を入力」しボタンで「仕入入力」フォームを呼び出し、
編集挿入初期値に「#日時値生成( #YEAR( #年月日 ) , #MON( #年月日) , #DAY( #年月日))」を設定しました。
只この場合ですと、本日以外は、やはりグループ訂正を行わなくてはなりません。
*ボタンの機能にコピー、張り付けなど試しましたが思うように行きませんでした。
761 Re: ikjun 1998/12/8-18:24
記事番号759へのコメント
>ちょうど私も、フォーム作成中でしたのでご意見賛同します。

 ということは、やはりそういうコマンドはないのですね。なんてこった!!となげいていてもしょうがないので、別の方法を考えてみました。

 変数が無理なら、データにしてしまえばいいと思いつき、ダミーの項目を作り、そこに得意先コードと日付をいれ、入力した値を変数に代入する一括処理を作りました。

 まずは一安心と思ったのですが、そこで新たな問題があることに気がつきました。

 なにかというと、一括処理のなかからすべてやれば問題ないのでしょうが、直接入力してしまうことが考えられます。
そうすると変数には代入されず、結果としてグループ値訂正もおこなわれません。

 最悪、表示されたデータとその後処理されるデータとが、違ってくる可能性があります。

 良く知っている人間だったらそんなことはしないだろうから、背景を赤にして注意書きでもいれとくか?
でもいい方法とは思えないなあ?

 これをなんとかする方法はありませんか?
 一括処理からだと入力できるけれど、直接は入力できないようにできればいいだけなんですが?

>私の場合は、「売上入力フォームで日付を入力」しボタンで「仕入入力」フォームを呼
>び出し、編集挿入初期値に「#日時値生成( #YEAR( #年月日 ) , #MON( #年月日
>) , #DAY( #年月日))」を設定しました。

 正直、どういう処理なのかいまいちわかりかねるのですが、売上と仕入が連動しているということなのでしょうか?

>只この場合ですと、本日以外は、やはりグループ訂正を行わなくてはなりません。
>*ボタンの機能にコピー、張り付けなど試しましたが思うように行きませんでした。

 はっきりは、わかりかねますが、前田さんの場合も、ダミーの項目を設けることで解決できませんか?

 1.入力するテーブルにダミーの項目を設ける。
 2.編集挿入初期値に「#日時値生成( #YEAR( #年月日 ) , #MON( #年月日>) ,#DAY( #年月日))」を設定する。
 3.フォームにダミーの値を入力するテキストオブジェクトを設置する。
 3.つぎのような一括処理を組む。

   変数宣言 固有,日時{&Hiduke}
    行訂正 フォーム,[T_日付]
    代入 &Hiduke=[T_日付]
    置換 [T_日付]=&Hiduke
    グループ値訂正 {[日付]=&Hiduke}
([T_日付]はダミー、[日付]が実際に処理するデータ)

 こんな感じでは参考になりませんでしょうか?
765 Re: 悲しげ 1998/12/8-23:45
記事番号761へのコメント
どもっ、ikjunさん、

> なにかというと、一括処理のなかからすべてやれば問題ないのでしょうが、直
>接入力してしまうことが考えられます。そうすると変数には代入されず、結果と
>してグループ値訂正もおこなわれません。

グループ項目の訂正は全く試していないので、外している可能性の方が高いですが、今オンラインで思い付くままに書いてみます。
フォームの定義で当該項目を「フォーカス禁止」に設定しておきます。
こうすると会話処理では訂正不可となります。
一括処理の「オブジェクト操作」コマンドでは、フォーカスの設定を一時的に変更できることになっています
(そのうち試そうと思いつつ、まだ試していませんが)。
一括処理で当該項目に値を入力する直前で「フォーカス設定」を「自動」だったか(?)に変更し、入力終了直後、再び設定を「禁止」に戻しておくとか。(^^;)
767 Re: ikjun 1998/12/9-01:47
記事番号765へのコメント
悲しげさんこんばんは!

 返事をもらう前にいろいろと頭を絞り、とりあえずちょっと変な方法で解決しました。

 ちょっと説明しづらいのですが、簡単にいうと入力のためだけのダミーのテキストオブジェクトの背景を透明にしてしまい、ほんとのグループオブジェクトの上に重ねます。
これだけだと、ダミーとグループオブジェクトの値が違うときに、異なる値が重なってわからなくなりますので、ダミーの入力がある時だけ編集属性式で背景と文字が同じ色になるようにします。

 これで、一応解決したのですが、かなり変則的な方法なので、どうかなとも思ってます。
とりあえず次に移ってますので、後で悲しげさんの方法を試してみようかと思ってます。

 一応、伝票入力での新規入力の部分が完成しました。新規入力と表示されているコマンドボタンを押すと、日付入力から得意先、商品、数量の入力がキーボードだけで出来ます。
ちょっとまだ問題点も多いのですが、あとはイベントハンドラーが実装されるまでの辛抱かと思ってます。

 さて、次は既存伝票の検索と編集をやらなくちゃ!

 また、問題点が発生すると思いますので、そのときはよろしくお願いします。

戻る