Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 标签打印机开始在大作业中打印空白页_Vb.net_Printing_Crystal Reports - Fatal编程技术网

Vb.net 标签打印机开始在大作业中打印空白页

Vb.net 标签打印机开始在大作业中打印空白页,vb.net,printing,crystal-reports,Vb.net,Printing,Crystal Reports,我遇到了一个非常奇怪的问题,我的一个用户正在报告: Crystal Reports报告打印空白页超过某个点。我的故障排除在某种程度上缩小了罪魁祸首的范围,但同时也显示出一些不一致的结果 下面是真相: 该应用程序是一个VB.NET应用程序,使用.NET 4 解决方案中嵌入了多个Crystal Report报告,并且使用单个表单来显示和打印任何报告 要显示的报表通过代码后端处理,并在显示表单之前分配给表单的CrystalReportViewer对象 对于问题报告,数据源来自代码中运行的SQL查询,

我遇到了一个非常奇怪的问题,我的一个用户正在报告: Crystal Reports报告打印空白页超过某个点。我的故障排除在某种程度上缩小了罪魁祸首的范围,但同时也显示出一些不一致的结果

下面是真相:

  • 该应用程序是一个VB.NET应用程序,使用.NET 4
  • 解决方案中嵌入了多个Crystal Report报告,并且使用单个表单来显示和打印任何报告
  • 要显示的报表通过代码后端处理,并在显示表单之前分配给表单的CrystalReportViewer对象
  • 对于问题报告,数据源来自代码中运行的SQL查询,然后分配为报告的数据源,然后将报告分配为表单中CRV对象的reportsource
  • 标签打印机通过USB连接到相关计算机,安装程序用于提供驱动程序
  • 如果重要的话,它是一台Citizen CLP-7201e标签打印机
将数据源分配给报表的代码如下:

    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()
strSQL
是一个基本的SQL语句,根据它从这个特定的表单中选择报表。报告的SQL查询是,
SELECT*fromTempPrintLabels


这是基本信息。报告生成精细,对于具有约100个标签的报告,打印精细。当报告超过该限制时,就会出现奇怪的情况;它在95-120标签范围内。这似乎并不一致。报告将打印,直到到达某个点。届时,报告的其余部分将只打印空白。将有尽可能多的空白,因为有剩余的页面。但是,如果在空白处重新开始作业,则打印效果良好

当我在CrystalReportViewer中查看此报告时,它看起来很好;所有标签都正确渲染。当我将其打印到PDF或文本文件打印机时,所有页面都在那里。因此,报告和印刷版似乎对我起了作用

我以为是打印机。为了测试这一点,我将一份185页的作业打印到PDF,然后将其打印到打印机上。印刷得非常好

我无法解释,甚至无法进一步诊断。表格中没有用于打印的代码;它使用CrystalReportViewer对象来处理一切。如果是这个CRV对象,打印到PDF应该给我空白页。没有。如果是打印机,它应该在直接从CRV对象打印的同一点附近开始从PDF打印空白。没有


我还可以寻找什么呢?

对于这个问题,我有一些想法导致打印时出现这种行为

  • 您的所有标签长度的宽度问题可能超出页面大小。因此,缩小标签宽度时,您可以检查所有标签和页面是否为空白(即使标签显示不正确,我们也可以单独处理)。如果它不显示(如当前所示),则您只需将所有标签的标签宽度按“可增长”选项处理为true即可

  • 如果一切正常,那么我认为您可以检查打印机的页面设置/页边距

  • 如果上述方法不起作用,则创建新报告或现有报告,只需添加静态标签和值,然后首先预览,然后从代码调用。你可以从中找到一些东西


  • 根据我的经验(在这种情况下我可能错了),每当crystal report中出现空白页时,您的列会增加,报告的宽度就会产生问题。因此,要么将报告宽度设置为减小,要么将打印机页面设置为更大。所以它会打印,而不是抛出错误,而是给出空白页。

    Hi,@Ajay2707。虽然您的编辑很受欢迎,但您正在修改不应该修改的特定部分。例如,CrystalReportViewer是在VisualStudio中引用的对象;单词之间不应该有空格。除此之外,收缩是我自己的风格,对改善没有任何影响。是一份特定的报告显示了这种空白行为,还是所有超过90-120个标签的Crystal报告都出现了这种情况?@ChicagoMike只有一份报告打印了这么多标签,很不幸,我没有其他报告可以测试它是否是一个单独的事件。你能创建一个这样的报告吗?这听起来很傻,我知道,但如果你新创建的报告能够打印120个标签,那将是一个巨大的洞察。@ChicagoMike我可能能够,但我不确定这将提供什么价值;愿意分享你的假设吗?这不是一个页面大小或边距的问题;如果是这样的话,标签会把每一份工作都打印错。它不会显示这些症状。此标签报告上是否有页码?但是,这会使3位溢出在第100页持续显示此行为。配置打印队列以保留作业,然后检查spool文件,您将能够判断它是否未正确渲染,或者打印机/驱动程序是否正在死亡。