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

JAVA水晶报表从环境搭建到创建动态水晶报表 首先第一步贴上项目截图(少了一个rpt_report文件夹,因为是网上的所以这里没加,各位可以加下):声明该项目是网上下载。(比较简单,纯属偷懒,有现成环境)。可以自己修改,需要注意的就是蓝色标记的地方。报表存放的位置可以根据配置文件配置存放,下面有介绍。 第一:crystalreportviewers11这个文件夹可以通过官方网站中软件中获取,软件名称为(CR2008_SP1_55225) 阅读详情

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

//首先实例化一个报表(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;
  }

水晶报表 动态批量打印本地图片 目的:从数据库中得到本地图片的路径,再将其打印到报表上,每一个ID查询出来的信息(包括多幅图片)对应报表中的一页环境:VS2005+自带水晶报表参考文献:http://babyt.cnblogs.com/archive/2005/04/21/142789.html 阿泰BLOG遇到的问题:http://topic.youkuaiyun.com/u/20090925/16/1cf16b4d-e7a4 阅读详情

相关推荐

asp.net水晶报表参数字段在代码中赋值的方法

主要介绍了asp.net水晶报表参数字段在代码中赋值的方法,实例分析了asp.net中水晶报表的使用技巧,需要的朋友可以参考下

水晶报表参数字段在代码中赋值

  //   声明将参数传递给查看器控件所需的变量。  ParameterFields   paramFields   =   new   ParameterFields   ();     ParameterField   paramField   =   new   ParameterField   ();     ParameterDiscreteValue   discreteVal   

sufeinet 3799

ROS下UR+Realsense相机进行手眼标定

手眼标定主要是用来确定相机坐标系和机械臂坐标系之间的转换关系,从而实现后续的抓取等任务。

weixin_42157689的博客 7573

水晶报表设计(四)----离散值、给水晶报表中多表赋值——转自肖锰的专栏

<br />一、离散值。 在水晶报表的设计中,在有些情况下会遇到从界面向水晶报表传值的情况,也会有在格式化显示的情况下使用离散值。首先先看一下如何使用离散值。 1、创建离散值 在【参数字段管理器】中选择【参数字段】,并右击【新建】。这时会出现创建参数字段对话框。在默认情况下是选中【离散值】的。填写上名称(即参数名称,中英文都可),提示文本(根据实际情况进行填写,在没有必要的情况下可以不填写),选择好值类型。点击【确定】即可。这样在【参数字段】下就出现了我们创建的参数(假设我们创

大巧不工 1869

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)

SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)Step 1 软件安装Step 2 硬件获取Step 3 开始从头到脚建一个工程Step 3.1 新建一个工程 从0开始学习FPGA,最好的办法就是先建一个最简单的模块,并且跑起来,然后再慢慢展开。下面这个例子是要按照一定的周期点亮核心板上的一个led。 Step 1 软件安装 这个从0开始学习是用的xilinx的SPARTAN6。SPARTAN6集成开发环境用ISE,不能用Vivado,各自对应的版本不同。安装

xfacexx点点记录 5516

systemView的安装使用

systemView的安装使用

qq_33712422的博客 3981

水晶报表变量赋值

水晶报表的赋值问题 经常需要给水晶报表赋值,反复出错,感觉都有点像碰运气,这种方法可以,那种就不可以,每次都会被磨蹭很久,这次记录下来,至少有一个可行的方法 创建参数字段 注意设置参数的类型 然后将参数拖动至rpt界面,直接拖,或者拖文本框,文本框绑定字段。都可以 然后后台代码 string Signing_Unit = o.Signing_unit;//声明数据库中的变量 a.SetParameterValue("Signing_Unit", strSigning_Unit); //前一个值是

xinqin727的博客 567

XPe开发初体验(一)XPe概述

XP Embedded是微软Windows Embedded产品线中非常重要的一环,不过比起大名鼎鼎的Windows Embedded CE,XPe显得过于低调了。在接下来的一段时间里,我希望能够用六篇的篇幅来描述一下XPe的整个开发过程。这个系列文章主要是针对有Windows编程经验,但是没有嵌入式开发经验的开发者,提供一些概念和开发过程的初步介绍。XP Embedded是一个基于Windo

aawolf = new Mobile.MVP 1万+

如何在水晶报表中动态添加字段

问题:水晶报表中,因为数据源的字段是不固定的,可否在运行时动态添加字段,就象在winform中动态添加控件一样?(更新:2003-11-05)——————————————————————————————————————解决方案:用“公式字段”1、根据字段的最大数量,定义若干个“公式字段”,FormulaFeild1、FormulaFeild2……,公式为空;2、把“公式字段”按顺序放在“详细资料”

