有关CrystalReport打印的页面设置

dean615 2008-11-05 12:11:33
掉用水晶报表时,如果直接调用它的打印函数,页面类型会不是规定的A4类型,如过让报表页面显示出来,然后手动点击打印按钮
页面设置就是规定的A4类型,请问,如何在不显示报表页面的情况下,直接调用他的打印功能,还能让他的页面类型是A4
CrystalReportVIPMale crystalVIP = new CrystalReportVIPMale();
crystalVIP.PrintOptions.PaperSize = PaperSize.PaperA4;
this.CrystalReportViewer1.ReportSource = crystalVIP;
//this.CrystalReportViewer1.PrintReport();这个是直接调用打印功能的方法
...全文
337 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dean615 2008-11-07
  • 打赏
  • 举报
回复
解决,要给.rpt文件附上数据源,偷懒,直接用DATASET老做了。
谢谢
mjjzg 2008-11-05
  • 打赏
  • 举报
回复
路过,顶一下,以表支持
dean615 2008-11-05
  • 打赏
  • 举报
回复
我现在加上那个参数了,会报同样的错,我的数据库是ORACLE的,跟数据库没关系吧
阿泰 2008-11-05
  • 打赏
  • 举报
回复
connectionInfo.DatabaseName = "";

这个参数怎么会为空?
dean615 2008-11-05
  • 打赏
  • 举报
回复
private void ConfigureCrystalReports()
{
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = "DEV.NMH.BHG.COM";
connectionInfo.DatabaseName = "";
connectionInfo.UserID = "PHYSICAL";
connectionInfo.Password = "EXAM";
string reportPath = Application.StartupPath + "\\" + "CrystalReportVIPMale.rpt";
this.CrystalReportViewer1.ReportSource = reportPath;
//this.CrystalReportViewer1.LogOnInfo.Add(logInfo);
TableLogOnInfos tableLogOnInfos = this.CrystalReportViewer1.LogOnInfo;
foreach (TableLogOnInfo tableLogOnInfo in tableLogOnInfos)
{
tableLogOnInfo.ConnectionInfo = connectionInfo;

}
}
private Test()
{
ConfigureCrystalReports(logInfo);
CrystalReportVIPMale crystalVIP = new CrystalReportVIPMale();
crystalVIP.PrintOptions.PrinterName = "Microsoft Office Document Image Writer";
crystalVIP.PrintOptions.PaperSize = PaperSize.PaperA4;
crystalVIP.PrintToPrinter(1, false, 1, 99);
}
可以运行到crystalVIP.PrintToPrinter(1, false, 1, 99);然后报如下错:
System.Collections.ListDictionaryInternal
System.Runtime.InteropServices.COMException (0x8004100F):
文件 C:\DOCUME~1\Dean.Xu\LOCALS~1\Temp\temp_5cb9f206-67e2-453d-a7e2-31a560894eb2 {46A936D9-4EDC-4869-8DC9-DCE77BA44EB5}.rpt 内出错:
无法连接:错误的登录参数。
dean615 2008-11-05
  • 打赏
  • 举报
回复
好的,我去试下,谢谢
阿泰 2008-11-05
  • 打赏
  • 举报
回复
下面是帮助文档里的数据库登录实例。将登录信息赋给报表对象。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

namespace CS_Base
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void ConfigureCrystalReports()
{
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = "dholmes_50701";
connectionInfo.DatabaseName = "Northwind";
connectionInfo.UserID = "limitedPermissionAccount";
connectionInfo.Password = "1234";
string reportPath = Application.StartupPath + "\\" + "NorthwindCustomers.rpt";
crystalReportViewer.ReportSource = reportPath;
SetDBLogonForReport(connectionInfo);
}

private void Form1_Load(object sender, EventArgs e)
{
ConfigureCrystalReports();
}

private void crystalReportViewer_Load(object sender, EventArgs e)
{

}

private void SetDBLogonForReport(ConnectionInfo connectionInfo)
{
TableLogOnInfos tableLogOnInfos = crystalReportViewer.LogOnInfo;
foreach (TableLogOnInfo tableLogOnInfo in tableLogOnInfos)
{
tableLogOnInfo.ConnectionInfo = connectionInfo;

}

}
}
}


然后再写个单独的打印事件看看
dean615 2008-11-05
  • 打赏
  • 举报
回复
不行,我试了,直接调用打印方法时,设置的属性全没了。
不知道为什么
yangpeiyu 2008-11-05
  • 打赏
  • 举报
回复
你直接在报表里设为A4不行吗?右击设计报表里可以设的。
dean615 2008-11-05
  • 打赏
  • 举报
回复
不行呢,到 crystalVIP.PrintToPrinter(1, false, 1, 99)时就会报错:
System.Collections.ListDictionaryInternal
System.Runtime.InteropServices.COMException (0x8004100F):
文件 C:\DOCUME~1\Dean.Xu\LOCALS~1\Temp\temp_af6cc12f-98d5-4785-a846-e2296e9414a6 {A8A7D7A9-B3FF-41C9-8A3D-B010BAFC4490}.rpt 内出错:
无法连接:错误的登录参数。
阿泰 2008-11-05
  • 打赏
  • 举报
回复

这样看看,指定打印机名称的。

CrystalReportVIPMale crystalVIP = new CrystalReportVIPMale();
crystalVIP.PrintOptions.PrinterName = "打印机名称";
crystalVIP.PrintOptions.PaperSize = PaperSize.PaperA4;
crystalVIP.PrintToPrinter(1, False, 1, 99);

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