在水晶报表中动态的添加自己所需要的的字段的代码

原创 2004年09月18日 16:38:00

         在水晶报表中动态的添加自己所需要的的字段的代码

//首先实例化一个报表(zkck)cr1
      reports.zkck cr1=new gjmis.wzsys.reports.zkck ();
   conn=new SqlConnection (this.strcon );
   sqldap=new SqlDataAdapter ();
   selcmd=new SqlCommand();
   sqldap.SelectCommand=selcmd;
   selcmd.CommandText ="[zkckbd]";
   //调用存储过程
   selcmd.CommandType=CommandType.StoredProcedure;
   selcmd.Connection =conn;
   //接收通过网页传递过来的参数(即要在报表上要显示的字段)
   string []field=Regex.Unescape((Request["strcheck"])).Split(',');
   selcmd.Parameters.Add("@imonth",Convert.ToInt32 (Request["imonth"]));
   sqldap.Fill (sqldst,"zkck");
      //实例化报表中的文本对象
   TextObject[] txt=new TextObject[17];
           TextObject[] txt_1=new TextObject [17];
   TextObject[] txt_2=new TextObject [17];
   //实例化报表中的自定义公式
   FormulaFieldDefinition[] field_1=new FormulaFieldDefinition[17];
   FormulaFieldDefinition[] field_2=new FormulaFieldDefinition[17];
   //实例化报表中的自定义公式(对详细资料中的字段进行汇总)
   FormulaFieldDefinition[] tot_1=new FormulaFieldDefinition[18];
   FormulaFieldDefinition[] tot_2=new FormulaFieldDefinition[18];
   for(int i=1;i<=17;i++)
   {
     //为实例化的报表文本与报表中的文本对象相对应
    txt[i-1]=(TextObject)cr1.ReportDefinition.ReportObjects["txt"+Convert.ToString (i)];
    txt_1[i-1]=(TextObject)cr1.ReportDefinition.ReportObjects["txt_1"+Convert.ToString (i)];
    txt_2[i-1]=(TextObject)cr1.ReportDefinition.ReportObjects["txt_2"+Convert.ToString (i)];
    //为实例化的自定义公式与报表中的自定义公式相对应
    field_1[i-1]=cr1.DataDefinition.FormulaFields["field_1"+Convert.ToString (i)];
    field_2[i-1]=cr1.DataDefinition.FormulaFields["field_2"+Convert.ToString (i)];
    tot_1[i-1]=cr1.DataDefinition.FormulaFields["tot_1"+Convert.ToString (i)];
    tot_2[i-1]=cr1.DataDefinition.FormulaFields["tot_2"+Convert.ToString (i)];
    //初始设置所有报表中的所有对象为不显示
    cr1.ReportDefinition.ReportObjects["tot1"+Convert.ToString (i)+"1"].ObjectFormat .EnableSuppress = true;
           cr1.ReportDefinition.ReportObjects["tot2"+Convert.ToString (i)+"1"].ObjectFormat .EnableSuppress = true;
    cr1.ReportDefinition.ReportObjects["field1"+Convert.ToString (i)+"1"].ObjectFormat .EnableSuppress = true;
    cr1.ReportDefinition.ReportObjects["field2"+Convert.ToString (i)+"1"].ObjectFormat .EnableSuppress = true;
    cr1.ReportDefinition.ReportObjects["ln1"+Convert.ToString(i)].ObjectFormat .EnableSuppress =true;
    cr1.ReportDefinition.ReportObjects["ln2"+Convert.ToString(i)].ObjectFormat .EnableSuppress =true;
   }
   for(int i=0;i<field.Length-1;i++)
   {
     //为要显示的自定义的文本对象赋值(即同时给报表中的文本对象赋值)
    txt[i].Text=field[i].ToString();
    txt_1[i].Text="张数";
    txt_2[i].Text="金额";
    //为要显示的自定义的公式赋值(即同时给报表中的自定义公式赋值)
    field_1[i].Text="{zkckbd."+field[i] +"张数}";
    tot_1[i].Text="sum({zkckbd."+field[i] +"张数})";
              field_2[i].Text="{zkckbd."+field[i] +"}";
    tot_2[i].Text="sum({zkckbd."+field[i] +"})";
        //赋值过的对象(要在报表中显示的字段)让它们显示
    cr1.ReportDefinition.ReportObjects["field1"+Convert.ToString(i+1)+"1"].ObjectFormat.EnableSuppress=false;
    cr1.ReportDefinition.ReportObjects["field2"+Convert.ToString(i+1)+"1"].ObjectFormat.EnableSuppress=false;
    cr1.ReportDefinition.ReportObjects["tot1"+Convert.ToString (i+1)+"1"].ObjectFormat .EnableSuppress = false;
    cr1.ReportDefinition.ReportObjects["tot2"+Convert.ToString (i+1)+"1"].ObjectFormat .EnableSuppress = false;
    cr1.ReportDefinition.ReportObjects["ln1"+Convert.ToString(i+1)].ObjectFormat.EnableSuppress =false;
    cr1.ReportDefinition.ReportObjects["ln2"+Convert.ToString(i+1)].ObjectFormat.EnableSuppress =false;
   
   }
   tot_1[17]=cr1.DataDefinition.FormulaFields["tot_118"];
   tot_2[17]=cr1.DataDefinition.FormulaFields["tot_218"];
   //
           tot_1[17].Text ="sum({zkckbd.张数})";
   tot_2[17].Text ="sum({zkckbd.合计})";
   //对一些始终显示的文本的位置进行定位
