我想为程序加一个水晶报表打印预览功能。
我的理解是:
1.为主窗口Form1加一个子窗口Form2
2.把crystalReportViewer1加入Form2中,并设置数据源:
CrystalReport1 myrpt=new CrystalReport1();
myrpt.SetDataSource(dataset1);
3.Form1中的打印预览按钮显示Form2窗口:
Form2 f2=new Form2();
f2.Owner=this;
f2.Show();不知我的理解是否正确,另外,Form1中的dataset1如何传到Form2中?我想把dataset1设置为public
那么,DataSet dataset1=new DataSet()这句怎么改???
我的理解是:
1.为主窗口Form1加一个子窗口Form2
2.把crystalReportViewer1加入Form2中,并设置数据源:
CrystalReport1 myrpt=new CrystalReport1();
myrpt.SetDataSource(dataset1);
3.Form1中的打印预览按钮显示Form2窗口:
Form2 f2=new Form2();
f2.Owner=this;
f2.Show();不知我的理解是否正确,另外,Form1中的dataset1如何传到Form2中?我想把dataset1设置为public
那么,DataSet dataset1=new DataSet()这句怎么改???
解决方案 »
- 怎么让在winform所浏览的文件绝对路径,在数据库中保存它的相对路径?或者怎么在winform中怎么获得浏览文件的相对路径啊!
- treeView 指定节点下完成增加,删除,修改
- C# 按行查询数据时同时显示正在查询的行数?
- urlrewrite调试正确,iis打开中却找不到页面。提示404错误
- Access数据库开发问题
- datagrid有没有属性设置,可以将为负数的值,显示为红色.当然哪一行哪一列的值为负数,事先并不知道
- ie 页面关闭 跟刷新区别
- C#编写计算表格输出到excel中。。。。
- 怎样获取sitemap文件中除title和description之外的属性值?
- 谁有比较好的Grid的源代码?呵呵~~~
- 怎么能得到事件对应的方法?
- Excel数据导入Dataset后丢失
那么,DataSet dataset1=new DataSet()这句怎么改???可以通过Form2的构造函数来传参数。
如:
public Form2(DataSet ds)
{}
打印端:(Form2)
public partial class TicketDetailPrint : Form
{
public CRTicketDetail crtd = new CRTicketDetail();
public TicketDetailPrint(DsPrintOfVender ds)
{
crtd.SetDataSource(ds);
InitializeComponent();
crystalReportViewer1.ReportSource = crtd;
}
}调用端:(Form1)
private void buttonprint_Click(object sender, EventArgs e)
{
try
{
TicketDetailPrint print = new TicketDetailPrint(dsprint);//dsprint已经定义并赋值
print.ShowDialog();
print.Dispose();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}