我遇到了一个非常奇怪的问题,我的用户正在报告:Crystal Reports报告正在打印某个点以外的空白页.我的故障排除有点缩小了罪魁祸首,但与此同时,显示出一些不一致的结果.
这是低点:
将数据源分配给报告的代码如下:
myCommand = New SqlClient.SqlCommand(strSQL, conPlanning)
myCommand.ExecuteNonQuery()
Da = New SqlClient.SqlDataAdapter(myCommand)
Da.Fill(dsData, "TempPrintLabels")
rptPrintLabels.SetDataSource(dsData.Tables(0))
rptPrintLabels.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait
frmReports.rptViewer.ReportSource = rptPrintLabels
frmReports.Show()
Run Code Online (Sandbox Code Playgroud)
strSQL
是一个基本的SQL语句,基于从该特定表单中选择的报告.报告的SQL查询是,SELECT * FROM TempPrintLabels
.
有基本信息.报告生成正常,对于包含~100个标签的报告,它打印正常.当报告超过这个限制时会发生陌生感; 它位于95-120标签范围内.它似乎并不一致.报告将打印,直至达到某一点.那时候,报告的其余部分只会打印出空白.将会有尽可能多的空白,因为应该有剩余的页面.但是,如果您在空白开始时再次启动作业,则打印正常.
当我在CrystalReportViewer中查看此报告时,它看起来很好; 所有标签都正确呈现.当我将其打印到PDF或文本文件打印机时,所有页面都在那里.所以报告和印刷版似乎对我有用.
我以为是打印机.为了测试这一点,我将185页的作业打印到PDF,然后将其打印到打印机.那印得很好.
我无法解释这一点,甚至无法进一步诊断.打印表格中没有代码; 它使用CrystalReportViewer对象来处理所有事情.如果是这个CRV对象,打印到PDF应该给我空白页面.它没有.如果它是打印机,它应该已经开始从PDF直接打印空白,就像直接从CRV对象打印一样.它没有.
我还能找到什么?