怎样用c#.net制作水晶报表并且连接Oracle数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用c#.net制作水晶报表并且连接Oracle数据库相关的知识,希望对你有一定的参考价值。

首先,在工具箱里面拖一个CrystalReportviewer控件,然后点击控件右侧三角箭头,可以去掉显示组树,然后选择则创建新Crystal报表,弹出创建新Crystal报表,默认确定,也可以自定义报表名称。
第二,在CrystalReports库中选择使用报表向导,标准,确定。然后在弹出的创建报表向导中展开创建新连接,选择OLE DB,然后选择一个提供程序,我选择的是Micrisoft OLEDB Provider for Sql server ,若是Oracle 则选择相应的提供程序。
第三,选择下一步,选择则你所要连接数据库的服务器名称,用户名,密码,数据库名称,点击下一步,选择你需要的数据表,点击>添加,下一步,选择你需要的字段,要显示在报表上的字段
第四,主报表,显示对应的字段,都有两项,上面是要显示的名称,下面是内容,可以把上面的改成中文字段名称。可以随意修改格式。
这样大概的报表就走好了,包括打印等功能。若是要按某个字段照查询格式显示报表,则需要实例化你开始创建(报表名称).rpt,可以看一下你的解决方案资源管理器中的*.rpt名称,实例化。
VB(Dim myreport as CrystalReport1=new CrystalReport1() ) C#( CrystalReport1 myreport=new CrystalReport1()) ,然后代码: myreport.Refresh() myreport.RecordSelectionFormula = "你的表名.字段名称=' " & 某个文本框的.text & " ' "
CrystalReportViewer1.ReportSource = myreport
这样就做好了。
参考技术A 添加水晶报表并且连接Oracle数据库操作如下:
  第一步:在工具箱里面找到CrystalReportViewer控件拖到窗体里面,
  第二步:右键添加新项 找到数据集 DataSet1.xsd
  第三步: 继续添加新项 Crystal报表 CrystalReport1.rpt 进入的时候选择空白报表
  第四步:在DataSet1.xsd 双击进去 右键添加 -TableAdapter 给它命名:此名自定义“DsCardConsumption” 然后根据提示连接数据库 然后写SQL语句这个 数据集就算完成了
  第五步:在CrystalReport1.rpt 双击进入 左上角找到--- 字段资源管理器 --数据库字段
  右键 - ——数据库字段 —— 数据库专家 - 就会弹出一个框,选择项目数据-ADO.NET 数据集。点开找到刚才完成的那个数据集"DsCardConsumption"然后点击确定。
  第六步:就是窗体里面下代码:
  //这是查询方法 返回来的 dateset
  dataSet = reportBLL.GetQueryCardConsumption(start, finish, cardNo);
  //这个就是 绑定数据集 的名字“CardConsumption”
  dataSet.Tables[0].TableName = "CardConsumption";
  //这个就是 第五步建的CrystalReport1.rpt 名字自己改
  rptCardConsumption cr = new rptCardConsumption();
  cr.SetDataSource(dataSet);
  crvCardConsumption.ReportSource = cr;
参考技术B 建议别用vs自带的要用水晶报表软件,那里面有连接数据库的设置。然后放到vs中用,或者用dataset数据集工具直接可以连接报表,也很方便的,想要例子告诉我一下,晚上给你个 参考技术C 你是制作报表由问题,还是连接oracle数据库有问题

获取报表页脚水晶报表c#中每页的字段总和

我使用此答案https://stackoverflow.com/a/33613632/12746914计算出每页的字段总和

并且我得到了预期的结果。以下几行描述了答案包含的内容:

ff_Reset_Total

whileprintingrecords;
numbervar PageTotl;
PageTotl:=0;

ff_Current_Total

whileprintingrecords;
numbervar PageTotl;
PageTotl;

ff_Add_Record

whileprintingrecords;
numbervar PageTotl;
PageTotl:=PageTotl + {TheField};

然后将这些公式字段如下所示放置在报告中:

页面标题部分中的ff_Reset_Total总计ff_Current_Total,页脚部分中的ff_Add_Record您的详细信息部分

[我的问题是我想在报告页脚中打印每页每个字段的总数,例如,第1页中的X列的总数= 5,第2页中的X列的总数= 10,所以总数总计= 15] >

首先,我需要知道将其作为变量传递给报表页脚的页数,因此,第1页第5列的X行的总和将等于第Y页第5列的行的总和?提前致谢。this image exactly what I want

我通过使用此答案https://stackoverflow.com/a/33613632/12746914计算了每页的字段总和,并且得到了预期的结果。以下几行描述了答案包含的内容:...

答案

修改您的ff_Add_Record

以上是关于怎样用c#.net制作水晶报表并且连接Oracle数据库的主要内容,如果未能解决你的问题,请参考以下文章

VB.net中如何制作水晶报表?

C#怎么生成水晶报表

.net里的crystal reports(水晶报表)可以做出趋势图吗?

水晶报表怎样即能导出excel又能合并单元格

asp.net 水晶报表连接mysql数据库

vs2008制作水晶报表