//   cr1.ReportDefinition.ReportObjects["tot1181"].Left=cr1.ReportDefinition.ReportObjects["tot1181"].ObjectFormat.EnableSuppress =false;
//   cr1.ReportDefinition.ReportObjects["tot1181"].Left=cr1.ReportDefinition.ReportObjects["tot2181"].ObjectFormat.EnableSuppress =false;
   cr1.ReportDefinition.ReportObjects["tot1181"].Left=cr1.ReportDefinition.ReportObjects["tot1181"].Left-(18-field.Length)*1590;
   cr1.ReportDefinition.ReportObjects["tot2181"].Left=cr1.ReportDefinition.ReportObjects["tot2181"].Left-(18-field.Length)*1590;
   cr1.ReportDefinition.ReportObjects["fieldzs1"].Left=cr1.ReportDefinition.ReportObjects["fieldzs1"].Left-(18-field.Length)*1590;
   cr1.ReportDefinition.ReportObjects["fieldje1"].Left=cr1.ReportDefinition.ReportObjects["fieldje1"].Left-(18-field.Length)*1590;
   cr1.ReportDefinition.ReportObjects["txt_hj"].Left=cr1.ReportDefinition.ReportObjects["txt_hj"].Left-(18-field.Length)*1590;
   cr1.ReportDefinition.ReportObjects["txt_je"].Left=cr1.ReportDefinition.ReportObjects["txt_je"].Left-(18-field.Length)*1590;
   cr1.ReportDefinition.ReportObjects["txt_zs"].Left=cr1.ReportDefinition.ReportObjects["txt_zs"].Left-(18-field.Length)*1590;
   cr1.ReportDefinition.ReportObjects["txtzbr"].Left=cr1.ReportDefinition.ReportObjects["txt_zs"].Left ;                                           cr1.ReportDefinition.ReportObjects["txt_title"].Width=1845+cr1.ReportDefinition.ReportObjects["txt1"].Width*(field.Length);
   //文本及字段的移动成功(下面是对一些线作出必要的调整) 
   lbltmp.Text="<script>var bl;var kd; var zs;var je;var t_kd; bl=parseInt(ln0.style.left);kd=1590*bl/1845;t_kd=1740*bl/1845;zs=470*bl/1845; je=1120*bl/1845; ln_hj1.style.left=bl+zs+"+(field.Length-1)+"*kd;ln_hj2.style.left=bl+"+(field.Length)+"*kd;lntop1.style.width=t_kd+"+(field.Length)+"*kd;lntop2.style.width="+(field.Length)+"*kd;lntop3.style.width=t_kd+"+(field.Length)+"*kd;lntop5.style.width=t_kd+"+(field.Length)+"*kd;for(var i=0;i<"+sqldst.Tables[0].Rows.Count+";i++)lntop4[i].style.width=t_kd+"+(field.Length)+"*kd;</script>";

   cr1.SetDataSource(this.sqldst.Tables["zkck"]);
   CrystalReportViewer1.ReportSource =cr1;
  }

