ActiveReports 在页面报表动态绑定数据源
VBA中的图表动态更新与数据源切换技巧
VBA中的图表动态更新与数据源切换技巧在VBA中,图表的动态更新和数据源切换是非常常见且有用的技巧。
通过使用这些技巧,您可以方便地更新和切换图表的数据,使您的工作更加高效和灵活。
本文将介绍VBA中图表动态更新和数据源切换的技巧。
一、图表的动态更新在很多情况下,我们需要根据不同的数据源来更新图表。
VBA提供了一些方法来实现图表的动态更新,使得图表可以根据数据源的变化自动更新。
1. 使用宏录制功能VBA提供了宏录制功能,您可以使用该功能记录一系列的操作,并自动执行这些操作。
您可以利用宏录制功能来实现图表的动态更新。
下面是一个示例代码:```Sub UpdateChart()'选择要更新的图表范围Dim cht As ChartSet cht =ThisWorkbook.Sheets("Sheet1").ChartObjects("Chart1").Chart'选择要更新的数据源范围Dim dataRange As RangeSet dataRange = ThisWorkbook.Sheets("Sheet2").Range("A1:B10")'更新图表的数据源cht.SetSourceData dataRangeEnd Sub```在上面的代码中,您需要修改Sheet1、Chart1、Sheet2和A1:B10为您实际使用的工作表名和数据范围。
然后,您可以使用宏录制功能执行一次图表更新的操作,并将录制的代码粘贴到VBA编辑器中。
这样,每次运行这个宏,图表的数据都会根据数据源的变化而更新。
2. 使用数据透视表另一种实现图表动态更新的方法是使用数据透视表。
数据透视表是一种可以根据数据源的变化自动更新的报表工具。
您可以通过VBA代码来刷新数据透视表,并将其作为图表的数据源。
以下是一个示例代码:```Sub UpdateChart()'刷新数据透视表ThisWorkbook.Sheets("Sheet2").PivotTables("PivotTable1").PivotCache.Re fresh'选择要更新的图表范围Dim cht As ChartSet cht =ThisWorkbook.Sheets("Sheet1").ChartObjects("Chart1").Chart'选择数据透视表的源数据范围Dim dataRange As RangeSet dataRange =ThisWorkbook.Sheets("Sheet2").PivotTables("PivotTable1").TableRange1'更新图表的数据源cht.SetSourceData dataRangeEnd Sub```在上面的代码中,您需要修改Sheet2、PivotTable1、Sheet1和Chart1为您实际使用的工作表和数据透视表名称。
VBA中的图表联动与动态交互技巧
VBA中的图表联动与动态交互技巧图表联动与动态交互是数据分析和可视化过程中的重要环节。
在VBA(Visual Basic for Applications)中,我们可以通过编写代码实现图表之间的联动和交互,进一步提升图表的可视化效果和数据分析功能。
本文将介绍一些VBA 中实现图表联动和动态交互的技巧。
一、图表联动图表联动是指通过改变一个图表的相关数据,使其他图表相应地改变,以达到图表之间的联动效果。
在VBA中,我们可以利用事件和宏来实现图表联动。
1. 利用事件实现图表联动VBA中的事件是指在特定操作发生时自动触发的动作。
我们可以利用图表对象的事件来实现图表联动。
例如,在Excel中选中一张图表,右键点击并选择"代码查看",然后在代码窗口的下拉列表中选择"图表",我们可以看到该图表对象的一些事件,如`Select`、`DoubleClick`、`MouseDown`等。
通过编写事件的对应代码,我们可以在特定操作发生时实现图表之间的联动。
2. 利用宏实现图表联动宏是一组VBA代码的集合,可以通过宏来实现图表联动。
在Excel中,我们可以录制宏来生成操作图表的VBA代码,然后将这些代码用于其他图表,从而实现图表之间的联动。
二、动态交互动态交互是指图表中的元素根据用户的操作而动态变化。
例如,我们可以通过单击某个图表上的某个数据点,让其他图表显示与该数据点相关的数据。
在VBA中,我们可以通过鼠标事件和交互式控件来实现图表的动态交互。
1. 利用鼠标事件实现动态交互VBA中的鼠标事件是指在鼠标的特定操作发生时自动触发的动作。
例如,在Excel中选中一张图表,右键点击并选择"代码查看",然后在代码窗口的下拉列表中选择"图表",我们可以看到该图表对象的一些鼠标事件,如`MouseMove`、`MouseClick`等。
通过编写鼠标事件的对应代码,我们可以实现图表的动态交互效果。
C#报表控件-ActiveReports常见错误汇总及解决方法
C#报表控件-ActiveReports常见错误汇总及解决⽅法本贴旨在构建⼀个错误速查⼿册(上百条吧),如果遇到同样的错误问题,⼤家就不⽤毫⽆头绪了,可以对照帖⼦的错误描述和解决⽅法,先⾃我排检。
(本贴会及时更新,更欢迎⼤家补充~提供有效的错误描述和解决⽅法,会奖励⾼额⾦币啦~~)1. FlashViewer 错误代码#2032原因1:项⽬中未加载Grapecity.ActiveReports.Flash.v10.Resources.swf 和Grapecity.ActiveReports.Flash.v9.swf ⽂件解决⽅法:在路径下 C:\Program Files (x86)\GrapeCity\ActiveReports10\Deployment\Flash,找到这两个⽂件,添加到⽹页的同⼀⽬录下。
原因2:部署时,报这个错误是因为引⽤GrapeCity.ActiveReports相关的dll⽂件的版本号不对或与WebConfig⽂件的不⼀致。
解决⽅法:将现有项⽬中所有的GrapeCity相关的dll⽂件移除,在VS中,从路径下C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 10 将DLL⽂件添加到项⽬中(如果不知道添加那⼏个,可对照着WebConfig⽂件添加)2. RDL报表预览时报⽆限空⽩页错误原因:报表设计⽅式问题解决⽅法:修改报表设计。
3. LoadStreamIoError.原因:数据部分出了问题4. 数据呈现没有问题,导出数据Word,图⽚,PDF没有问题,只有导出Excel报404错误原因:项⽬中缺少DocumentFormat.OpenXml dll⽂件解决⽅法:需要⼿动引⽤到项⽬中,在AR的安装⽬录:C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 105. 程序部署后报报License错误,“License for the PageReport cannot be found.”原因:License.licx⽂件缺少PageReport的声明项。
ActiveReports使用指南--创建年度报表
ActiveReports使用指南--创建年度报表用户可以在ActiveReports的Sample中找到Annual Report,大家可以通过运行此用例,配合以下文字介绍,学习到如何使用子报表,区域属性,以及图表控件来快速的建立一个年度报表。
以下按照Solution Explorer窗口里的文件逐个介绍。
1. 年度报表(主报表)以下介绍的是主报表的建立,此年度报表分为三页,缩影如下图。
a) 报表页眉区域(第一,二页)在这次介绍的示例中,我们的报表页眉区域分为两页。
这里通过使用PageBreak控件将ReportHeader分成两页,并且将ReportHeader区域的NewPage属性设置为After. 另外,这个报表会告诉用户可以使用Label的BackColor和ForeColor属性建立需要区域视觉分辨性强的报表。
这个报表的ReportHeader区域安插了SubReport控件,在ReportStart事件里,使用程序编译连接至ProductSalesByCategory报表。
建议在ReportStart事件中初始化报表,而并非是在每个区域的Format事件。
CSharp:private void AnnualReport_ReportStart(object sender,System.EventArgseArgs){//Set subreport control's Report property to a new report instance this.srptTop10.Report = new Top10();this.srptProductSales.Report = new ProductSalesByCategory();}VB:Private Sub AnnualReport_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ReportStart'Set subreport control's Report property to a new report instance Me.srptTop10.Report = New Top10()Me.srptProductSales.Report = New ProductSalesByCategory()End SubReportHeader区域右半部分黄色背景的,使用的是Shape控件,通过BackColor 属性设置颜色。
sqlserver reporting services 用法
sqlserver reporting services 用法SQL Server Reporting Services(SSRS)是微软的一款企业级报表生成和分发工具。
它允许用户设计、管理和生成各种类型的报表,包括表格、图表和多媒体报告。
SSRS被广泛应用于各种行业和组织,帮助用户快速、准确地获取关键业务数据并进行分析。
本文将详细介绍SSRS的用法,包括设计报表、数据源配置、报表部署和分发等方面。
第一步:报表设计SSRS提供了一个强大的报表设计环境,用户可以在该环境中创建和编辑报表。
在设计报表之前,需要先确定报表的目的和内容,并收集所需的数据。
以下是一些设计报表的基本步骤:1. 创建新的报表项目:在SSRS中,可以创建一个新的报表项目,并指定报表的名称和位置。
2. 添加数据源:在报表设计之前,需要配置报表使用的数据源。
可以选择从SQL Server数据库、Excel文件、Oracle数据库或其他数据源中获取数据。
配置数据源时,需要提供相应的连接信息和认证方式。
3. 创建数据集:数据集是报表所需数据的来源。
可以使用查询语言(如SQL)来定义数据集所需的数据。
在创建数据集时,需要指定数据源和查询语句。
4. 设计报表布局:在报表设计界面,可以添加表格、图表、文本框和其他控件来展示数据。
可以通过拖拽和调整控件的位置和大小来设计报表的布局。
5. 设置数据绑定:将数据源和数据集与报表中的控件进行绑定,以便在报表中显示相应的数据。
可以使用表达式和函数来处理数据和计算统计信息。
6. 格式化报表:可以调整报表的样式、颜色和字体等属性,使其符合用户需求和企业品牌。
第二步:数据源配置在设计报表时,需要配置报表使用的数据源。
以下是一些配置数据源的基本步骤:1. 添加数据源:在报表项目中,选择“数据”选项,并添加一个数据源。
可以选择数据库、共享数据源或其他类型的数据源。
2. 配置连接信息:为报表指定连接到数据源的信息,包括服务器名称、数据库名称和认证方式等。
帆软绑定参数
帆软绑定参数帆软是一款功能强大的报表工具,它可以帮助用户快速地生成各种报表。
在制作报表时,我们经常会遇到需要绑定参数的情况。
此时,帆软的“帆软绑定参数”功能就非常有用了。
一、参数的概念在制作报表时,参数是非常常用的一种元素。
参数可以理解为我们要查询的信息的“过滤器”。
通过设置参数,我们可以筛选出符合我们要求的数据进行展示。
同时,参数还可以为我们的报表添加一些动态化的特效,使报表更加生动有趣。
二、创建并绑定参数在使用帆软绑定参数时,首先需要在报表设计界面创建参数。
具体步骤如下:1. 点击“参数设置”按钮,在弹出的对话框中点击“新建参数”按钮2. 在新建参数对话框中填写参数名称、数据类型、默认值等信息3. 完成参数设置后,点击“确定”即可保存参数接下来,我们需要将参数绑定到我们要展示的数据集合中。
具体步骤如下:1. 右键点击要添加参数的数据集合,选择“查询”->“编辑”2. 在查询编辑界面选中需要绑定参数的字段,右键点击选择“字段属性”3. 在弹出的对话框中,选中“参数”选项,在“参数名称”中输入之前创建的参数名称,设置完成后点击确定4. 参数绑定完成后,我们需要重新绑定报表数据源以使参数生效。
右键单击数据集,选择“设置数据源”,进行数据源的重新绑定三、在报表中使用参数在完成参数的创建和绑定后,我们可以使用参数对报表进行动态化的展示和查询。
具体步骤如下:1. 在报表设计器中,我们可以在需要使用参数的位置通过“插入参数”按钮插入参数2. 在插入参数对话框中,选择之前创建的参数,完成插入3. 此时,即可在报表预览界面中看到使用参数后的报表效果四、总结通过本篇文章,我们了解了帆软绑定参数的使用方法。
在实际应用中,我们可以根据不同的需求创建不同类型的参数,并将参数绑定到报表中的数据集合中,通过参数实现对报表的动态化展示和查询。
帆软绑定参数功能的使用方式简单方便,帮助用户快速、灵活地创建各种报表。
activereport报表控件的详细使用说明使用ActiveReport报表若干问题
activereport报表控件的详细使⽤说明使⽤ActiveReport报表若⼲问题使⽤ActiveReport报表若⼲问题activereport报表控件的详细使⽤说明使⽤ActiveReport报表若⼲问题1.如何判断是否到报表的最后⼀页2.当报表数据源为空是,如果填充记录,也就是空报表(主要报表是以表格⽅式)第页20⾏数据!3.以表格形式做报表时,细节和本页合计部分有⼀部分空间,如何去掉,谢谢!==================以下为CSDN handwolf(初学者)回答1,这⼀点我也不知道有什么属性可以判断是否到报表的最后⼀页,但是⽅法是有的,我以前的⽅法是控制⼀页的记录⾏数,然后根据记录总数计算出总的页数,报表的pageNumber属性表⽰当前的页码,⽐较⼀下就可以了,然后显⽰总页数与当前页码的⽅法如下:--在页脚中添加⼀个⽤于显⽰总页数的Field和⼀个⽤于显⽰第⼏页的Field2。
--显⽰总页数的Field1:设置Summaryrunning的值为:0(ddsrNone)summaryFunc的值为0Summarytype的值为4--显⽰第⼏页的Field2:设置Summaryrunning的值为:2(ddsrall)summaryFunc的值为2Summarytype的值为42,这个问题我也遇到过,我的解决⽅法是程序控制(假设你⼀页打印20⾏)1)如果记录源空,则可以建⼀临时记录集,除了允许字段为空外,其他的与原记录源相同,这样可以增加空记录(⽐如20条),然后⽤临时记录集绑定2)如果记录源不空,记录数不能添满⼀页,想⽤空记录添满;则可以⽤如下⽅法控制:⾸先,要有变量记录当前打印的是⼀页中的第⼏⾏(如整型的printline变量)然后在报表的Detail_Format()事件中控制是否到达记录集尾,是否打印了20⾏如果打到最后⼀条记录还没有打完⼀页,就让帮定的记录集moveprevious!!!直到打印完⼀页!注意:这⾥的最后⼀⾏可要控制好第⼀次moveprevious时,不要进⾏清空绑定的field控件第⼆次到最后⼀次moveprevious时,⼀定要清空绑定的field控件,否则会⼀直显⽰最后⼀条记录3,你可以将本页合计放在Detail部分,设置它的visible为false,当到这⼀页最后⼀条记录时,设置它的visible为true,下⾯的是第⼀次做的代码,命名不规则!!!希望你看得不会累!后来写的代码是⽤临时记录集的!Dim rst As ADODB.RecordsetDim num As Integer '记录已输出的有效记录数-1Dim bc As Integer '记录所需补的空记录数,在变,最后减为0Dim bc2 As Integer '记录所需补的空记录数,⼀直不变Dim totalPagenum As Integer '记录总页数Dim recordnum As Integer '记录总记录数Dim flag As Boolean '控制开关,控制最后⼀条记录的显⽰Private Sub ActiveReport_ReportStart()Set rst = GetRecordset("select * from ymjzjl") '注意这⾥的打开⽅式,recordcount'的属性必须可⽤'赋初值num = -1recordnum = rst.RecordCount'总记录数bc = 10 - recordnum Mod 10If bc = 10 Thenbc = 0End Ifbc2 = bc '需要补充的⾏数If bc = 0 ThentotalPagenum = recordnum / 10'总的页数ElsetotalPagenum = recordnum / 10 + 1End Ifrst.MoveFirstDataControl1.Recordset = rstEnd SubPrivate Sub Detail_Format()PageBreak1.Enabled = False 'PageBreak1⽤来控制⼀页只显⽰10条记录num = num + 1 '已经打印的⾏数If num >= recordnum - 1 And bc > 0 ThenIf flag = True ThenField2.Text = ""Field1.Text = ""Field3.Text = ""Field4.Text = ""Field5.Text = ""End Ifflag = Truerst.MovePreviousbc = bc - 1 '还需打印的空⾏减1End IfIf bc = 0 And flag = True ThenField2.Text = ""Field1.Text = ""Field3.Text = ""Field4.Text = ""Field5.Text = ""End IfIf (num + 1) Mod 10 = 0 ThenIf Me.pageNumber = totalPagenum ThenMsgBox ("Last Page!") '最后⼀页的最后⼀条,这⾥你可以添加⾃⼰的代码End IfIf Not Me.pageNumber = totalPagenum ThenPageBreak1.Enabled = True '⼀页10⾏打印完毕,换页End IfEnd IfEnd Sub估计没有⽅便的⽅法可以得到报表的总页数,因为你的程序可以控制页数,⽐如,你可以在程序中早点把关联的记录集movelast,这样就可以早点结束报表,本来要打印20张的可以控制在打印10张,编译器⼀般没有这么⼤的能⼒可以计算出这个时候报表的总页数!!!所以,最好的⽅法还是⾃⼰⽤程序来算出报表的总页数!你可以控制⼀张纸打印的记录数,同时算出总的记录数,很容易就可以得到你要的总页数了!!!很遗憾,不能给你找到⽅便的⽅法!!!使⽤ActiveReport报表若⼲问题21、打印预览时表格的边框是很淡的,但打印出来变成很粗了!请问这如何解决?我打的报表要求表格的边框的颜⾊要很淡,不要太粗!--------------如果是报表边框的话Me.PageBorder.LeftStyle = ddBLExtraThickSolidMe.PageBorder.RightStyle = ddBLExtraThickSolidMe.PageBorder.TopStyle = ddBLDoubleMe.PageBorder.BottomStyle = ddBLDouble 具体粗细你看吧我设置了field的边框,Field1.Border.TopStyle = ddBLSolidField1.Border.TopColor=颜⾊打印预览时候field的边框的颜⾊是很淡的,但打印出来就变成很粗了。
如何实现报表的数据可视化
4、设计报表界面
4.1、从 Visual Studio 工具箱中将 Table 控件添加到报表设计界面,按照以下列表设置 Table 控件的属性: 常规-数据集名称: 详细数据分组: SalesByCategory 名称:Table1_Detail_Group 分组表达式:=[类别 ID]
各个单元格中使用的控件和设置的属性如下: 单元格 Cells[3,1] Cells[3,2] Cells[3,3] 控件 TextBox TextBox Sparkline 属性 Value:=Fields!类别名称.Value Value:=Fields!类别名称.Value SeriesValue:=Fields!销售量.Value Range.Backdrop.GradientStyle:VerticalCenter
过滤:
表达式:=[销售量] 运算符:TopN 值:10
各个单元格中使用的控件和设置的属性如下: 单元格 Cells[3,1] Cells[3,2] Cells[3,3] Cells[3,4] 控件 TextBox TextBox TextBox Bullet 属性 Value:=Fields!产品名称.Value Value:=Fields!公司名称.Value =Fields!销售量.Value BestValue:1.6 LabelFormat:0% Range1Boundary:0.4 Range2Boundary:0.8 TargetShape:Dot TargetStyle.LineColor:Brown TargetStyle.LineWidth:3pt TargetValue:0.6 TickMarks:Inside TicksStyle.LineColor:LightGray
Active Report
1Active report1.1Active Report 相关浏览器的设置IE 浏览器• 工具> Internet 选项, 安全选项卡. • 选择自定义级别•找到下载, 禁用: 文件下载的自动提示. 确认,FireFox• 下载并安装 unMHT 插件•清除所有的历史记录: 工具 > 清空最近历史记录 • 转到 工具 > 选项 > 常规 tab. Uncheck "下载文件时显示下载窗口", 选择确定 • 转到 工具 > 选项 > 应用程序. 选择 MHTML Document 内容类型. 将动作改为 "总是询问", 确定。
•Turn off pop-ups : 工具> 选项 > 内容 tab: 不选 阻止弹出窗口1.2 活动控件说明活动报表控件。
“工具箱”选项卡 上提供了这些控件。
很多控件提供了两个不同的版本,一个静态版本和一个数据驱动版本。
当您希望手动定义控件可包含的值时,请使用控件的静态版本。
当您希望控件可包含的值来自某个数据项时,请使用控件的数据驱动版本。
变量文本项目使用变量文本项目在报表中插入活动报表变量。
当选择另一个控件中的项目时,变量文本项目在显示变量值方面非常有用。
例如,您可以将变量文本项目用作链接至下拉列表控件的某个列表的标题。
从下拉列表中选择某个项目时,该项目会显示为此列表的标题。
卡片组和数据卡片组根据在另一个控件中选定的内容,分别使用卡片组和数据卡片组来显示不同的对象和不同的数据。
例如,在单选按钮组控件中单击某个单选按钮会显示一个列表对象,而单击不同的单选按钮会显示一个图表对象。
卡 片组由卡片组成。
在静态卡片组中,您定义卡片组中的卡片数量,并在每个卡片中插入您所需的对象。
从而创建可包含不同对象的卡片,例如在一个卡片中包含饼形图,在另一个卡片中B u s i n e s s A n a l y t i c sE l l y包含交叉表。
VBA与数据透视表的动态数据源与条件设置的个性化应用与优化
VBA与数据透视表的动态数据源与条件设置的个性化应用与优化数据透视表是Excel中一个非常强大的数据分析工具,它可以帮助用户快速汇总和分析大量数据。
VBA(Visual Basic for Applications)是Excel的编程语言,可以通过编写VBA代码进一步扩展和优化数据透视表的功能。
本文将介绍如何利用VBA实现数据透视表的动态数据源和条件设置,并探讨如何个性化应用和优化数据透视表。
一、动态数据源数据透视表通常使用静态数据源来创建,但在实际情况中,数据源的内容可能会发生变化,需要动态更新数据透视表。
利用VBA,我们可以通过以下步骤实现数据透视表的动态数据源:1. 定义数据范围:首先,我们需要定义一个数据范围,用于存储需要展示在数据透视表中的数据。
可以使用命名范围或者使用VBA代码定义一个数据范围。
2. 创建数据透视表:通过在数据透视表菜单中选择“插入数据透视表”,在弹出的窗口中选择数据范围,并选择需要展示的字段。
3. 更新数据源:在数据源发生变化时,我们可以通过VBA代码来更新数据透视表的数据源。
首先,可以使用VBA代码清除数据透视表的现有数据,然后将新的数据范围设置为数据透视表的数据源,并更新数据透视表。
通过使用动态数据源,我们可以轻松地更新数据透视表的数据源,保证数据透视表始终显示最新的数据。
二、条件设置数据透视表中的条件设置可以帮助我们筛选和排序数据,使得数据透视表更加灵活和实用。
VBA可以帮助我们实现更加个性化的条件设置。
下面是几个常用的条件设置示例:1. 条件筛选:VBA可以帮助我们实现更复杂的条件筛选。
例如,可以使用VBA代码来选择特定字段中的某些值,并将其作为条件进行数据展示。
通过使用VBA,我们可以轻松地自定义数据透视表的筛选条件。
2. 排序:数据透视表中的排序功能可以帮助我们对数据进行升序或降序排列。
使用VBA,我们可以通过自定义排序算法实现更加灵活的排序功能。
例如,可以使用VBA代码按照自定义规则对数据透视表进行排序,而不仅仅局限于默认的升序或降序排列。
动态数据源与报表系统绑定的4个步骤
动态数据源/集与报表系统绑定的4个步骤实际项目中,存在一种设计报表时无法明确知道从哪个数据库中取数的情况。
例如,根据查看报表的用户身份不同,所要取数的数据库也不同。
在这种场景中,就需要用到动态数据源。
所谓动态数据源,就是连接字串为表达式形式的数据源。
通过在表达式中使用报表参数,实现不同用户访问不同数据库的效果。
所谓动态数据集,就是SQL语句为表达式形式的数据集。
通过在表达式中使用报表参数,实现不同用户访问不同数据库表或视图的效果。
创建一个动态数据源的思路如下:(1)先设计好静态的数据源连接字串和数据集。
这是为了获得数据集的字段列表,以便设置表格、图表等报表元素的数据字段绑定。
(2)添加报表参数。
(3)修改数据源,将连接字串设置为表达式,表达式中引用报表参数,从而实现具体数据源随参数不同而变化的“动态”效果。
下面举例说明具体的设计方法。
4.1 设计静态的数据源启动报表设计器,新建一个RDL类型的报表。
添加一个SQL Server数据源,连接字串如下:data source=(local);password=123;initial catalog=ArsDemo;user id=user1;如下图:添加一个数据集,SQL语句如下:select * from 产品字段列表如下:拖放一个表格到设计区,绑定数据集的字段,如下图:预览效果如下图:到目前为止,一个静态数据源的报表就设计完成了。
4.2 添加报表参数添加报表参数是为实现动态数据源做准备。
添加报表参数的步骤如下:(1)右键单击报表资源管理器的【参数】节点,再点击【添加参数】,如下图:(2)设置参数名称等信息,如下图:(3)点击【确定】按钮。
此时会看到报表资源管理器的【参数】节点下面多了一个DbName参数,如下图:4.3 修改数据源设置定义好报表参数之后,就可以重新设置数据源,使之变成动态数据源了。
方法如下:(1)右键单击数据源,再单击【修改】,如下图:(2)在数据源设置对话框中,切换到【连接字符串】选项卡,再单击代表表达式的fx图标,如下图:(3)在表达式编辑器窗口中,将原来的连接字串改为表达式。
finereport控件绑定参数
finereport控件绑定参数Finereport控件绑定参数是指在Finereport报表设计过程中,将数据源与控件进行关联,实现数据的动态显示和交互操作。
在这篇文章中,我将逐步解释Finereport控件绑定参数的过程,并介绍一些常用的绑定方式和技巧。
第一步:准备数据源在开始设计报表之前,我们需要准备数据源。
数据源可以是数据库、Excel文件或者其他数据文件。
Finereport支持多种数据源类型,我们可以根据具体的需求选择合适的数据源。
第二步:创建控件在Finereport的设计器中,我们可以通过拖拽操作创建各种控件,如文本框、表格、下拉框等。
在创建控件的同时,我们可以设置控件的样式和布局。
第三步:绑定数据源在控件创建完成后,我们需要将控件与数据源进行绑定。
这样,控件才能够获取数据并显示在报表中。
常用的绑定方式有以下几种:1. 直接绑定:可以直接将数据源字段拖拽到控件中,Finereport 会自动根据控件类型进行数据绑定。
这种方式适用于简单的控件和数据。
2. 表达式绑定:如果需要对数据源进行一些计算或者逻辑操作,我们可以使用表达式绑定。
在表达式中,我们可以使用各种函数和运算符对数据进行处理,然后将结果显示在控件中。
3. 参数绑定:参数绑定是指将控件与报表的参数进行关联。
参数是在报表设计时定义的变量,我们可以在运行时通过修改参数值来动态改变控件的显示。
接下来,我们将详细介绍参数绑定的使用方法和一些常见的应用场景。
第四步:定义报表参数在报表设计器中,我们可以通过点击参数管理器来定义报表参数。
参数可以是字符串、数字、日期等类型。
我们可以为参数设置默认值、范围和校验规则等属性。
第五步:绑定参数到控件在控件的属性面板中,我们可以找到参数绑定的选项。
通过选择对应的参数,我们可以将参数与控件关联起来。
此时,控件会自动根据参数的值进行数据更新和显示。
第六步:参数交互参数交互是指通过修改参数的值来实现控件的动态变化和交互操作。
ActiveReports在同一数据控件展示多数据集数据教程
ActiveReports在同一数据控件展示多数据集数据教程很多人想在同一数据控件中加载多个数据集,这样就会大大提升报表设计的灵活性和强大性。
因为很多数据最终都是以独立的DataTable呈现的,所以无法编写SQL 语句但是又需要主键和外键的结合,之前有的解决方法是通过嵌套子报表来完成,但是实现起来也确实复杂。
ActiveReports 11 SP1版本提供了LookUp函数来实现这一功能。
下面我们来看看:一. Lookup 函数语法=Lookup(<SourceExpression>,<DestinationExpression>,<ResultExpressi on>, LookupDataset>)函数说明▪对比标准:仅支持“=”操作符▪SourceExpression:源表达式。
作为匹配的条件。
▪DestinationExpression:目标表达式,用来与源表达式进行匹配。
▪ResultExpression:表示返回值,如果目标表达式和源表达式相等,返回的值。
▪LookupDataSet: 指定具体要查找的数据集使用条件▪源表达式和目标表达式的数据类型应一致▪如果找到满足条件的值则返回单个值,如果没有则返回Null▪Lookup 表达式可以当做是聚合函数的一部分,所以用户可以使用这个函数在表头或表尾,分组等,也可以进行Sum求和。
限制▪只支持=操作符▪不支持非聚合表达式如Mode,And,Or等▪不支持Lookup函数嵌套使用。
二. 使用步骤1. 在项目中添加ActiveReports RDL 报表2. 连接数据源3. 添加数据集添加DataSet1Sql 语句:select dbo.订单.*from dbo.订单添加DataSet2select dbo.客户.* from dbo.客户4. 添加表格控件为表格控件指定数据集DataSet1,并添加列添加【客户名称】列,设置Value属性=Lookup( [客户ID] , [客户ID] , [公司名称], "DataSet2")5. 预览报表。
开发控件ActiveReports报表运行时添加数据源
ActiveReports报表绑定数据源教程:运行时数据源ActiveReports支持在设计时和运行时设置报表数据源,本文将重点介绍如何在运行时为区域报表和RDL/页面报表设置报表数据源。
区域报表运行时数据源第一步:在工程中创建一个名为SectionReport_DataSource_RunTime.cs 的基于代码的区域报表第二步:创建完成之后,会自动打开报表设计界面,此时,我们可以在报表设计界面添加文本框(TextBox)等控件用于显示数据源数据。
与设计时数据源不同,运行时数据源只需直接设置文本框控件的DataField属性便可完成与数据源的绑定,比如数据源包括以下字段:产品编号、产品名称、单价和库存量,我们只需在报表的detail 区域添加四个文本框,并分别设置其DataField属性即可。
如下图:第三步:在运行时通过DataSource 属性设置数据源RDL/页面报表运行时数据源第一步:在工程中创建一个名为PageReport_DataSource_RunTime.rdlx 的页面报表第二步:从Visual Studio菜单栏中的“视图”->“其他窗口”->“报表资源管理器”中打开ActiveReports报表资源管理器,此时,你可以看到“数据源”节点,在该节点上鼠标右键选择“添加数据源”菜单项,在弹出的“报表数据源”对话框中选择类型为Dataset Provider,如下图:点击“确定”按钮,完成数据源创建操作,此时,在报表资源管理器窗口中的“数据源”节点下新增了一个名为“DataSource1”的子节点,在该节点上点击鼠标右键,选择“添加数据集”菜单项,在弹出对话框的“字段”选项卡中添加产品编号、产品名称、单价和库存量四个字段,然后点击“确定”按钮完成数据集创建操作。
返回到报表资源管理窗口之后,点击“DataSet1”节点,可以看到刚才添加的四个字段。
第三步:在Visual Studio工具箱中的表格控件(Table)拖拽到报表设计界面,然后点击表格明细行中的单元格,此时,会自动显示DataSet1中数据集中的全部字段,然后,为每个单元格指定需要绑定的字段。
开发工具ActiveReports报表动态绑定数据源
ActiveReports报表控件动态绑定数据源教程:集合对象数据源ActiveReports所提供的两种报表模型页面报表和区域报表都支持集合对象数据源绑定,本文就主要讲解如何为以上两种报表模型设置集合对象数据源。
我们使用的实体类型Product 共包含四个字段,代码如下:(一)页面报表1、在工程中添加一个名为ListPageReport.rdlx 的页面报表添加完成之后在解决方案窗口中选中ListPageReport.rdlx 文件,并按下F4 以打开该文件的属性窗口,在属性窗口中将“复制到输出目录”设置为“始终复制”2、在报表资源管理器窗口中,鼠标右键单击“数据源”节点,并选择添加数据源菜单项在出现的“报表数据源”对话框中,设置类型为“Object Provider”,点击“确定”按钮以完成添加数据源操作3、返回到报表资源管理器中,在ListDataSource节点上鼠标单击右键,选择“添加数据集”菜单项4、在出现的“数据集”对话框中,切换到“字段”选项卡页面,并添加与Product 类型中同名的四个字段,如下点击“确定”按钮以完成添加数据集操作,返回到报表资源管理器窗口中,可以看到ListDataSet 节点下会显示我们添加的四个字段至此,我们已经完成报表数据源的创建工作,接下来就设计报表界面以显示数据源数据5、从VS工具箱中的ActiveReports 7 页面布局报表分类中,将Table 控件添加到报表设计界面,并设置每个单元格的对应的数据字段6、完成全部报表设计工作之后,我们在Form1 中添加ActiveReports 报表浏览器控件Viewer7、在Form1 的后台代码中加载ListPageReport.rdlx 报表,并在LocateDataSource 事件中为报表加载数据(二)区域报表1、在项目中添加名为ListSectionReport.cs 的区域报表文件2、在报表设计界面中的Detail区域中添加四个TextBox 控件,分别设置其DataField 属性为ID,Name,Price,Stock3、在Form1后台代码中加载ListSectionReport 报表,并设置数据源运行截图:。
利用超链接建立报表关联的步骤
利用超链接建立报表关联的步骤建立报表关联的步骤通常涉及以下几个方面:
1. 确定报表关联的需求,首先需要明确需要建立报表关联的原因和目的。
确定哪些报表需要关联,以及它们之间的关系是什么样的。
这有助于为后续的超链接建立提供清晰的方向。
2. 准备报表数据,确保需要关联的报表数据已经准备就绪,并且数据之间存在相应的关联关系。
如果需要对数据进行清洗、整理或者加工,需要提前完成这些工作。
3. 选择超链接的方式,根据报表关联的需求,选择合适的超链接方式。
通常可以选择在报表中插入超链接,使用户可以点击跳转到相关的报表;或者在报表之间建立逻辑关系,使其在特定条件下自动关联。
4. 创建超链接,根据选择的超链接方式,按照相应的步骤在报表中建立超链接。
这可能涉及到在报表中插入链接的功能,或者编写相应的逻辑代码来实现报表之间的关联。
5. 测试和验证,在建立超链接之后,需要进行测试和验证确保超链接的功能正常。
确保用户可以顺利地通过超链接跳转到相关的报表,或者报表之间的关联关系能够按照预期的方式工作。
6. 部署和维护,最后,将建立好的报表关联功能部署到相应的系统或平台上,并确保定期维护和更新超链接功能,以保证报表关联的持续有效性。
总的来说,建立报表关联的步骤需要从需求分析、数据准备、超链接方式选择、超链接创建、测试验证以及部署维护等多个方面全面考虑,以确保报表关联能够顺利实现并持续有效。
ActiveReport的一般使用方法和技术
ActiveReport的一般使用方法和技术■添加一个ActiveReport在Base0里已经有详细介绍更改ActiveReport的名字为rptProductMaster添加控件OLE DB Datasource Name= adcProductList在ActiveReport的Start事件里写:Private Sub ActiveReport_ReportStart()Set adcProductList.Recordset = arsCase 给OLE DB DataSource赋值.Me.Printer.Orientation = ddOPortrait 设置Report为竖着打印.Me.Printer.PaperSize = vbPRPSA4设定纸为A4纸.Me.PrintWidth = 10000设定打印宽度.End Sub注意:PrintWidth设置太长的话会出现空白页.(打印预览时会有一条竖着的虚线)以后就可以在PageHeader,GroupHeader,Detial,GroupFooter,PageFooter里添加控件了.添加控件后,要想显示数据需要把控件的DataSource绑定为adcProductLi (上边提到过的控件的名称)然后再把控件的DataFields属性绑定为需要的字段.DatFiellds属性绑定时,如果你知道了你要帮定的字段的准确地名字,你就可以把字段的名字直接写在DatFiellds属性上就可以了不需要一行代码就能实现报表的功能.■Group应用时的效果工具栏PageHeaderGroupHeageDetailGroupFootePageFooterOLE DBGroupDetail3。
C#winform动态构建fastreport报表
C#winform动态构建fastreport报表private void DoPrint(){DataView dv = (DataView)dgv_apply_details.DataSource;Report report = new Report();//给report注册数据源report.RegisterData(dv, "Purchasment");//设置能在报表中使⽤report.GetDataSource("Purchasment").Enabled = true;ReportPage page1 = new ReportPage(); = "Page1";page1.SetDefaults();//设置标题page1.ReportTitle = new ReportTitleBand(); = "ReportTitle1";page1.ReportTitle.Height = 0;//Units.Centimeters * 0.1f;//给标题赋值TextObject txtTitle = new TextObject(); = "TextTitle";txtTitle.Bounds = new RectangleF(0, 0, Units.Centimeters * 19, Units.Centimeters * 1);txtTitle.Text = "药品采购汇总单";txtTitle.HorzAlign = HorzAlign.Center;txtTitle.VertAlign = VertAlign.Center;txtTitle.Font = new Font("微软雅⿊", 20, FontStyle.Bold);page1.ReportTitle.Objects.Add(txtTitle);GroupHeaderBand group1 = new GroupHeaderBand(); = "GroupHeader1";group1.Height = Units.Centimeters * 2f;group1.Condition = "[Purchasment.order_id]";//分组条件DataBand data1 = new DataBand(); = "Data1";data1.Height = Units.Centimeters * 1.5f;//Units.Centimeters * 3f;//调的是data⾥⾯数据(即dataHeaderBand)的间距,也是table中row之间的间距 data1.DataSource = report.GetDataSource("Purchasment");#region分组表头//GetDataBand(ref dataBand, ref dataHeaderBand);//TextObject txt2 = new TextObject();// = "Text2";//txt2.Bounds = new RectangleF(0, 0, Units.Centimeters * 20, Units.Centimeters * 3);//txt2.VertAlign = VertAlign.Center;//txt2.Font = new Font("宋体", 9, FontStyle.Bold);//txt2.Text = dataHeaderBand;//"订单号:[Purchasment.order_id]";//group1.Objects.Add(txt2);//TextObject txt3 = new TextObject();// = "Text3";//txt3.Bounds = new RectangleF(Units.Centimeters * 8, 0, Units.Centimeters * 20, Units.Centimeters * 3);//txt3.VertAlign = VertAlign.Center;//txt3.Text = "申请药房:[Purchasment.storage_name]";//group1.Objects.Add(txt3);////<TextObject Name="Text38" Left="198.45" Top="18.9" Width="75.6" Height="28.35" Text="订单状态:" VertAlign="Center"/>//TextObject txt4 = new TextObject();// = "Text4";////txt4.Bounds = new RectangleF(float.Parse("198.45"), float.Parse("18.9"), float.Parse("75.6"), float.Parse("28.35"));//txt4.Bounds = new RectangleF(Units.Centimeters * 15, 0, Units.Centimeters * 10, Units.Centimeters * 1);//txt4.VertAlign = VertAlign.Center;//txt4.Text = "采购科室:[Purchasment.sourceStorage]";//group1.Objects.Add(txt4);#endregion//DataHeaderBand dataHeader1 = new DataHeaderBand();// = "DataHeader1";//dataHeader1.Height = Units.Centimeters * 1;//data1.Objects.Add(dataHeader1);//GetDataBand(ref dataBand, ref dataHeaderBand);//TextObject txt6 = new TextObject();// = "Text6";//txt6.Bounds = new RectangleF(0, Units.Centimeters * 2, Units.Centimeters * 30, Units.Centimeters * 1);//txt6.Text = dataHeaderBand;//txt6.Font = new Font("宋体", 9, FontStyle.Bold);//dataHeader1.Objects.Add(txt6);////group1.Objects.Add(txt6);//TextObject txt7 = new TextObject();// = "Text7";//txt7.Bounds = new RectangleF(0, Units.Centimeters * 3, Units.Centimeters * 30, Units.Centimeters * 1f);//txt7.Text = dataBand;//txt7.Font = new Font("宋体", 9);//data1.Objects.Add(txt7);#region Table表格TableObject table1 = new TableObject(); = "Table1";table1.Border.Lines = BorderLines.All;table1.Height = Units.Centimeters * 1.5f;//table1.Width = Units.Centimeters * 30;#region TableColumn//TableColumn column1 = new TableColumn();// = "Column1";//column1.Width = Units.Centimeters * 3;//table1.AddChild(column1);//AddChild应为添加⼦节点,适⽤于table内部////table1.ChildObjects.Add(column);//试过这种添加⽅式,不过这样就不显⽰表格了//TableColumn column2 = new TableColumn();// = "Column2";//column2.Width = Units.Centimeters * 3;//table1.AddChild(column2);//TableColumn column3 = new TableColumn();// = "Column3";//column3.Width = Units.Centimeters * 3;//table1.AddChild(column3);//TableColumn column4 = new TableColumn();// = "Column4";//column4.Width = Units.Centimeters * 3;//table1.AddChild(column4);//TableColumn column5 = new TableColumn();// = "Column5";//column5.Width = Units.Centimeters * 3;//table1.AddChild(column5);//TableColumn column6 = new TableColumn();// = "Column6";//column6.Width = Units.Centimeters * 3;//table1.AddChild(column6);#endregionTableRow row1 = new TableRow(); = "Row1";row1.Height = Units.Centimeters * 1.5f;table1.AddChild(row1);#region TableCell cell1//TableCell cell1 = new TableCell();// = "Cell1";//cell1.HorzAlign = HorzAlign.Center;//cell1.VertAlign = VertAlign.Center;//cell1.Border.Lines = BorderLines.All;//cell1.Text = "[Purchasment.drug_name]";//cell1.Font = new Font("宋体", 9);//row1.AddChild(cell1);//TableCell cell2 = new TableCell();// = "Cell2";//cell2.HorzAlign = HorzAlign.Center;//cell2.VertAlign = VertAlign.Center;//cell2.Border.Lines = BorderLines.All;//cell2.Text = "[Purchasment.package_spec]";//cell2.Font = new Font("宋体", 9);//row1.AddChild(cell2);//TableCell cell3 = new TableCell();// = "Cell3";//cell3.HorzAlign = HorzAlign.Center;//cell3.VertAlign = VertAlign.Center;//cell3.Border.Lines = BorderLines.All;//cell3.Text = "[Purchasment.sale_price]";//cell3.Font = new Font("宋体", 9);//row1.AddChild(cell3);//TableCell cell4 = new TableCell();// = "Cell4";//cell4.HorzAlign = HorzAlign.Center;//cell4.VertAlign = VertAlign.Center;//cell4.Border.Lines = BorderLines.All;//cell4.Text = "[Purchasment.manufacture_name]";//cell4.Font = new Font("宋体", 9);//row1.AddChild(cell4);//TableCell cell5 = new TableCell();// = "Cell5";//cell5.HorzAlign = HorzAlign.Center;//cell5.VertAlign = VertAlign.Center;//cell5.Border.Lines = BorderLines.All;//cell5.Text = "[Purchasment.distributor_name]";//cell5.Font = new Font("宋体", 9);//row1.AddChild(cell5);//TableCell cell6 = new TableCell();// = "Cell6";//cell6.HorzAlign = HorzAlign.Center;//cell6.VertAlign = VertAlign.Center;//cell6.Border.Lines = BorderLines.All;//cell6.Text = "[Purchasment.amount]";//cell6.Font = new Font("宋体", 9);//row1.AddChild(cell6);#endregionSetDataHeaderAndTable(group1, page1.PaperWidth, table1, row1);data1.Objects.Add(table1);#endregion#region报表底page1.PageFooter = new PageFooterBand(); = "PageFooter1";page1.PageFooter.Height = Units.Centimeters * 1;//这个⾼度必须>=PageFooter包含⽂字的RectangleF⾥⾯的y的值TextObject ftxt1 = new TextObject(); = "FText1";ftxt1.Bounds = new RectangleF(0, Units.Centimeters * 1, Units.Centimeters * 10, Units.Centimeters * 1);ftxt1.Text = "打印时间:[Date]";ftxt1.Font = new Font("宋体", 9);ftxt1.VertAlign = VertAlign.Center;page1.PageFooter.Objects.Add(ftxt1);TextObject ftxt2 = new TextObject(); = "FText2";ftxt2.Bounds = new RectangleF(Units.Centimeters * 15, Units.Centimeters * 1, Units.Centimeters * 10, Units.Centimeters * 1); ftxt2.Text = "页码:[PageN]/[TotalPages#]";ftxt2.Font = new Font("宋体", 9);ftxt2.VertAlign = VertAlign.Center;page1.PageFooter.Objects.Add(ftxt2);TextObject ftxt3 = new TextObject(); = "FText3";ftxt3.Bounds = new RectangleF(Units.Centimeters * 8, Units.Centimeters * 1, Units.Centimeters * 10, Units.Centimeters * 1); ftxt3.Text = "打印⼈:[operator]";ftxt3.Font = new Font("宋体", 9);ftxt3.VertAlign = VertAlign.Center;page1.PageFooter.Objects.Add(ftxt3);report.SetParameterValue("operator", erCode);#endregion//group1.Objects.Add(data1);group1.Data = data1;page1.Bands.Add(group1);report.Pages.Add(page1);report.Show();}///<summary>///根据当前显⽰的字段,动态添加数据⾸和表格///</summary>private void SetDataHeaderAndTable(GroupHeaderBand group1, float pageWidth, TableObject table1, TableRow row1){int count = 0;//记录显⽰的列数int index = 0;DataTable dt = OrderBL.SelectFreecombination();if (dt != null){for (int i = 0; i < dgv_apply_details.Columns.Count; i++){if (dgv_apply_details.Columns[i].Visible){count++;}}if (count <= 0){YxMessageBox.ShowWarning("当前没有可打印的数据!");return;}for (int i = 0; i < dt.Rows.Count; i++){if (DbHelper.GetBool(dt.Rows[i], "print_status")){TextObject text = new TextObject(); = "Text" + index.ToString();text.Bounds = new RectangleF(0 + index * (3 * pageWidth / count), 0, 3 * pageWidth / count, Units.Centimeters * 3); text.VertAlign = VertAlign.Center;text.Font = new Font("宋体", 9, FontStyle.Bold);text.Text = DbHelper.GetString(dt.Rows[i], "header_text");group1.Objects.Add(text);TableColumn column1 = new TableColumn(); = "Column" + index.ToString(); ;column1.Width = 3 * pageWidth / count;//Units.Centimeters * 3;table1.AddChild(column1);TableCell cell1 = new TableCell(); = "Cell" + index.ToString(); ;cell1.HorzAlign = HorzAlign.Center;cell1.VertAlign = VertAlign.Center;cell1.Border.Lines = BorderLines.All;cell1.Text = "[Purchasment." + DbHelper.GetString(dt.Rows[i], "dataproperty_name") + "] ";cell1.Font = new Font("宋体", 9);row1.AddChild(cell1);index++;}}}}打印效果如图:。
RDLC报表系列(一)简单的动态数据绑定和配置
RDLC报表系列(⼀)简单的动态数据绑定和配置RDLC系列链接最近新换了⼯作,终于从单纯的开发中脱离出来,换成主运维和偶尔开发了,但还没有转⾏。
本来打算找⼯作是想转⾏的,毕竟三线城市搞IT,以后真的不好说。
最近经理让给财务做⼀个报表展⽰系统。
由于之前⼀直都是做B2C的⽹站,流程和报表⽅⾯⼏乎没有涉猎。
只能从博客园和csdn上来查找资料,由于⼤部门⼈都是⽤的⽔晶报表,RDLC的资料挺少。
所以找了好久,也⾃⼰实验了好久,终于项⽬第⼀期做的项⽬差不多了,今天在家休息,就拿出点时间来整理⼀下。
这个项⽬分两期,第⼀期主要是数据表的展⽰,第⼆期会有矩阵,折线图和柱状图的使⽤。
所以,⽂章先把⾃⼰使⽤到的整理出来。
参考的⽂章链接如下: 下⾯就按照我的步骤先来个简单的栗⼦吧。
1.新建项⽬,这个⼤家都会了吧。
就不唠叨了,按照⾃⼰的习惯命名就好,我这⾥是demo1 2.然后是新建数据源,在⽹站或者项⽬上右击,添加—>新建项—>数据—>数据集,命名为demo1.xsd,点击确定 3.在数据源页⾯拖⼊DataTabel,按照下图设计表结构 4.新建报表,在⽹站或者项⽬上右击,添加—>新建项—>Reporting—>报表,命名为demo1.rdlc,点击确定 5.下⾯是重头戏,设计报表,在左侧的报表项中选择表,拖到右边的⽩⾊区域,会弹出如下对话框,输⼊名称选择数据源以及数据集,点击确认然后将需要显⽰的字段添加到表中即可。
6.新建⼀个页⾯,名称demo1.aspx,在页⾯设计中拖⼊ScriptManager和Reportview控件 7.然后开始写后台绑定数据的代码了,如下 demo.aspx.cs1using System;2using System.Collections.Generic;3using System.Linq;4using System.Web;5using System.Web.UI;6using System.Web.UI.WebControls;7using System.Data;8using System.Data.SqlClient;9using Microsoft.Reporting.WebForms;1011namespace rdlc112 {13public partial class demo11 : System.Web.UI.Page14 {15protected void Page_Load(object sender, EventArgs e)16 {17if (IsPostBack == false)18 {19 FillDataToReport();20 }21 }2223private void FillDataToReport()24 {2526// DataTable dt1 = GetDataTabel();2728//if (dt1.Rows.Count > 0)29//{3031//}3233 DataTable dt = new DataTable();34 dt.Columns.Add("Dept", typeof(string));35 dt.Columns.Add("CostCenter", typeof(string));36 dt.Columns.Add("SalePrice", typeof(decimal));37 dt.Rows.Add("IT", "810", 867);38 dt.Rows.Add("IT", "811", 877);39 dt.Rows.Add("E", "710", 867);40 dt.Rows.Add("E", "711", 877);41 dt.Rows.Add("L", "710", 867);42 dt.Rows.Add("L", "711", 877);434445 ReportViewer1.LocalReport.ReportPath = "demo1.rdlc";4647//显⽰报表48 ReportViewer1.LocalReport.DataSources.Clear();49 ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("dtDemo", dt));//要和设计报表时指定的名称⼀致,这⾥是dtDemo50 ReportViewer1.LocalReport.Refresh();515253 }5455 }56 }View Code 8.⼀切貌似都⼤功告成,F5运⾏,弹出如下报错。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ActiveReports 在页面报表动态绑定数据源
ActiveReports数据源绑定分为设计时数据源绑定和运行时数据源绑定,本文我们主要讲解如何在 应用系统中为页面报表(PageReport)动态绑定数据源。
第一步、创建一个ASP.ENT 应用程序,并在ASPX页面中添加ActiveReports 提供的WebViewer 控件
第二步、在工程中添加页面报表(PageReport)文件,如下图所示:
第三步、打开报表资源管理器,在数据源节点中添加一个新的数据源,并选择【Dataset Provider】
第四步、在DataSource1数据源上右键,选择添加数据集,并在数据集对话框中的字段页面中添加以下三个字段
第五步、返回到报表设计界面,添加一个Table控件到报表中,并设置各列对应的数据绑定字段名称,最终结构如下:
第六步、打开ASPX后台代码页面,并在Page的Load事件中添加以下代码:
运行结果如下:。