前文《在水晶报表中实现任意选择指定字段显示》中有朋友留言说是有无C#版本,最近有时间,重写了一下。
一是使用了VS2005 C#2.0 + Crystal Report 2008,另外就是把模板的实现方式也更改了一下。

在这里就不一步一步讲了,模板的实现方式和xsd文件及mdb文件,请从《在水晶报表中实现任意选择指定字段显示》一文中下载
不过模板在这里做一下说明,本文中的模板中的表头部分,未使用参数字段,而是使用了公式字段。
如下图所示

最终效果为

各控件都使用了默认名称,主要的事件为Click

CR2008自动增加如下代码

1using CrystalDecisions.Shared;
2using CrystalDecisions.CrystalReports.Engine;
3using CrystalDecisions.Windows.Forms;

Click事件代码:

 1private void button1_Click(object sender, EventArgs e)
 2        {
 3
 4            
 5            String cnstr = "";
 6            //保持字段的字符串 
 7            String fldstr = "";
 8            //保持字段名称的数组 
 9            String[] fldArr=new string[6] ;
10            int i = 0;
11            int j = 0;
12             
13            
14
15            //--------------------------------------------------------------------- 
16            //获取选取的字段并进行处理 
17            if (checkBox1.Checked == true)
18                fldstr = fldstr + "," + checkBox1.Text;
19            if (checkBox2.Checked == true)
20                fldstr = fldstr + "," + checkBox2.Text;
21            if (checkBox3.Checked == true)
22                fldstr = fldstr + "," + checkBox3.Text;
23            if (checkBox4.Checked == true)
24                fldstr = fldstr + "," + checkBox4.Text;
25            if (checkBox5.Checked == true)
26                fldstr = fldstr + "," + checkBox5.Text;
27            if (checkBox6.Checked == true)
28                fldstr = fldstr + "," + checkBox6.Text;
29
30            if (fldstr == "") {
31                MessageBox.Show("请选择要显示的字段");
32                return;
33            }
34
35            if (fldstr.Substring(0, 1) == ",") 
36                fldstr = fldstr.Substring(1, fldstr.Length - 1);
37
38            fldArr = fldstr.Split(new Char[] {','});
39
40             cnstr= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\BBT_Crystal.mdb" ;
41            OleDbConnection cn=new OleDbConnection(cnstr);
42            cn.Open();
43
44            string sql="";
45            sql=" Select " + fldstr + " From 材料采购明细" ;
46
47            OleDbDataAdapter da1=new OleDbDataAdapter(sql,cn);
48
49            DataSet ds1=new DataSet();
50            da1.Fill(ds1, "材料采购明细");
51 
52
53            CrystalReport1 crReportDocument=new CrystalReport1();
54
55
56            for(i=0;i<fldArr.Length;i++)
57            {
58            
59               // 将公式绑定到具体字段 
60                crReportDocument.DataDefinition.FormulaFields["mf" + (i + 1).ToString()].Text = "{材料采购明细." + fldArr[i] +"}" ;
61                crReportDocument.DataDefinition.FormulaFields["mt" + (i + 1).ToString()].Text = "\"" + fldArr[i] + "\"";
62            }
63
64            for (j =i+ 1; j <= 6; j++)
65            {
66                crReportDocument.DataDefinition.FormulaFields["mt" + (j).ToString()].Text = "";
67            }
68
69            crReportDocument.SetDataSource(ds1);
70            crystalReportViewer1.ReportSource=crReportDocument;          
71
72        }

使用公式构造表头字段节约了不少代码,呵呵。
当然这只是个程序模型~~

-EOF-

转载于:https://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html

