過去の桐井戸端BBS (桐ver.8)
5171 Ver8グループ追加について 火の玉小僧 2000/03/14-20:39
初めて投稿させて頂きます。
早速の質問で恐縮ですが..(^^;)
現在、Ver5からVer8へ移植中なのですが、あるカード型フォーム(A.WFM)に
[マスタNO]=001,[得意先名]="火の玉".........のオブジェクトにデータを入力し
「終了」コマンド牡丹を押すと伝票型フォーム(B.WFM)を開き、グループ項目に
(A.WFM)の値[マスタNO]=001,[得意先名]="火の玉"を複写し、行追加モードにし、
[品名].[数量]...等を入力したいのですが、どの様にイベントを定義すれば
良いのか解りません。(?_?)
何方か良いお知恵を拝借したいのですが、宜しくお願い致します。<(_ _)>

p.s
「メイン&サブフォーム」で、とも考えたのですが、「入力する項目が多い為、
Ver5の頃からの馴れ親しんだ画面の為に2つのフォームを使用したい。」っと
我がままで偉い人間が、OKを出してくれないので困っております。
何卒、宜しくお願い致します。<(_ _)>


5184 Re:Ver8グループ追加について 佐田 守弘 2000/03/15-01:26
記事番号5171へのコメント
火の玉小僧さん
最初に確認させて下さい。使用している表は、得意先毎の1件のデータを記録するマスタファイルと、
1件の明細を記録する明細マスタの2つに分けていますでしょうか。それとも1つの表でしょうか。
正規化された2つの表を使う場合であれば、メイン&サブフォームを使うのが常套手段です。
これによって、桐ver.5の画面伝票の様になります。
そうでなく、1つの表に全てのデータが入っている場合には、メイン&サブフォーム(でも構いませんが)ではなく、
伝票フォームでヘッダ部分にグループオブジェクトとテキストオブジェクトを設けたフォームを使います。
これはちょうど桐ver.5の画面伝票と同じだと思って下さい。
敢て、1つの表で2つのフォームを開く必要はないと思います。
行うのは構いませんが、桐ver.5の画面伝票とは別物になります。
もしどうしても行うならばの話ですが、
グループ項目値の入力後イベントに対して、フォーム呼出しを実行する事になりますが、
同じ表に対するフォームを呼び出すので、話がちょっとややこしくなります。
イベントの作り方は、私のHPに掲載してありますガイドブックを参考にして作って下さい。
イベントの記述そのものは、実際の表がないと作れません。

佐田守弘(KS-00119)
記述を素直に受け止めますと、桐ver.5の画面伝票を再現しようとして、画面伝票とは全く別のものを作ろうとしている様に
見えるのですが。
私の例題を参考にして1つ作ってみて、「これでどうでしょうか」と聞いてみてはいかがでしょうか。

5196 Re:Ver8グループ追加について 火の玉小僧 2000/03/15-13:18
記事番号5184へのコメント
>火の玉小僧さん
>最初に確認させて下さい。使用している表は、得意先毎の1件のデータを記録するマスタファイルと、1件の明細を記録する明細マスタの2つに分けていま
>すでしょうか。それとも1つの表でしょうか。

佐田先生、皆さんこんにちは。
先生さっそくのRes有難う御座います。説明不足だった様で申し訳ありません。<(_ _)>
桐5で下記の様な一括処理で、基本.frm(カード型帳票)で基本.tbl(顧客マスタ)を入力し
(F4[表示])キーで、グループ追加を行い行追加後、明細.frm(伝票型帳票)で明細マスタを登録しておりました。
基本.TBL 顧客マスタ [マスタID][顧客ID][顧客名]........
明細.TBL 明細マスタ [マスタID][顧客ID][品名][数量][単価]...
以下 桐5一括処理より一部転記

表 "基本.tbl",表番号=1
使用帳票 "基本.frm"
表 "明細.tbl",表番号=2
使用帳票 "明細.frm"
条件 (#帳票属性(2)=5) グループ指定 最終,終了=&end
.
.
名札 新規登録
*--------- 基本部入力 -----------------*
  編集表 1
   帳票表示
位置指定 行番号=最終
&登録数 = [マスタID]
位置指定 行番号=終端
行追加 [マスタID] = &登録数 + 1
行訂正 *


   条件 (&END=&F4) &登録数=[マスタID],&TMP0=[顧客ID]
行番号 &no0
条件 (&END = &ESC) 手続き終了
*--------- << 明細グループ追加 >> ---------*
   編集表 2
   帳票表示
   グループ追加 {[マスタID]=&登録数 ,[顧客ID]=&TMP0 <−−−ようはここです。
繰り返し
   手続き実行 明細追加
繰り返し
条件 (#EOF=0) 行退避
   &STR1=#対応文字列(&項目,&KNO)
 &コマンド=#CAT("行訂正 帳票,",&STR1,",終了=&END,枠組み表示=しない")
 コマンド &コマンド
.
.
繰り返し終了

これを桐8に置き換えるため基本.WFM(カード形式)に、フォーム終了イベント

手続き定義開始 フォーム::フォーム終了()
&登録数=[マスタID]
表 "明細M.TBL".....
ウィンドウ作成 "明細M.wfm"
グループ追加 [マスタID]=&登録数
行追加 [行]=1
手続き定義終了

と定義しフォームを閉じると、[KU1048:フォームに組み込まれている状態ではこのコマンドは使用できません]
グループ追加 [マスタID]=&登録数と、エラーになります。(?_?)
佐田先生のHPのサンプルCDアルバム.Wfmの様にメイン&サブフォームで作成すれば、行追加牡丹だけで
簡単に設定できる事は拝見させて戴きましたが、桐5の亡霊から抜け出すことが出来ずに悩んでおります。(-_-;)
長々と、意味の無い事を書いた様な気がしますがすみません。<(_ _)>


5198 Re:Ver8グループ追加について(お礼) 火の玉小僧 2000/03/15-17:04
記事番号5184へのコメント
>イベントの作り方は、私のHPに掲載してありますガイドブックを参考にして作って下さい。
イベントの記述そのものは、実際の表がないと作れません。
私が勘違いをしていた様です。<(_ _)>
佐田先生のHPのサンプルCDアルバム.Wfmを参考にさせて戴き、テスト的なカード型フォームを作成し、
編集対象表の許可作業を多重化にチェック
フォーム呼び出しイベントを設定したところ私が悩んでいた事が思い通りに出来る事が出来ました。\(;^◇^;)/
大変お騒がせを致しまして申し訳ございませんでした。<(_ _)>
「イベント」なるモノが少し見えて来たような気がします。
今後も頓珍漢な質問をするかと思いますが、宜しくお願い致します。<(_ _)> <(_ _)>

戻る