0

Crystal レポート (VB アプリで実行されている Crystal XI) の問題に取り組んでおり、レポートを直接印刷しようとすると散発的に「パラメーター値がありません」というエラーが発生します。問題の概要は次のとおりです。

  1. ユーザーはレポート メニューからレポートを実行します (すべて正常に動作します)。
  2. ユーザーが [印刷プレビュー] をクリックします (すべて正常に動作します)。
  3. ユーザーが [印刷] をクリックします (ドキュメントをプリンターに直接送信することになっていますが、パラメーターが見つからないというエラーが発生する場合があります)

コードを開始するために私が持っていたものは次のとおりです。

    crystalReportViewer.MdiParent = parent
    crystalReportViewer.Show()

    Dim report As ReportDocument = CType(crystalReportViewer.ReportSource, ReportDocument)

    report.PrintToPrinter(1, False, 0, 0)
    crystalReportViewer.Close()
    crystalReportViewer.Dispose()

私がグーグルで調べてきたことに基づいて、次のコードを思いつきました:

    crystalReportViewer.MdiParent = parent
    crystalReportViewer.Show()

    Dim report As ReportDocument = CType(crystalReportViewer.ReportSource, ReportDocument)

    'here are my attempts to get it to work
    Dim pf As ParameterFields = report.ParameterFields
    report.PrintOptions.PrinterName = "Microsoft XPS Document Writer"

    report.PrintToPrinter(1, False, 0, 0)
    crystalReportViewer.Close()
    crystalReportViewer.Dispose()

この問題を解決する方法についてのアイデアがほとんどありません。他の誰かがこれに出くわしましたか?

4

4 に答える 4

2

開始コード:レポートに空のパラメータがある可能性があります。

検索コードの後:次の行があります。

Dim pf As ParameterFields = report.ParameterFields

パラメータがあり、値を設定していません。

両方について、次を使用します。

//[C#]
report.setParameterValue(parameterName, parameterValue);
于 2013-07-19T19:37:28.223 に答える
0

私が知る限り、これは Crystal の問題のようです。修正が見つからなかったので、修正が利用可能になるまで回避策を使用しています (レポートが生成され、手動で印刷されます)。

于 2012-07-12T21:13:08.777 に答える
0

まず、toolBoxからPrintDialog を追加してから、次のコードbutton_click_eventを追加する必要があります。

        ReportName.PrintOptions.PrinterName = PrintDialog1.PrinterSettings.PrinterName

        ReportName.PrintOptions.PaperOrientation = CrystalDecisions.[Shared].PaperOrientation.Landscape

        ReportName.PrintOptions.PrinterName = "Microsoft XPS Document Writer"

        ReportName.PrintToPrinter(PrintDialog1.PrinterSettings.Copies, True, 1, 99)

これにより、「Microsoft XPS Document Writer」に直接印刷が送信されます。これが役に立ったと思ったら投票してください

于 2016-02-03T11:23:53.363 に答える