haibodotnet的专栏 2万+

fins协议握手信号服务器响应,欧姆龙FinsTCP与FinsUDP协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析附含报文模拟器等...

前言 – Fins欧姆龙这个协议网上极少有相关的模拟器、Tcp的这一块倒是有但是Udp的基本都是不可用1、 Fins协议结构也很简单 协议分为两种 一种tcp一种udp2、 Tcp比Udp的报文会多一层tcp的head头部3、 Udp回应报文在Wireshark中是解析不到(因为他按照UDP的格式去解那指定是解不到)好长时间没有更新过博客了、也比较懒= = 。一、Read(TCP)发包那么这个就很...

weixin_32491317的博客 4442

计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题

计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题

weixin_45735391的博客 3万+

水晶报表10 rdc 动态生成水晶报表 添加删除分组

水晶报表10 rdc 动态生成水晶报表 添加删除分组The information in the article refers to:Seagate Crystal Reports 8 Applies to: Reported version onlyReport Creation API Adding and deleting groups in a reportSynopsisThis art

闯荡者的专栏 2350

CSP - 2024 普及组初赛试题及解析

CSP - 2024 普及组初赛试题及解析

QD_Jason的博客 2911

在水晶报表中实现任意选择指定字段显示

  本文的C#改进版本请参见:http://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html 很多次被问到如下问题: 水晶报表能否做到由客户选择要显示的字段进行自定义显示? 我也迷惑了好久,后来还是仔细看了一海波的文章,终于有点眉目 如何在水晶报表中动态添加字段 http://blog.youkuaiyun.com/h...

weixin_33795743的博客 206

[系统安全] 十一.那些年的熊猫烧香及PE病毒行为机理分析

如果你想成为一名逆向分析或恶意代码检测工程师,或者对系统安全非常感兴趣,就必须要认真分析一些恶意样本。熊猫烧香病毒就是一款非常具有代表性的病毒,当年造成了非常大的影响,并且也有一定技术手段。本文将详细讲解熊猫烧香的行为机理,并通过软件对其功能行为进行分析,这将有助于我们学习逆向分析和反病毒工作。后续作者还将对其进行逆向调试,以及WannaCry勒索蠕虫、各种恶意样本及木马的分析。基础性文章,希望您喜欢!同时,本文部分实验参考姜晔老师的视频分析,真的非常佩服和值得去学习的一位老师。技术路上哪有享乐,为了提升安

杨秀璋的专栏 7327

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

水晶报表的使用:

水晶报表的使用:  在设计好水晶报表后添加到VB的设计环境里,如图是设计好的云南昆石高速公路报表之一    然后再Param2字段上点击右健,选择格式字段,弹出格式化编辑器的对话框,注意Param2字段是整形数,我们要把它格式化成不同的字符串。点击完毕出现设计公式工作室,如此继续对Param2进行编辑: 代码如下:      if {命令.EventTypeId}=53 and {命令.Param

qianbo_0423的专栏 qq:418511899 18710866728 1575

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

c# 水晶报表 行不够时自动补充行(学习记录)

制作水晶报表的时候如果需要分组后固定行数并且如果行数不足时自动进行补足的情况下: 首先建立两个公式字段,分别放到页眉和详细资料处,设为不可见 字段1: whileprintingrecords; global numbervar Row; Row:=0; 字段2 whileprintingrecords; global numbervar Row; Row:=Row+1; 定义了两个字段后将字段1放在页眉处进行字段初始化,然后字段2放在详细资料处进行计数 然后进行固定行数分

weixin_39144584的博客 707

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

在水晶报表中动态的添加自己所需要的的字段  由于常遇到一些比较大的报表,其中的字段有的需要,有的不需要,有的这次需要,下次可能就不需要,不可能把所有的可能性都考虑在内做报表,所以就需要动态的添加字段,以实现动态报表。   做动态报表主要用的是水晶报表中的自定义公式,首先添加N个自定义公式在报表中(其中N为字段最多可能的数),并且在设计报表中要设置好线与线之间的距离,还有文本对象的宽度,自定义公

johncools的博客 1364

水晶报表动态加载字段

 转:水晶报表中动态加载报表字段using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;usin

Cherish20的专栏 1238
上一篇: ASP.NET Popup Control的学习
下一篇: 在水晶报表中动态的添加自己所需要的的字段
bccu
博客等级 码龄24年 6粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值