| 今村さん 早々のご回答ありがとう御座います。 一番最初に頂いたので試してみましたら、上手く行きました。 ただ、この後の処理を書くとエラーになってしましました。
現在は1個を先に出力して2個以上を最後に出力しております。 個数口は1/2・2/2のように印字しております。 ※「印刷.RPT」に#STR(&頁)+#COND([個数]>1,"/"+#STR([個数]))
色々、試してみます。ありがとう御座います。
**************************************************************** 絞り込み [個数]{=1} レポート印刷 "印刷1.rpt",開始ページ=1,終了ページ=0,編集表=する,部数=1,罫線印字=する,カラー印刷=しない,ソート=しない ************************************************************** 解除 1 **************************** 手続き実行 印刷() proc 印刷() 表 "印刷.tbl",表番号=1 /* 絞り込み [個数]{>1} if (#総件数>0) var Long {&総件数,&i,&OK} /* &総件数 = #総件数 /* for &i = 1, &総件数 ジャンプ 行番号 = &i 絞り込み 行数 = 1 if ([個数]) /* for &頁=1,[個数] プリンタ "SATO SR412",終了状態 = &OK レポート印刷 "印刷" end end /* if end end end ************************************************************ ・・・・・・・・・・以下全て、エラーになる・・・・・・・・・ 行削除 * 表整理 余白割合=0
■No5576に返信(今村 誠さんの記事) > トンタさんこんにちはテストしていませんが > 下記のように記述したらいかがでしょうか > 字下げをしてどことどこが対応しているか簡単に > 見比べられるようにした方が良いです。 > 表番号の指定はしない方が良いと思います > 動かなかったらエラーの内容をコメントして下さい。 > > 手続き実行 送り状個数印刷("印刷.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
|