觅水晶报表高手!!顺便散散分 可这个能力。例子this.凭证打印料件1.SetDataSource(this.PrintDataSet) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 report1 rep=new report1();rep.SetDataSource(ds.table[0]);rep.refresh();this.crystalreportview1.reportsource=rep; rep.SetDataSource(ds);参数 ds 可以是数据库中并不存在的记录表吗?因为中间层提供的ds,是对某些表处理后的到的(比如,把某张表列记录转为行等运算,记录集中的字段,在数据库中并不存在对应的表)最后,rep是否需要登录数据库?谢谢!! 比如:数据库中有张成绩表 驾驶员姓名 考试科目 成绩A 科目1 80A 科目2 85A 科目3 90经过中间层处理后,提供的数据集ds内容与格式如下:驾驶员姓名 科目1 科目2 科目3A 80 85 90可否直接设置水晶报表的数据源为 ds,然后直接阅览? 可以直接将Dataset的内容送给水井报表的啊。完全没问题! 我这里有一段 小代码是从数据库检索,让后将数据传个报表。根据时间检索数据:不通过数据向导做连接,先建立与数据库的连接, 先设置连接字符串:public stratic string strconn = “ Provider=MSDAORA.1;Password=automap;User ID="";Data Source=""”; 建立连接: OleDbConnection myConn = new OleDbConnection(strconn); 建立查询时间和连接SQL语句: string startTime = dataTimePicher_start.Text; string endTime = dataTimePicher_end.Text; string myString = "select count(id) from sfj_zxjj where zbh = 01 and ljywbs = 408 and jjsj >to_date ('"+starttime+"','YYYY-MM-DD') and jjsj < to_date('"+endtime+"','YYYY-MM-DD')";OleDbCommand myCommand = new OleDbCommand(myString,myConn);OleDbDataAdapter myAdapter = new OleDbDataAdapter(myCommand);计算结果:string count = myCommand. ExecuteScalar().ToString();MessageBox.Show(count)将值传递给报表中的某个字段:TextObject 字段名= this.crystalReport_cktjb1.ReportDefinition.ReportObjects["字段名"] as TextObject;Dlxj.Text = count;你看对你有没有用!具体其他的,你可以看帮助! 呵呵,westseason(西城时代) ,不好意思,能否亮些代码。 ivt(零下一度(.net版)) 提供的代码好像报错。 xjaifly(tiantian),你的代码是不是相当于向水晶报表传递一个变量值,记录集该怎么传递,并且要动态绑定报表字段。 谢谢大家的帮助,我也该自己试试看了。 本问题已经解决,具体解决的办法是:把 DataSet 中的内容导出为 xml 文件,水晶报表中的数据源可以设置为导出的 xml 文件。希望此办法对大家有帮助,也谢谢大家的热心帮助,再次谢谢! C# winform窗体中Button事件 关于 txt 文件编码问题? 直接实例化对象和用反射来实例化对象的区别 将多张图片组合成为一张图片? C# winform程序如何定义快捷键 FileOpenDialog() 关于线程同步 网站程序上传的问题?? 用Dllimport感觉不稳定,不知各位是否有同感? 有没有获取文件高级属性的函数或api(高分) 怎样重载Label控件? .net怎么判断客户端的分辨率?
rep.SetDataSource(ds.table[0]);
rep.refresh();
this.crystalreportview1.reportsource=rep;
参数 ds 可以是数据库中并不存在的记录表吗?
因为中间层提供的ds,是对某些表处理后的到的(比如,把某张表列记录转为行等运算,记录集中的字段,在数据库中并不存在对应的表)
最后,rep是否需要登录数据库?
谢谢!!
数据库中有张成绩表
驾驶员姓名 考试科目 成绩
A 科目1 80
A 科目2 85
A 科目3 90经过中间层处理后,提供的数据集ds内容与格式如下:
驾驶员姓名 科目1 科目2 科目3
A 80 85 90可否直接设置水晶报表的数据源为 ds,然后直接阅览?
根据时间检索数据:不通过数据向导做连接,先建立与数据库的连接,
先设置连接字符串:public stratic string strconn = “ Provider=MSDAORA.1;Password=automap;User ID="";Data Source=""”;
建立连接: OleDbConnection myConn = new OleDbConnection(strconn);
建立查询时间和连接SQL语句:
string startTime = dataTimePicher_start.Text;
string endTime = dataTimePicher_end.Text;
string myString = "select count(id) from sfj_zxjj where zbh = 01 and ljywbs = 408 and jjsj >to_date ('"+starttime+"','YYYY-MM-DD') and jjsj < to_date('"+endtime+"','YYYY-MM-DD')";
OleDbCommand myCommand = new OleDbCommand(myString,myConn);
OleDbDataAdapter myAdapter = new OleDbDataAdapter(myCommand);
计算结果:string count = myCommand. ExecuteScalar().ToString();
MessageBox.Show(count)将值传递给报表中的某个字段:TextObject 字段名= this.crystalReport_cktjb1.ReportDefinition.ReportObjects["字段名"] as TextObject;
Dlxj.Text = count;
你看对你有没有用!
具体其他的,你可以看帮助!
ivt(零下一度(.net版)) 提供的代码好像报错。
谢谢大家的帮助,我也该自己试试看了。
把 DataSet 中的内容导出为 xml 文件,水晶报表中的数据源可以设置为导出的 xml 文件。
希望此办法对大家有帮助,也谢谢大家的热心帮助,再次谢谢!