mybatis+mysql动态字段添删改小结

项目即将结束,现总结mybatis动态
  • qqtt789632147
  • qqtt789632147
  • 2014年11月17日 11:29
  • 1041

js动态添加行和列

js动态添加行和列
  • zhangxiaomin1992
  • zhangxiaomin1992
  • 2015年12月08日 17:25
  • 380

平台业务表字段设置

在度量快速开发平台的业务表管理界面中有一个“字段设置”功能按钮,点击进入后如下图所示: 我们看到“字段设置”界面与数据库表创建界面类似;除了不能新建字段外,每个字段都...
  • leejunki822
  • leejunki822
  • 2016年06月17日 15:34
  • 177

动态增加数据库表字段

动态增加数据库表字段 预留足够的空白字段,运行时作动态影射 用xml格式保存在单字段里 改列为行,用另外一个表存放定制字段...
  • a815899718
  • a815899718
  • 2016年01月09日 23:44
  • 5556

【Solr 5.1系列】Apache Solr 5.1参考指南(二)动态字段

*****小白一枚,若您有高效的翻译工具,麻烦在评论中推荐给我,万分感谢!***** *****本人技术、翻译水平有限,此译文仅做参考!翻译时没有严格遵循原文思路和表达方式,见谅!***** 英文原文...
  • supertojob
  • supertojob
  • 2015年05月23日 10:41
  • 1395

Python SqlAlchemy动态添加数据表字段

SqlAlchemy版本:1.1.11 操作系统:Windows Python:3.5 欢迎加入学习交流QQ群:657341423我们知道使用SqlAlchemy创建类来映射数据表,类属性...
  • HuangZhang_123
  • HuangZhang_123
  • 2017年11月23日 17:14
  • 264

下拉框动态添加字段

直奔主题,需求是这样的-下拉框“单位类别”中的数据是从数据库中查到的。如下图: 为了用户查看数据方便需要在下拉框选项中加上“全部”选项,这里的下拉框选项用的是easyUI 的控件中。 easyUI...
  • u013036959
  • u013036959
  • 2016年01月30日 10:56
  • 750

Android--数据库升级,插入新字段

转自:http://blog.csdn.net/leehong2005/article/details/9128501 请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构...
  • xu_song
  • xu_song
  • 2015年11月05日 09:18
  • 4049

solr 对数据添加索引

solr对单条的数据添加,无需多讲,只需要按步骤来就可以了 1.单条的添加索引,通过代码   // 添加一条数据     public static void addDoc() throws So...
  • MeiX505
  • MeiX505
  • 2017年06月14日 16:55
  • 523

数据库字段动态扩展设计

最近讨论数据库有关产品方案的项目自动扩展问题,即每个方案都有多个项目,而每个方案的项目或多或少,也有不一样的,方案以后也坑能随之增加新的项目。因此需要数据库设计一套可扩展的方案。...
  • kk185800961
  • kk185800961
  • 2016年11月18日 02:16
  • 6949
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在水晶报表中动态的添加自己所需要的的字段的代码
举报原因:
原因补充:

(最多只允许输入30个字)