| 2025/04/07(Mon) 12:50:34 編集(投稿者)
> p.s. > > 今回提示した内容は、私が何度も使用してきた方法です。 > ・・・・・・・・・・・・・・・・・・・・・・・・・ > > しかし、今回はその当時のアプリケーションが見つからなかったので、記憶を頼りに書いている次第です。(^^ok
ファイルが見つかりましたので、該当部分だけを抜粋します。
なお、細かい所は気にしないで、全体の流れだけを掴んでください。 ※「木を見て森を見ず」にならないように願います ・・・・・・・・・・ ・・・・・・・・・・・
なお、レポート印刷 &reportFileName, プレビュー = する, 終了状態 = &reportStatus
で使用しているレポートの画像を添付しますので参考にしてください。
: :
手続き実行 prcReportPreview( &reportFileNamePreview, &error )
if ( .not &error )
&msg = "伝票を印刷します" &msg = &msg + "\n" + #複写( " ", 60 ) &msg = &msg + "\nよろしいですか?" &msg = &msg + "\n\n[OK]で印刷実行 [キャンセル]で中止" &icon = "?" 手続き実行 INFprcMsgOKCancel( &icon, &title, &msg, &ans )
if ( &ans )
if ( .not &mSystemDataEditMode ) /* &mSystemDataEditMode : 0=インクリメント(新規) 1=何もしない(修正・削除) */
手続き実行 prcReportPrint( &reportFileNamePrint, &error ) else
手続き実行 prcReportPrint( &reportFileNameReprint, &error ) end
if ( .not &error )
手続き実行 prcDataFlush( &mSaveTableName, &mSystemDataEditMode, &mSystemDataDeleteMode ) end
else
**&msg = "キャンセルしました" **&icon = "i" **手続き実行 INFprcMsgPause( &icon, &title, &msg ) end end
: :
手続き定義開始 prcReportPreview( 文字列 &reportFileName, 参照 整数 &error ) 変数宣言 自動,文字列{ &icon, &title = "prcReportPreview( )", &msg } 変数宣言 自動,整数 { &reportStatus, &debug = 0 }
&error = 1
if ( #ファイルサイズ( &reportFileName ) > 0 )
レポート印刷 &reportFileName, プレビュー = する, 終了状態 = &reportStatus ** 戻り値 説明 ** 1 最後まで印刷した。 ** 0 エラーが発生したため、印刷できなかった。 ** -1 途中で印刷を中止した。
if ( &reportStatus = 1 )
&error = 0 else
&icon = "e" &msg = "伝票のプレビューに失敗しました" &msg = &msg + "\n" + #複写( "-", 40 ) 条件 ( &reportStatus = 0 ) &msg = &msg + "\n\nエラーが発生したため、印刷できませんでした" 条件 ( &reportStatus = -1 ) &msg = &msg + "\n\n途中で印刷を中止しました" &msg = &msg + "\n\nシステム管理者へ連絡してください" 手続き実行 INFprcMsgPause( &icon, &title, &msg ) end
else
&icon = "e" &msg = "レポートファイル( .rpt )が見つかりません" &msg = &msg + "\n" + #複写( "-", 40 ) &msg = &msg + "\n\n&reportFileName = " + #文字置換( &reportFileName, "\", "\\" ) &msg = &msg + "\n\nシステム管理者へ連絡してください" 手続き実行 INFprcMsgPause( &icon, &title, &msg ) end
手続き定義終了
p.s.
> なお、細かい所は気にしないで、全体の流れだけを掴んでください。 ※「木を見て森を見ず」にならないように願います > ・・・・・・・・・・ ・・・・・・・・・・・ > > なお、レポート印刷 &reportFileName, プレビュー = する, 終了状態 = &reportStatus > > で使用しているレポートの画像を添付しますので参考にしてください。
要するに、全体としては、
・第1段階 … レポート印刷 プレビュー = する (プレビュー用のレポートを使う) ・第2段階 … レポート印刷 プレビュー = しない (印刷用の レポートを使う)
という具合に、二段で実行しているのでありました。
すなわち、プレビューで確認して、もしも、誤りが見つかれば、印字へ進まずに入力を訂正できるようにしているのです。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
このように、二段方式にすると、作る側は面倒臭いのですが、使う側としては無駄な印刷をしないで済むので良いのです。(^^ok ・・・・・・・・ ・・・・・・・・・・・・・・・・・・・
なお、これはワンパターンですから、一度作れば、レポートを変更するだけで他でも使い回しがききますよ。 ←これ大事です ・・・・・ ・・・・・・・・・・・・
|