在水晶报表中如何设置一个参数,用java数组赋值代码如何取得这个参数并给他赋值,参数设置最好能给截图,代码有注释

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Crystal+Reports+for+Eclipse--水晶报表eclipse插件
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口水晶报表技术(3)——.NET 2005 中动态水晶报表的实现
.NET 2005 中动态水晶报表的实现&?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />简介本程序演示如何动态地从数据库读入数据,并应用到水晶报表中。通过使用本程序,我们可以在应用程序的运行时刻定制水晶报表,限定只有那些被指定的字段(特定表的列)才显示在报表中。背景这一问题起因于一些 SLIIT 的学生询问我该如何使用 C# 2.0 动态地产生水晶报表。为了解决这个问题,我试着搜索了很多论坛和网站,但是很不幸,我没能找到任何的解决办法。在一些论坛中有人说,在 .NET 2005 中不可能创建动态的水晶报表。后来,我找到了解决办法。代码使用1.创建一个 C# 项目(本例中项目名称为app5),或添加窗体到已有项目中。 现在,你可以添加与表的字段相对应的复选框到窗体中,这些字段将被显示在水晶报表和水晶报表查看器(CrystalReportViewer)控件中。 在本例中,我已经使用 Access 创建了一个名为 db1.mdb 的数据库,以及一个名为 Customer 的表。 在 Customer 表中包含如下 5 个字段:Code、 FirstName、LastName、Address、Phone2. 在解决方案资源管理器中使用“添加—新建项”功能,添加一个数据集(.xsd 文件, 本例中数据集名称为DataSet1) 到项目中,然后添加一个数据表(DataTable,本例中数据表名称为Customer) 到数据集中。 添加列到数据表(DataTable) 中,并命名为 Column1, Column2 … 等等。列的数目取决于将有多少列被显示在水晶报表中。 3.添加一个水晶报表到项目中(译者注:在解决方案资源管理器中使用“添加—新建项”功能添加),使用报表向导,先选择水晶报表的数据源(本例为“项目数据 — ADO.NET 数据集 — app5.DataSet&?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1”),并选定要在水晶报表中显示的表(本例为 Customer);单击[下一步]按钮。 接下来在向导中选择要在报表中显示的字段,如下图所示。在单击向导的[完成]按钮后,报表就会自动生成。在报表的 Section2(页眉带区)中,删除下列文本对象(即报表列的名称或标题):Column1, Column2...Column54. 现在在字段资源管理器中添加如下参数字段(parameter fields): col1, col2… col5 (参数字段的数目应该等于显示在水晶报表中的列的数目),并把它们放置到Section2 (页眉带区)中,与对应的报表列对齐5. 添加下列方法到窗体中,以便于根据用户选定的报表列,创建 SQL SELECT 查询,并赋值到水晶报表的参数字段。 // /// /// 本方法用于: /// 1. 根据用户选定的字段名,创建 SELECT 查询/// 2. 与水晶报表中的参数字段相对应,创建参数并赋值给它们/// 说明: 根据用户的选择,这些参数用于显示水晶报表中的列名称(标题)/// /// private string CreateSelectQueryAndParameters(){ReportDocument reportDParameterFields paramFParameterField paramFParameterDiscreteValue paramDiscreteVreportDocument = new ReportDocument();paramFields = new ParameterFields();string query = "SELECT ";int columnNo = 0; if (chbCode.Checked){columnNo++;query = query.Insert(query.Length, "Code as Column" + columnNo.ToString());paramField = new ParameterField();paramField.Name = "col" + columnNo.ToString();paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = "Customer Code";paramField.CurrentValues.Add(paramDiscreteValue);//把 paramField 添加到 paramFields 中paramFields.Add(paramField);}if (chbFirstName.Checked){columnNo++;if (query.Contains("Column")){query = query.Insert(query.Length, ", ");}query = query.Insert(query.Length, "FirstName as Column" + columnNo.ToString());paramField = new ParameterField();paramField.Name = "col" + columnNo.ToString();paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = "First Name";paramField.CurrentValues.Add(paramDiscreteValue);//把 paramField 添加到 paramFieldsparamFields.Add(paramField);}if (chbLastName.Checked){columnNo++; //确定列的数目if (query.Contains("Column")){query = query.Insert(query.Length, ", ");}query = query.Insert(query.Length, "LastName as Column" + columnNo.ToString());paramField = new ParameterField();paramField.Name = "col" + columnNo.ToString();paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = "Last Name";paramField.CurrentValues.Add(paramDiscreteValue);//把 paramField 添加到 paramFieldsparamFields.Add(paramField);}if (chbAddress.Checked){columnNo++;if (query.Contains("Column")){query = query.Insert(query.Length, ", ");}query = query.Insert(query.Length, "Address as Column" + columnNo.ToString());paramField = new ParameterField();paramField.Name = "col" + columnNo.ToString();paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = "Address";paramField.CurrentValues.Add(paramDiscreteValue);//把 paramField 添加到 paramFieldsparamFields.Add(paramField);}if (chbPhone.Checked){columnNo++;if (query.Contains("Column")){query = query.Insert(query.Length, ", ");}query = query.Insert(query.Length, "Phone as Column" + columnNo.ToString());paramField = new ParameterField();paramField.Name = "col" + columnNo.ToString();paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = "Phone";paramField.CurrentValues.Add(paramDiscreteValue);//把 paramField 添加到 paramFieldsparamFields.Add(paramField);}//如果还有其他参数,为它们赋空值(empty value)for (int i = columnNo; i & 5; i++){columnNo++;paramField = new ParameterField();paramField.Name = "col" + columnNo.ToString();paramDiscreteValue = new ParameterDiscreteValue();paramDiscreteValue.Value = "";paramField.CurrentValues.Add(paramDiscreteValue);//把 paramField 添加到 paramFieldsparamFields.Add(paramField);}crystalReportViewer1.ParameterFieldInfo = paramFquery += " FROM Customer" ;}// 6. 添加下列方法到预览报表按钮的 click 事件代码中,以便于在用户按下此按钮时显示报表 using Susing System.Collections.GponentMusing System.Dusing System.Dusing System.Tusing System.Windows.Fusing System.Data.OleDb;using CrystalDecisions.CrystalReports.Eusing CrystalDecisions.ReportSusing CrystalDecisions.Susing CrystalDecisions.Windows.Fnamespace app5{public partial class Form1 : Form{CrystalReport1 objRpublic Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){objRpt = new CrystalReport1();string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|//db1.mdb"; //取 Select 查询字符串,并添加参数到水晶报表string query = CreateSelectQueryAndParameters();//如果没有选定项,则退出if (!query.Contains("Column")){MessageBox.Show("No selection to display!");}try{OleDbConnection Conn = new OleDbConnection(connString);OleDbDataAdapter adepter = new OleDbDataAdapter(query, connString);DataSet1 Ds = new DataSet1();adepter.Fill(Ds, "Customer");objRpt.SetDataSource(Ds);crystalReportViewer1.ReportSource = objR}catch (OleDbException oleEx){MessageBox.Show(oleEx.Message);}catch (Exception Ex){MessageBox.Show(Ex.Message);}}
最新教程周点击榜
微信扫一扫您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
JAVA报表生系统.doc85页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:100 &&
你可能关注的文档:
··········
··········
JAVA报表生成系统
现在是信息社会,各种信息都需要处理并直观展现,如股票,物价等信息都需要通过数据报表来展现、分析,因此高质量报表软件系统具有重要的实际意义。 本论文课题研究探索了报表系统的开发方法与技术,综合应用Eclipse、 JAVA 、JDBC、SWT/Jface、 RCP、XML、 CSS、DOM4J,IText,POI等先进技术,开发了基于WEB环境运行的报表设计器,实现了报表设计、模板生成、报表编辑,报表发布等基本功能,为进一步开发实用的报表系统奠定了基础。
关键词:报表,SWT/Jface,Eclipse,XML,B/S,RCP
Now is the information society, all kinds of information need to be addressed and visual display, such as stock ,prices and other information needed to demonstrate through data reports, analysis, the statements of high-quality software system has important practical significance.
This paper statements subject to study and explore the system development methods and technology, comprehensive application of Eclipse, JAVA, JDBC, SWT / Jface, RCP, XML, CSS, DOM4J, IText, POI, and other advanced technology, the development of the operating environment based on the statements WEB design , Achieved a report design, template generation, editing statements, issued statements of such basic functions, for the further development of practical system laid the foundation for statements.
KEY WORDS: Report,SWT/JFace、Eclipse、XML、B/S、RCP 目 录
第一章 概述 1
1.1 课题背景与意义 1
1.2 报表系统发展概况 2
第二章 开发技术及环境 4
2.1软件环境 4
2.2 主要开发技术 4
第三章 系统设计 6
3.1系统体系结构 6
3.2 软件模块结构 7
3.3数据源与系统文件结构 8
3.3.1 系统数据源 8
3.3.2 系统文件结构 9
3.3.3 报表显示部分文件 13
第四章 系统实现 14
4.1主要实现算法 14
4.1.1新建报表流程图 14
新建数据源流
正在加载中,请稍后...1、下载安装水晶报表 for vs2010 :/akdlm/cr4vs2010/CRforVS_13_0.exe
2、工具箱新建选项卡&水晶报表&,在【WPF组件】选择卡下添加水晶报表for vs2010提供的控件(程序集都以SAPBusinessObjects开头)。
3、wpf项目所用的&目标框架&必须改成&.Net Framework4&,不能是4 Client。要给app.config节点的startup增加一个属性:useLegacyV2RuntimeActivationPolicy="true", 否则运行会报异常FileNotFoundException
4、项目中,新建项&Reporting&&CrystalReport,比如命名为MyCrystalReport1.rpt,接着对报表进行设计
1)&报表头&是整个报表的头部(如果多页的话只在第一页显示),&页眉&是每页头部显示的内容,&页脚&是每页尾部显示的内容,&详细资料&是每一条数据的循环显示(类似于DataGrid、ListBox),&报表尾&用来在报表的尾部显示总和、平均值等汇总信息。
2)&工具箱&中可以拖放&文本对象&显示固定文本,&线条对象&和&框对象&画线或者画框。
3)参数字段:在&参数字段&上点右键,选择&新建&,给参数取名字和类型,然后把参数字段拖放到报表上。在代码中通过SetParameterValue设定参数的值,注意放到SetDataSource之后,否则会弹出输入参数值的对话框
4)&特殊字段&可以拖放打印日期、页码、总页数等
5)其他.Net资料和文章可以从传智播客.Net培训学院网站下载
5、在项目中把Model类和取数据的方法建好,然后项目要保证编译通过
6、在&数据库字段&上点右键选择&数据库专家&,在对话框中选择&项目数据&&&.Net objects&,选中Model类(如果选不到类,说明没编译OK),然后就可以在左边的&数据库字段&中拖放字段到&详细资料&中,会在&页眉&中自动增加对应字段头,可以在&页面&的头部字段中点右键&编辑文本对象&把显示改为中文。
7、增加&总值&、&平均值&之类,在&字段资源管理器&的&运行总计字段&新建,在对话框中选择字段和汇总类型
公式字段,在&公式字段&上点右键&新建&,选择字段和编辑公式,然后就可以用了。
在窗口中放置一个CrystalReportsViewer控件(不要设定Margin和width、height,会自动占全屏),例如名字为CrystalReportsViewer1
执行方法获取数据,然后把数据设置为数据源(MyCrystalReport1是rpt文件的类名)
MyCrystalReport1 rpt = new MyCrystalReport1();
rpt.SetDataSource(new PersonDAL().ListAll());
crystalReportsViewer1.ViewerCore.ReportSource =&
参数的问题: rpt.SetParameterValue设定参数的值,注意放到rpt.SetDataSource之后,否则会弹出输入参数值的对话框
Views(...) Comments()最近公司用报表有个需求是做一个动态的表头 有点难度了 搜了好久 在阿泰的文章里找到了答案如果实现这个动态列表呢水晶报表里有离散值设置&&&&&通过公式可以来解决这个问题 通过参数来解决表头问题&&
& //使用报表对象加载报表&&&&&&&&&&& ReportDocument myReport = new ReportDocument();&&&&&&&&&&& string reportPath = Application.StartupPath + "/cp1.rpt";// Server.MapPath("~/app_data/crystalreport1.rpt");&&&&&&&&&&& myReport.Load(reportPath);
&&&&&&&&&&& DataDefinition dataDefinition = myReport.DataD&& string[] Text4formularFields = new string[] { "{Employee.EmployeeID}", "{Employee.EmployeeName}", "{Employee.ProductName}" };&&&&&&&&&&& FormulaFieldDefinitions formularFields = dataDefinition.FormulaF&&&&&&&&&&& formularFields[0].Text = Text4formularFields[0];&&&&&&&&&&& formularFields[1].Text = Text4formularFields[1];&&&&&&&&&&& formularFields[2].Text = Text4formularFields[2];这地方可以搞个循环来解决以下是加参数 有点乱
&private ParameterFields GetParameterFields()&&&&&&& {&&&&&&&&&&& ParameterFields fields = new ParameterFields();
&&&&&&&&&&& //单位、部门、人员、日期范围参数&&&&&&&&&&& fields.Add(this.CreateParameterField("title", "单位"));&&&&&&&&&&& fields.Add(this.CreateParameterField("x1", "编号"));&&&&&&&&&&& fields.Add(this.CreateParameterField("x2", "员工名"));&&&&&&&&&&& fields.Add(this.CreateParameterField("x3", "产品名称"));&&&&&&&&&&& //fields.Add(this.CreateParameterField("x2", "1"));&&&&&&&&&&& //fields.Add(this.CreateParameterField("x3", "0"));&&&&&&&&&&& //fields.Add(this.CreateParameterField("@empname", "人员"));&&&&&&&&&&& //fields.Add(this.CreateParameterField("@daterange", "日期"));
&&&&&&&&&&& //返回&&&&&&&&&&&&&&&&&& }&&&&&&& private ParameterField CreateParameterField(string FieldName, object FieldValue)&&&&&&& {&&&&&&&&&&& ParameterField field = new ParameterField();&&&&&&&&&&& ParameterDiscreteValue pvalue = new ParameterDiscreteValue();
&&&&&&&&&&& &&&&&&&&&&& pvalue.Value = FieldV&&&&&&&&&&& field.Name = FieldN&&&&&&&&&&& field.CurrentValues.Add(pvalue);&&&&&&&&&&& field.AllowCustomValues =
&&&&&&&&&&& //返回参数字段&&&&&&&&&&&&&&&&&& }
阅读排行榜
评论排行榜}

我要回帖

更多关于 java数组赋值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信