在水晶报表中实现任意选择指定字段显示-模板及C#升级版相关推荐

  1. 在水晶报表中动态显示任意格式的图片

    在水晶报表中动态显示任意格式的图片 如何在水晶报表中动态显示任意格式的图片        前段时间,Accounting 项目内需要在水晶报表中动态显示任意格式的图片.但是,水晶报表只支持OleDb的 ...

  2. 水晶报表中如何创建自定义的纸张大小格式?

    问题 水晶报表中使用一个自定义的纸张类型格式(使用预先定义的纸张格式显示或者打印一个报表)? 解决方法 要创建一个自定义的纸张格式,来完成你工作中所使用的特殊纸张.在你开始工作之前,你必须确认你的打印 ...

  3. NodeJS 中的mongoDB设置指定字段的隐藏,查询的时候强制显示指定隐藏的字段

    NodeJS 中的mongoDB设置指定字段的隐藏,查询的时候强制显示指定隐藏的字段 这里使用的是基于RESTful API的规范创建的请求地址 在Schema创建用户的时候可以使用select:fa ...

  4. 利用数据集在水晶报表中显示图像

    描述 该 C# .NET Windows 程序演示了如何创建数据集,并将图像添加到数据集,以及在运行时将数据集传递到子报表. 文件列表 - bin\Debug\Canada.jpg - bin\Deb ...

  5. 水晶报表中对某一栏位值进行处理_终于有人讲清楚了,BI和报表的差异!

    IT系统自带报表功能,为什么还要额外采购BI? 报表和BI都能做数据分析,区别在哪里? 加班加点做了那么多表,为什么还不满足老板需求? 报表分析需要IT团队来开发,那BI呢? 这些应该是大家对商业智能 ...

  6. 利用数据集在水晶报表中显示图像的 .NET 程序教程

    目录 描述 文件列表 步骤 Form1.cs VB.NET 版 描述 该 C# .NET Windows 程序演示了如何创建数据集,并将图像添加到数据集,以及在运行时将数据集传递到子报表. 文件列表 ...

  7. winform水晶报表中添加图片

    文章目录 前言 一.VS中找不到ReportView 二.使用步骤 1.直接拉取控件到窗体 ​编辑 2.添加参数 总结 前言 应用场景:在做一个巡检机器人项目时,对于巡检结果,需要在Winform端显 ...

  8. 在水晶报表中使用Code128条形码

    1.将code128条码字体拷贝到C:\Windows\fonts下 下载地址是 http://download.csdn.net/detail/easyboot/9452777 2 .在水晶报表里的 ...

  9. 水晶报表中让行高自适应高度(即根据内容的来适应高度)

    1.在水晶报表打印中,有些内容可能占两行.三行.四行内容,但有些内容仅占一行内容,如果固定行高,会造成纸张的很大的浪费,如下图所示 2.如上图所示,零件型号.名称.规格三列超出一行内容,怎么让内容自适 ...

最新文章

  1. python 字符串 转 dict
  2. css出现的问题以及解决,div+css的浮动常出现的问题以及解决办法_html/css_WEB-ITnose...
  3. static/final/常量模式
  4. node与mysql开源_node与mysql的相互使用————node+mysql
  5. 【pytorch】pytorch自定义训练vgg16和测试数据集 微调resnet18全连接层
  6. 【转】qqface使用实例
  7. android 蓝牙耳机 sco,使用Android识别器内置蓝牙耳机
  8. string函数知识点总结
  9. 下列哪一项不是计算机网络的典型应用,09级计算机信息网络试卷A
  10. H3C认证路由交换网络高级工程师
  11. 过滤器获取service方法返回慢_Spring Cloud Gateway-全局过滤器(Global Filters)
  12. Rust常用编程概念之变量和可变性
  13. Vue项目打包部署到apache服务器
  14. Scikit-learn:分类classification
  15. 认识Hibernate
  16. Java毕业设计-医院药品管理系统
  17. A3C的算法原理和算法流程
  18. 信息系统基础知识(笔记)
  19. 开源网站云查杀方案之ClamAV服务器的搭建
  20. 【Android开发-4】进入实践,最喜欢折腾的计算器

热门文章

  1. 三个小命令检查电脑!
  2. APUE-文件和目录(二)函数access,mask,chmod和粘着位
  3. Imc连环画《红楼梦》
  4. 在Struts 2中实现文件上传
  5. CKO将成为企业发展的军师--转自世界名人网
  6. [bzoj2527][Poi2011]Meteors_整体二分_树状数组
  7. Java学习---RMI 技术分析[Hessian]
  8. 遇到的问题及解决方法
  9. MapReduce输入输出的处理流程及combiner
  10. noip2016 小结(ac两题+学习总结)