□投稿者/ 今村 誠 -(2010/01/29(Fri) 18:04:34)
| トンタさんこんにちはテストしていませんが 下記のように記述したらいかがでしょうか 字下げをしてどことどこが対応しているか簡単に 見比べられるようにした方が良いです。 表番号の指定はしない方が良いと思います 動かなかったらエラーの内容をコメントして下さい。
手続き実行 送り状個数印刷("印刷.tbl","SATO SR412","印刷.rpt") proc 送り状個数印刷(str &Stbl,str &Sprita,Str &Srpt) var Long {&L状態,&L頁,&OK} /* ここで宣言するとこの手続き実行後自動削除 */ if (#FSIZE(#一括パス名+&Stbl)<1) 確認 "表" + &Stbl + "はありません" else if (#FSIZE(#一括パス名+&Srpt)<1) 確認 "レポートファイル" + &Srpt + "はありません" else プリンタ &Sprita,終了状態 = &OK if ( &L状態 <> 1 ) call errmsg(&L状態) else 表 &Stbl,終了状態 = &L状態 /* ←ここでは表番号の指定をしない */ if ( &L状態 <> 1 ) call errmsg(&L状態) else while (.not #eof) if ([個数]>1) for &L頁=1,[個数] レポート印刷 &Srpt,部数=1 end end /* if ([個数])終わり */ ジャンプ 行番号 = 次行 end /* whileの終わり */ end /* 表を開くの結果の終わり */ end /* プリンタの設定の終わり */ end /* レポートのファイル存在の終わり */ end /* 表のファイル存在の終わり */ end /* 手続き送り状印刷の終わり */
手続き実行 送り状個数印刷("印刷.tbl","SATO SR412","印刷.rpt") proc 送り状個数印刷(str &Stbl,str &Sprita,Str &Srpt) var Long {&L状態,&i,&OK} /* ここで宣言するとこの手続き実行後自動削除 */ プリンタ &Sprita,終了状態 = &OK if ( &OK = 0 ) 確認 "プリンタ名 " + &Sprita + " は存在しません" return end if (#FSIZE(#一括パス名+&Stbl)<1) 確認 "表" + &Stbl + "はありません" return end if (#FSIZE(#一括パス名+&Srpt)<1) 確認 "レポートファイル" + &Srpt + "はありません" return end 表 &Stbl,終了状態 = &L状態 /* ←ここでは表番号の指定をしない */ if ( &L状態 <> 1 ) call errmsg(&L状態) else while (.not #eof) if ([個数]>1) レポート印刷 &Srpt,部数=[個数] end /* if ([個数])終わり */ ジャンプ 行番号 = 次行 end end end proc errmsg(Long &L表) var Str{&Smsg[3]} &Smsg[1] = "共有違反以外のエラーが発生したため、表を開くことができなかった" &Smsg[2] = "共有違反で表を開くことができない" &Smsg[3] = "他の利用者が置換や併合などの処理を実行中" &L表 = #abs(&L表)+1 確認 &Smsg[&L表] end
|
|