過去の桐井戸端BBS (桐ver.8)
13438 イベントとコマンドボタンのグループ追加について 大洋 2001/10/11-10:33
いつも参考にさせていただいています。
V5からV8sp6への移行を模索中です。

最近イベントを勉強し始めました。
伝票形式フォームで伝票発行を考えています。
グループ追加開始イベントで伝票bニ日付をグーループ値代入しコマンドボタンでグループ追加をしています。
伝票入力終了後、明細部の枝番と伝票枚数を計算させて、
伝票b書き換えたいのですが、イベントのグループ追加終了では
明細部はまだ入力されていないようだし、行挿入は1行ごとの処理になるようだし
よい方法が見つかりません。
やはり一括に戻るしかないのでしょうか。
コマンドボタンのグループ追加は明細部へそのまま移ってくれるので、
なんとかこれを使いたいと思うのですが。

伝票入力後の処理をどこですればいいのか、教えて下さい。

13446 Re:イベントとコマンドボタンのグループ追加について アックン 2001/10/12-12:28
記事番号13438へのコメント
大洋さん、こんにちは。
どうも質問内容をはっきりつかめないので、はずしてるかもしれませんけど。(^^;

>伝票入力後の処理をどこですればいいのか、教えて下さい。

明細部をすべて入力後にグループ項目[伝票No.]の値を書き換えたいということでしたら、こんな感じでどうでしょうか。

コマンドボタン(機能名1がグループ追加)をクリック、明細部に1行以上入力、
その間にコマンドボタンを(機能名1がグループ値訂正)に変更、
明細部の入力を終えた時点でコマンドボタンをクリック、
グループオブジェクト(グループ_伝票No)にフォーカス設定、
グループ項目[伝票No.]の値を変更


「明細部の枝番と伝票枚数を計算させて」という部分については、
グループ選択のままで計算するのか、グループ選択解除してから計算するのか不明なので、
ここでは変数値をグループ値代入してます。

最初に、コマンドボタン(コマンドボタン_1)の機能名1を グループ追加 としておいてください。
機能パラメータはありません。


proc フォーム::グループ追加開始()
 グループ値代入 [伝票No.]=#str(#set(分,&分+1)),[年]=&年,[月]=&月,[日]=&日
end

proc フォーム::グループ追加終了(長整数 &モード)
 object @コマンドボタン_1{ 機能名1="グループ値訂正" , 標題="グループ値訂正" }
 method @グループ_伝票No.フォーカス設定()
end

proc フォーム::グループ値訂正開始()
 グループ値代入 [伝票No.] = #str(#set(分,&分+1))
end

proc フォーム::グループ値訂正終了(長整数 &モード)
 object @コマンドボタン_1{ 機能名1="グループ追加" , 標題="グループ追加" }
end


アックン(=^・^=)
13453 Re:イベントとコマンドボタンのグループ追加について 大洋 2001/10/12-14:24
記事番号13446へのコメント
アックンさん、丁寧なご回答ありがとうございます。
ただ私の質問がへただったようです。

伝票bヘ伝票管理.tblで管理しています。
伝票発行時に
手続き定義開始 フォーム::グループ追加開始()
表 "伝票管理.tbl"
変数宣言 数値{&納品伝票番号,&伝票管理=#is表}
&納品伝票番号=[納品伝票]+1

グループ値代入 [年]=&元号年,[月]=&月,[日]=&日,[伝票]=&納品伝票番号

手続き定義終了
としてコマンドボタンでグループ追加をおこないます。
伝票発行が確定した時点で&納品伝票番号を伝票管理.tblの[納品伝票]と書き変えたいのです。

連番と枚数についてはV5では伝票入力後以下のように一括で処理していました。

置換 [枝番]=#連番
項目集計 [枝番]
条件 (&最大値<7)置換 [枚数]="1"
条件 (&最大値>=7)置換 [枚数]=""+#全角(#文字列(#切り上げ([枝番]/6,0)))

編集表 &伝票管理
行訂正 [納品伝票]=&納品伝票番号

[枚数]は明細行数6行の伝票枚数です。
一枚で収まるときはいれない。2枚以上になるとき伝票枚数を印刷するためのものです。

作業は一括から始まります。
一括でフォームを呼び出し、明細削除や明細追加は一括に戻ります。
コマンドボタンのグループ追加が楽なのでなんとかこれを使えないかと考えてます。
伝票発行が確定した時点での作業はどこでできるのかという質問です。

13455 Re:イベントとコマンドボタンのグループ追加について アックン 2001/10/12-17:30
記事番号13453へのコメント
大洋さん>
なるほど。やっぱりはずしてましたね。(^^;
複雑そうなので、伝票No.に限ってお話しすれば、こんなふうにもできますが、どうでしょう。
(”No.”という文字に1文字だけの機種依存文字をお使いでしたので、
 ここでは3文字の半角にしてます。)

名札 メイン
  変数宣言 数値{&納品伝票番号,&伝票管理}

proc フォーム::フォーム開始(長整数 &表番号)
  表 "伝票管理.tbl"
  &伝票管理=#is表
  &納品伝票番号=[納品伝票No.]
end

proc フォーム::グループ追加開始()
  グループ値代入 [伝票No.]=&納品伝票番号+1 ,・・
end

proc フォーム::グループ追加終了(長整数 &モード)
  編集表 &伝票管理
  行訂正 [納品伝票No.]=#set(納品伝票番号,&納品伝票番号+1)
end

ちなみにグループ追加終了イベントは、グループ追加をキャンセルしても実行しますから、
&納品伝票番号がひとつ繰り上がりますけど。(^^;(それじゃだめ?)


アックン(=^・^=)
13456 Re:イベントとコマンドボタンのグループ追加について アックン 2001/10/12-18:17
記事番号13455へのコメント
自己レスですけど。

>ちなみにグループ追加終了イベントは、グループ追加をキャンセルしても実行しますから、
>&納品伝票番号がひとつ繰り上がりますけど。(^^;(それじゃだめ?)

こうすればいいのでしたね。

  cond( &モード ) 行訂正 ・・

アックン(=^・^=)

13514 Re:イベントとコマンドボタンのグループ追加について 大洋 2001/10/16-09:27
記事番号13456へのコメント
お答えを見てなるほどな、と思いました。
関数やコマンドをもっと覚えなければダメですね。
答えてもらったことを参考に頑張ってみます。

戻る