~~~我所遇到的WINFORM下水晶报表问题,UP有分
最近开发遇到水晶报表的问题,查阅了些相关资料,有些虽理解犹欠佳,帖出来希望共勉.亦希望有人解惑.,UP有分.
1.在pull模式下,直接连接数据库,即oledb,水晶报表里的字段是直接从【字段资源管理器】下的【数据库字段】拖过去的,关联的是Products表,Form窗体load时的代码如下,测试通过:
reportDocument1 = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
reportDocument1.Load(@ "E:\z7z8\Test1\myTestRpt1.rpt ");
#region 解决登陆
//foreach(CrystalDecisions.CrystalReports.Engine.Table tb in reportDocument1.Database.Tables)
//{
//CrystalDecisions.Shared.TableLogOnInfo logininfo=tb.LogOnInfo;
//logininfo.ConnectionInfo.ServerName=@ "C47ED435468B448\DONGWEI ";
//logininfo.ConnectionInfo.DatabaseName= "Northwind ";
//logininfo.ConnectionInfo.UserID= "sa ";
//logininfo.ConnectionInfo.Password= " ";
//tb.ApplyLogOnInfo(logininfo);
//}
#endregion
crystalReportViewer1.ReportSource=reportDocument1;
我的疑问是:我看教程的时候,讲到必须要验证,也就是我注释的那一段,但是我注释后依然能正常运行.请问这是为什么?
2.在用PUSH模型时,需要自己建立XSD文件,这是一个XML类型的文件,他存储的数据源的结构,此时水晶报表里的字段是通过ADO.NET连接获取的,关联的也是products表,测试通过的代码如下:
SqlConnection conn = new SqlConnection( "server=(local)\\dongwei;database=northwind;Trusted_Connection=yes ");
conn.Open();
SqlCommand com = new SqlCommand( "select * from products ",conn);
SqlDataAdapter ada = new SqlDataAdapter(com);
myDataset1 m= new myDataset1();//强类型化数据集
ada.Fill(m, "products ");
myReport2 m2 = new myReport2();
m2.SetDataSource(m.Tables[0]);
this.crystalReportViewer1.ReportSource=m2;
this.crystalReportViewer1.RefreshReport();,
我想问的是,我能不能使用类型化数据集,自己生成相关的XML文件,然后进行绑定.我的代码如下:
System.Data.DataSet ds = new System.Data.DataSet();
ds.Tables.Add(myDt);//myDt是我用来封装数据的dataTable,此时里面已经存在数据
ds.WriteXml( "myDt.Xml ",System.Data.XmlWriteMode.WriteSchema);
myRpt3.SetDataSource( "myDt.Xml ");//水晶报表里没有拖入字段
this.crystalReportViewer1.ReportSource=myRpt3;
this.crystalReportViewer1.RefreshReport();
如果可以使用弱类型化数据集,我上面的这段代码应该如何更改,谢谢~~~
------解决方案--------------------up
------解决方案--------------------看着累啊
------解决方案--------------------为啥不用push的方法
------解决方案--------------------up
------解决方案--------------------up
------解决方案--------------------我的疑问是:我看教程的时候,讲到必须要验证,也就是我注释的那一段,但是我注释后依然能正常运行.请问这是为什么?
----------------------------------------------
那是因为你还没有部署,只是本机运行,其他机子访问你就会提示输入帐号密码的
------解决方案--------------------我只用过push模式
该模式通过XSD文件来设计报表 运行时刻连接数据库取得数据集即可
------解决方案--------------------mark 吧, 水晶报表只是半通水
------解决方案--------------------1、报表记住了你操作时连接的那个啊,如果你需要连接其它的,或者数据库密码变了,你看它出不出连接对话框!
2、我不知道你这样后,那报表怎么设计的?
------解决方案--------------------不懂,
顶
------解决方案--------------------顶
------解决方案--------------------