| 2009/06/23(Tue) 18:24:42 編集(投稿者)
印刷部分のエラー処理を外すと以下のような感じで、 直接プリンタに印刷します。 プレビューをするにすればプレビューはしますが、印刷開始位置 の表示は常に1枚目からとなります。 印刷は実施していませんが、開始位置を指定すればその位置から 印刷することを期待しています。 印刷失敗が絶対にないのであれば、いちいち確認しないで、印刷 済みをNo.tblに書き込めばいいと思います。
絞り込んだままであれば、確認画面で「2」や「1」や「ESC」で 中止してもう一度印刷すれば同じ番号を再度印刷できます。
proc タック() var Int{ &Iend , &INo , &Igo = 1 , &tmp現在表 = #IS表 \ , &I状態 , &I選択件数} var Long{ &Lcount , &LtuckNo , &Lend , &L選択番号 }\ ,Str{ &tmp明細[4],&S選択文字,&tmpfile名="No.TBL" \ , &S得意先名 = [得意先名] , &Srpt = "sat.rpt"\ , &Sヘッダ = "印刷ラベルの結果で処理を選んで下さい" \ , &Sフッタ = "伝票番号の削除中止は Esc を押します。" , &S比較式 } &tmp明細[1] = "印刷エラーが発生したので番号は元のま"\ ,&tmp明細[2] = "まにしてもう一度印刷をやり直します。"\ ,&tmp明細[3] = "正常な印刷が確認出来ましたので使用し"\ ,&tmp明細[4] = "た伝票番号を削除し印刷日を記載します" &I選択件数 = &選択件数 if (#総件数>0) if (#絞り込み状態>0) 表 &tmpfile名 , リトライ= しない , 終了状態 = &Lend 絞り込み [印刷日]="" &Lcount=[No] 終了 表 編集対象表 &秒 = &Lcount-1 , &LtuckNo = &I選択件数 + &Lcount 置換 終了状態=&Iend, [タック枚数] = #N+&秒 併合 &tmpfile名 , 置換 , 編集表 = する , 終了状態 = &Lcount , \ {[タック枚数]照合[No],[伝票番号]複写[伝票番号] } キー入力 (15,10) , プロンプト = "タックシールの開始位置指定?枚目から印刷"\ , モード=無変換,上書き=する , 初期値 = 1, 終了状態= &I状態 , &Igo レポート印刷 &Srpt , 部数 = 1 , 罫線印字 = する, カラー印刷 = する \ , 編集表 = する , 会話 = しない , プレビュー=しない ,ソート=しない\ , タイル印刷開始位置 = #nvl(&Igo,1) , 終了状態 = &I状態 call メニュー選択(&Sヘッダ,&Sフッタ,3,0,&tmp明細,&S選択文字,&L選択番号) if (&L選択番号 > 2 ) 表 &tmpfile名 , リトライ= しない , 終了状態 = &Lend 絞り込み [No]{(( [No] < &LtuckNo ) * ( [印刷日] = "" ))>0} 置換 終了状態 = &Iend , [印刷日]=#日時値 終了 表 編集対象表 else if (&L選択番号 < 3 ) 確認 "伝票番号は更新しません。もう一度印刷ボタンを押して下さい。" end else 確認 "データが絞り込まれていません。" end else 確認 "Bデータが一件もありません" end 編集表 &tmp現在表 end
|