過去の桐井戸端BBS (桐ver.8) |
2825 | イベントで印刷枚数の指定 | Rockey | 1999/10/3-16:14 |
いつも勉強させていただいています。 さて、V8イべントで質問です。 画面伝票フォームで各行の項目の[枚数]に入力して、 入力された枚数分を印刷する処理を考えています。 コマンドボタンが押されたら次の処理を行うように しました。 *---------------------------------------------* 1 &I=1 2 ジャンプ 行番号=&I 3 繰り返し (.NOT #EOF) 4 絞り込み 行数 = 1 5 &枚数 = [枚数] 6 繰り返し &Y=1,&枚数,1 7 書き出し 表,&PTBL,追加 8 繰り返し終了 9 絞り込み解除 1 10 &I=&I+1 11 ジャンプ 行番号=&I 12 繰り返し終了 13 表 &PTBL,表番号=5,モード=参照 14 レポート印刷 "****.RPT" 15 終了 表 5 *-----------------------------------------------* 上記の記述はKEVファイルの手続き定義開始から 手続き定義終了までの記述の一部ですが、 トレース出力ウインドウで確認すると 5行目の代入コマンドが実行されていないらしく 変数 &枚数には全部 0 が入っているようです。 ですから書き出ししません。 以前、一括処理で同じような処理を行ったときは 動いたのですが、イベントでは何か制約があるのでしょうか? マニュアルを見る限りではイベントの表示状態では 使用可となっていますが......... イベントではデバッグができないので、表の状態が どうなっているのか確認できませんね よろしくお願いします。 | |||
2834 | Re: | 悲しげ | 1999/10/5-16:30 |
記事番号2825へのコメント どもっ、Rockeyさん、 私も似たようなことをやったことがあります。 結局はふたつのwfmとkevを使いました。以下にkevの方だけ 一部書き換えてみましたので、参考になれば幸いです。 (オブジェクト名「b*」はボタンです) ----------- 書き出し前の方のkev ---------------- 名札 メイン 変数宣言 整数{&I,&Y,&枚数},文字列{&PTBL="書出後.TBL"} /*ふたつのフォームとも多重化を許可してある、よく判らんが*/ * 手続き定義開始 b実行::マウス左ダウン(長整数 &マウス位置[2],長整数 &明 細番号,長整数 &フラグ,参照 長整数 &処理中止) 編集表 &PTBL 行削除 *,圧縮 *終了 表 &PTBL /* 終了できない? */ 編集表 "書出前.TBL" &I=1 ジャンプ 行番号=&I 繰り返し (.NOT #EOF) 絞り込み 行数 = 1 &枚数 = [枚数] 繰り返し &Y=1,&枚数,1 *書き出し 表,&PTBL,追加 /*表を終了できなかったので書き出しではなく読み込みにした*/ 編集表 &PTBL ジャンプ 行番号=終端 読み込み 表,"書出前.TBL",編集表=する,終了状態=&実行リターン,* 繰り返し終了 編集表 "書出前.TBL" 絞り込み解除 1 &I=&I+1 ジャンプ 行番号=&I 繰り返し終了 *表 &PTBL,表番号=5,モード=参照 *レポート印刷 "****.RPT" *終了 表 5 ウィンドウ位置 最小化,&hwindow フォーム呼出し "書出後.wfm",許可作業=なし method @b終了.実行() 手続き定義終了 手続き定義開始 フォーム::フォーム開始(長整数 &表番号) 表 &PTBL 手続き定義終了 ----------- 書き出し後の方のkev ---------------- 名札 メイン * 手続き定義開始 b印刷::マウス左ダウン(長整数 &マウス位置[2],長整数 &明 細番号,長整数 &フラグ,参照 長整数 &処理中止) 確認 "用紙をセットして下さい" 確認 "ありゃ、rptが無かったね(^^;)" method @b終了.実行() 手続き定義終了 | |||
2835 | Re: | Rockey | 1999/10/5-18:35 |
記事番号2834へのコメント 悲しげさん、早速のコメントありがとうございます。 でも、半日悩んでいましたらなぜかできてしまったのです。 どこを直したかも、さだかではありません。 KEVファイルの内容は次のとおりです。 *--------------------------------* 1 手続き定義開始 印刷処理 () 2 表 &PTBL,表番号=5,モード=専有 3 行削除 *,圧縮 4 終了 表 5 5 &I=1 6 ジャンプ 行番号=&I 7 繰り返し (.NOT #EOF) 8 絞り込み 行数 = 1 9 &枚数 = [枚数] 10 繰り返し &Y=1,&枚数,1 11 書き出し 表,&PTBL,追加 12 繰り返し終了 13 絞り込み解除 1 14 &I=&I+1 15 ジャンプ 行番号=&I 16 繰り返し終了 17 ジャンプ 行番号=先頭行 18 表 &PTBL,表番号=5,モード=参照 19 レポート印刷 "****.RPT" 20 終了 表 5 21 手続き定義終了 *--------------------------------* 画面伝票形式のフォームを開いておき、[枚数]に 任意の数字を入力。 印刷ボタンを押したら、先頭行から枚数分を 印刷する仕組みです。 とりあえず動いたのでご報告します。 |