打印时不预览水晶报告

2020-09-03 21:30发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨;

我的系统是独立的,并具有 vb.net 2005和Oracle数据库。

当通过Crystal Report查看器打印时,我得到给定Batchno的正确输出。 下面是我的代码:

导入CrystalDecisions.CrystalReports.Engine

导入CrystalDecisions.Shared

导入System.Data.OleDb

公共类frmTPReciepts

公共strBatchNo作为字符串

Private Sub CrystalReportViewer1_Load(ByVal发送者为System.Object,ByVal e为System.EventArgs)处理CrystalReportViewer1.Load

将crtableLogoninfos设置为新的TableLogOnInfos

将crtableLogoninfo用作新的TableLogOnInfo

将crConnectionInfo设置为新的ConnectionInfo

将CrTable设置为表格

将CrTable设置为表格

Dim TableCounter

将crReportDocument设置为新的TmpReceipt

使用crConnectionInfo

.ServerName =" glhrm"

.DatabaseName =""

.UserID =" PERMIT"

.Password =" ADM01"

结尾为

crReportDocument.Refresh()

CrTables = crReportDocument.Database.Tables

对于CrTable中的每个CrTable

crtableLogoninfo = CrTable.LogOnInfo

crtableLogoninfo.ConnectionInfo = crConnectionInfo

CrTable.ApplyLogOnInfo(crtableLogoninfo)

下一步

CrystalReportViewer1.ReportSource = crReportDocument

将paramFields设置为新的ParameterFields

将paramField设置为新的ParameterField

将离散Val设置为新的ParameterDiscreteValue

paramField.ParameterFieldName =" BatchNo"

discreteVal.Value = strBatchNo

paramField.CurrentValues.Add(discreteVal)

paramFields.Add(paramField)

CrystalReportViewer1.ShowRefreshButton = False

CrystalReportViewer1.ShowTextSearchButton = False

CrystalReportViewer1.ShowExportButton = False

CrystalReportViewer1.Zoom(100)

对于上述代码,它给出正确的结果。 但是,当我尝试不进行预览即直接打印时进行打印时,输出错误。 这意味着打印带有不同的批号。 贝娄是代码。

将prd作为新System.Drawing.Printing.PrintDocument

将objRpt设为新的TmpReceipip

objRpt.PrintOptions.PrinterName =" Tally Dascom 2600(副本1)"

objRpt.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4

objRpt.PrintToPrinter(1,False,0,0)

请帮助我进行排序

谢谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨;

我的系统是独立的,并具有 vb.net 2005和Oracle数据库。

当通过Crystal Report查看器打印时,我得到给定Batchno的正确输出。 下面是我的代码:

导入CrystalDecisions.CrystalReports.Engine

导入CrystalDecisions.Shared

导入System.Data.OleDb

公共类frmTPReciepts

公共strBatchNo作为字符串

Private Sub CrystalReportViewer1_Load(ByVal发送者为System.Object,ByVal e为System.EventArgs)处理CrystalReportViewer1.Load

将crtableLogoninfos设置为新的TableLogOnInfos

将crtableLogoninfo用作新的TableLogOnInfo

将crConnectionInfo设置为新的ConnectionInfo

将CrTable设置为表格

将CrTable设置为表格

Dim TableCounter

将crReportDocument设置为新的TmpReceipt

使用crConnectionInfo

.ServerName =" glhrm"

.DatabaseName =""

.UserID =" PERMIT"

.Password =" ADM01"

结尾为

crReportDocument.Refresh()

CrTables = crReportDocument.Database.Tables

对于CrTable中的每个CrTable

crtableLogoninfo = CrTable.LogOnInfo

crtableLogoninfo.ConnectionInfo = crConnectionInfo

CrTable.ApplyLogOnInfo(crtableLogoninfo)

下一步

CrystalReportViewer1.ReportSource = crReportDocument

将paramFields设置为新的ParameterFields

将paramField设置为新的ParameterField

将离散Val设置为新的ParameterDiscreteValue

paramField.ParameterFieldName =" BatchNo"

discreteVal.Value = strBatchNo

paramField.CurrentValues.Add(discreteVal)

paramFields.Add(paramField)

CrystalReportViewer1.ShowRefreshButton = False

CrystalReportViewer1.ShowTextSearchButton = False

CrystalReportViewer1.ShowExportButton = False

CrystalReportViewer1.Zoom(100)

对于上述代码,它给出正确的结果。 但是,当我尝试不进行预览即直接打印时进行打印时,输出错误。 这意味着打印带有不同的批号。 贝娄是代码。

将prd作为新System.Drawing.Printing.PrintDocument

将objRpt设为新的TmpReceipip

objRpt.PrintOptions.PrinterName =" Tally Dascom 2600(副本1)"

objRpt.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4

objRpt.PrintToPrinter(1,False,0,0)

请帮助我进行排序

谢谢

付费偷看设置
发送
3条回答
xfwsx85
1楼 · 2020-09-03 22:09.采纳回答

事物的结合,Microsoft不再支持VB 2005,您可能正在使用仅适用于Oracle 7的Microsoft Oracle Provider。

使用Oracle的客户端并首先更新报告。

接下来,如果您可以获得Visual Studio 2010-> 2019并从此处使用最新的CR运行时:

https: //wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

如果预览报告并单击"刷新"按钮,它会提示您输入登录信息吗?

如果需要,请先修复该部分。

如果已解决,现在可以从查看器中打印。 如果可行,则只需注释掉代码的"查看器"部分。

Don

Doze时光
2楼-- · 2020-09-03 22:02

我怀疑您已将数据与报告一起保存,并且直接打印到打印机的结果显示的是该数据,而不是您想要的数据。

为使报告正确打印,需要在调用PrintToPrinter之前设置表登录名和参数,以便刷新报告。 我还将在报告中打开"用报告保存数据"并重新保存它,使其不包含任何数据。 这样,由于文件较小,并且不必先清除旧数据,因此加载速度更快。

-Dell

南山jay
3楼-- · 2020-09-03 22:12

感谢戴尔 对于您的宝贵意见。 如果您能通过代码向我解释

,我将不胜感激。

在调用PrintToPrinter之前设置表登录名和参数。 在这里,我仍然会卡在编码错误中。

谢谢

设拉子

一周热门 更多>