| 2017/05/16(Tue) 10:40:29 編集(投稿者) 2017/05/16(Tue) 10:23:05 編集(投稿者) 2017/05/16(Tue) 10:22:28 編集(投稿者)
> 私は一括処理でアプリケーションを作りませんので、サンプルの 一括処理.cmd に関しては適切な助言が出来ません。 > あしからずご了承ください。
一応試してみました。もしも、参考になればご覧ください。
なお、フォームのオブジェクト名は
o計算 → cmd計算
o終了 → cmd終了
に変更してあります。
また、一般手続き:sb計算処理( ) の
終了 表 2
は不用意なクローズなのでコメントにしました。 このように不用意にクローズしてしまうと、また[ウィンドウ作成]から始めなければなりません。
クローズしなければ、[ウィンドウ会話]を何度でもコールできます。
一括処理でも不用意にファイルをクローズしないように気をつけてください。
<参考例>
変数宣言 固有,整数 { &gHdl } 変数宣言 固有,文字列{ &gBtn }
** 表 をオープン 表 "成績.tbl", 表番号 = 2 /* , 使用フォーム = "成績入力.wfm" */
** フォーム をオープン 使用フォーム "成績入力.wfm"
** フォームのウィンドウを生成し、ハンドル値:&gHdl を取得 ウィンドウ作成 フォーム, ハンドル = &gHdl
繰り返し
** ハンドル値:&gHdl を指定してフォームウィンドウで会話操作 ウィンドウ会話 &gHdl, ボタン = &gBtn
if ( &gBtn="cmd計算" ) 手続き実行 sb初期処理( ) 手続き実行 sb計算処理( ) 手続き実行 sb終了処理( ) end
if ( &gBtn = "cmd終了" ) /* 終了ボタンが押されたら一括処理終了 */ 繰り返し中止 end 繰り返し終了
** ハンドル値:&gHdl を指定してフォームウィンドウを閉じる ウィンドウ終了 &gHdl
** 表 をクローズ 終了 表 2
終了 /* end of 一括処理 */
**以下はサブルーチン
手続き定義開始 sb初期処理( ) 変数宣言 自動,文字列{ &icon, &title = "sb初期処理( )", &msg }
**メッセージボックス "成績","処理開始",アイコン=!,ボタン指定=1
&msg = "処理開始" &icon = "i" 手続き実行 INFprcMsgPause( &icon, &title, &msg )
手続き定義終了
手続き定義開始 sb計算処理( ) 変数宣言 整数 {&合計,&平均,&点数}
**編集表 "成績" 編集表 2
解除 * ジャンプ 行番号 = 先頭 繰り返し ( .not #eof )
**繰り返し ** if ( #eof ) ** 繰り返し中止 ** end 行訂正 [合計] = [国語] + [数学] + [英語] + [理科] + [社会] 行訂正 [平均] = ( [国語] + [数学] + [英語] + [理科] + [社会] ) / 5
ジャンプ 行番号 = 次行 繰り返し終了
**これはNG: 終了 表 2
手続き定義終了
手続き定義開始 sb終了処理( ) 変数宣言 自動,文字列{ &icon, &title = "sb終了処理( )", &msg }
**メッセージボックス "成績","計算終了",アイコン=!,ボタン指定=1
&msg = "計算終了" &icon = "i" 手続き実行 INFprcMsgPause( &icon, &title, &msg )
手続き定義終了
手続き定義開始 INFprcMsgPause( 文字列 &icon, 文字列 &title, 文字列 &msg ) 変数宣言 自動,文字列{ &iconList = "i,?,!,e" } /* 半角コンマで区切った文字列リスト */ 変数宣言 自動,文字列{ ¯o } 変数宣言 自動,整数 { &at }
&icon = #半角( #lc( #sstr( &icon, 1, 1 ) ) ) /* &icon はこの手続きの引数 */ &at = #対応番号( &iconList, &icon )
¯o = "メッセージボックス &title, &msg" + #cond( &at, ", アイコン = " + &icon ) + ", ボタン指定 = 1, 制御文字展開 = する" コマンド ¯o
手続き定義終了
|