過去の桐井戸端BBS (桐ver.8)
4330 メインandサブフォーム間でのデータ更新 脱オフコン 2000/1/27-13:58
桐ユーザーに成り立ての初心者で初歩的な質問で恐縮ですが
下記の質問に対して教えて頂ければ嬉しいです

メインandサブフォームを使用してのデータ入力でサブフォームの
明細合計(例.仕入伝票の明細合計金額、メイン部の伝票番号と
サブフォームの伝票番号はリレーションされてます)
をメインフォームに表示及びメインフォームの基テーブルに更新は
フォームの中で可能ですか?
可能な場合はどこでするのですか?


桐ver.8です
4331 サブフォームの合計値をメインフォームに書き込む 佐田 守弘 2000/1/27-14:49
記事番号4330へのコメント
脱オフコンさん

やりたいことの確認ですが、現在私のHPに掲載している「桐活用ガイドブック」の
サンプルデータと同じものを想定して宜しいですね。つまり
メインフォームの表:売上1件毎のデータを記録する。
サブフォームの表:全ての売上について、商品単位の明細を記録する。
そして、売上1件ごとにサブフォームの表の明細を合計して、メインフォームの表に、
その合計額を書き込む。
と解釈させて頂きました。

サブフォームに表示される売上明細の合計は、サブフォーム上で集計関数によって
行われ、サブフォームのヘッダ部ないしフッタ部に設けた集計オブジェクトでの未表示されます。
ですから、この値を直ちにメインフォームに表示したり、メインフォームの表の項目値に
自動的に書き込む機能は有りません。

●対応策1
予めあるいは途中でサブフォームの表の行集計を行ない、この結果をメインフォームに
置換併合する方法が考えられます。もちろんこの処理はイベントの中で行う事になるでしょう。

●対応策2
もう1つ考えられる方法として、#合計([金額])の値をそのまま表示するのではなく、
一度変数に受けておきます。つまり、次の様な計算式を集計オブジェクトに設定します。
#set(合計,#合計([金額]))
この計算式により、合計値が組込変数「&合計」に代入され、その値が表示されます。
そこで、サブフォームのソース値更新イベントに対して、
項目値代入 [合計]=&合計
のコマンドを実行させます。
実際に動作確認はしていませんが、おおむねこの様な形でできるのではないかと思います。

佐田守弘(KS-00119)

4332 Re:サブフォームの合計値をメインフォームに書き込む 脱オフコン 2000/1/27-17:57
記事番号4331へのコメント
佐田さんへ

●対応策2で動作確認しました。
メインホームにテキストオブジェクトを作りソース値に&合計値と書いて
表示させたのですが、このやり方でよかったですか?
しかし、伝票マスタ.tblの項目[合計](私が作った項目です)に反映されません。
何がいけないのでしょうか?
教えて下さい。

4333 Re:サブフォームの合計値をメインフォームに書き込む 佐田 守弘 2000/1/27-17:59
記事番号4332へのコメント
脱オフコンさん
>メインホームにテキストオブジェクトを作りソース値に&合計値と書いて
>表示させたのですが、このやり方でよかったですか?
表示させただけでは、単に表示されるだけで、表の項目値には反映されません。
ですから、前回書きました通り、項目値代入コマンドを使って、項目値に反映させる必要が有ります。

佐田守弘(KS-00119)

4334 Re:サブフォームの合計値をメインフォームに書き込む 脱オフコン 2000/1/27-18:31
記事番号4333へのコメント
何度もすみません
> >メインホームにテキストオブジェクトを作りソース値に&合計値と書いて
> >表示させたのですが、このやり方でよかったですか?
>表示させただけでは、単に表示されるだけで、表の項目値には反映されません。
>ですから、前回書きました通り、項目値代入コマンドを使って、項目値に反映させる必要が有ります。

項目代入コマンドは、どこのオブジェクトのイベントに書けばよろしですか?
ちなみに、サブフォームの集計オブジェクトのソース値更新イベントに書きましたが、ダメでした。

4335 Re:サブフォームの合計値をメインフォームに書き込む 佐田 守弘 2000/1/27-22:13
記事番号4334へのコメント
脱オフコンさん
サブフォームの集計オブジェクトのソース値更新、あるいは[金額]のオブジェクトのソース値更新イベントに
書くので良いと思います。どちらが良いかは試してみて下さい。
そして、メインフォームの項目値に値を入力できない理由ですが、サブフォームの表が編集対象表になっている
ためだと思います。

編集表 <メインフォームの表名、ないしは表番号>
コマンドを実行して、メインフォームの表に編集対象表を移してから、項目値代入コマンドを実行して下さい。

佐田守弘(KS-00119)

4338 Re:サブフォームの合計値をメインフォームに書き込む 脱オフコン 2000/1/28-12:00
記事番号4335へのコメント
佐田さん
前回のご指摘どうりにメインフォームの項目値に代入させるために
ソース値更新(イベント処理)で編集表コマンドを記述して次に
項目値代入コマンドを記述し、動作確認を行いましたが、
結果はメインフォームのテーブルには更新ができませんでした。
何が原因として考えられますか?

何度も申し訳ありません。

4371 Re:サブフォームの合計値をメインフォームに書き込む 佐田 守弘 2000/1/30-10:45
記事番号4338へのコメント
脱オフコンさん
内容は、私がHPに掲載している「桐活用ガイドブック」の例題とほぼ同じだと
思うので、これを使って確認テストをしてみます。
もう少しお待ち下さい。

佐田守弘(KS-00119)

戻る