开发ReportViewer中遇到的一些问题
2014-11-13 13:02
459 查看
http://blog.csdn.net/hebeijg/article/details/7329019
1.每页显示多少行由Report的InteractiveSize-Height属性决定,规则是 height=行数*0.63492 每行的高度
2.如何显示表头,选择用xml格式打开report文件,在
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
<RepeatOnNewPage>true</RepeatOnNewPage> //加上这句话就可以了。属性里找不到,只可以在这里加
</TablixMember>
<TablixMember>
<Group Name="Details" />
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
3.PageCountModel属性
在页面添加了ReportView控件后有一个PagecountModel属性,这个属性的有两个值,Actual和Estimate。
Actual是现实真实的具体页数
Estimate是也是预估的页面,后面有一个问号
4.如果通过页面里加载了这么
<LocalReport ReportPath="Rdlc\CopyRecordRdlc.rdlc">
</LocalReport>
也就是在页面里reportViewer控件的右上角点三角加载的RDLC文件,这样在winform是没有问题的,但是在Web里会出现没有数据源的问题,正确办法是在查询按钮里加载 rvCopyRecord.LocalReport.ReportPath = @"Rdlc\CopyRecordRdlc.rdlc";
这样就不会有那个提示了
5.报表里增加参数,
在报表里增加总费用,在报表工具箱里参数文件夹下右键,新建参数AllCost,把这个参数拖到报表里,在页面传值,
double allCost =0;
ReportDataSource reportDataSource = GetData(out allCost);
ReportParameter r = new ReportParameter("AllCost", allCost.ToString());
rvCopyRecord.LocalReport.SetParameters(r);
这样就可以把总费用传入报表了
6.统计功能
必须在int或者decimal字段上菜可以加,其他的字段是first
选中报表的最后一行,选择增加Group Blow 在最下面增加一行,在GroupBy里输入一个无意义的参数,这样会只显示一行,如果选择有意义的字段会出现很多行(不知道为什么)。在右键最后一行的最后一列,选择Fx,进入表达式页面,选在Database,这里列出了所有可以统计的字段,int或者decimal是Sum其他的是FIrst,在Sum字段上双击,这样在上面的输入框里自动生成一个表达式,这样统计功能就生成了。
7.饼状图百分比,
饼状图里显示的时候显示百分比,默认的是显示的小数如0.2(vs2010),但是希望显示百分比,在series label propertys里有一个Number属性,在里面可以设置百分比属性,但是不知道是微软的bug还是我自己没有研究透,反正设置上了百分比不成功,每次打开又变成默认值,也就是小数,
提供2种方法显示百分比,
1),在饼状图上选择百分比数字,选择series label propertys,在label Data 里选择fx,在里面添加如下内容= FormatPercent(CountRows()/CountRows("PieChart"),2)(pieChart是你饼状图的名字,默认为Chart1).这样就会显示百分比了。
2),在series label propertys里选择number属性不生效,每次打开都变成default,但是柱状图里可以设置,通过比较xml文件发现了区别,用xml格式打开饼状图的xml文件,在ChartDataPoint节点下有一个ChartDataLabel节点,在里面加上如下代码
<Style >
<Format>0.00%</Format>
</Style>
这样就可以显示为百分比了。
8.如何在饼状图里显示链接
如果想在各个比例上单击打开网页,然后传一个参数过去
在饼状图上选择标签然后选择series label propertys,在URL里面选择action,选择url,点fx,写入,="http://www.baidu.com?Id="+Fields!Paremare.Value.
注意在使用URL的时候必须在引用这个rdlc文件的地方加上如下的代码
rvCopyRecord.LocalReport.EnableHyperlinks = true;
否则编译的时候不报错,但是运行的时候报错
9.如何让饼状图百分比在饼的外面并显示连线
选择饼状图上的dataLable,然后选择右面的属性,在里面选择CustomerAttirbutes,设置pielabelstyle=outside,pielablecolor="color"这样就可以了
10.使用subreport控件的问题,在父报表里放一个subreport控件,将reportName属性设置为需要显示的子报表的名字。
1)Data retrieval failed for the subreport, 'Subreport1', located at: D:\Work\报表开发\ReportService\ReportService.Web\Rdlc\ProductDetail.rdlc. Please check the log files for more information.
这个问题是因为没有给子报表提供数据源,
在显示报表的事件里添加 reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
{
DataSet dataSet = null;
try
{
// Load data from XML file
ReportDataSource reportDataSource = GetData();
// Supply a DataTable corresponding to each report dataset. The dataset name must match the name defined in the main report stream
// (in the Name attribute of the <DataSets>\<DataSet> element.
e.DataSources.Add(reportDataSource);
}
finally
{
if (dataSet != null)
dataSet.Dispose();
}
}
1.每页显示多少行由Report的InteractiveSize-Height属性决定,规则是 height=行数*0.63492 每行的高度
2.如何显示表头,选择用xml格式打开report文件,在
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
<RepeatOnNewPage>true</RepeatOnNewPage> //加上这句话就可以了。属性里找不到,只可以在这里加
</TablixMember>
<TablixMember>
<Group Name="Details" />
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
3.PageCountModel属性
在页面添加了ReportView控件后有一个PagecountModel属性,这个属性的有两个值,Actual和Estimate。
Actual是现实真实的具体页数
Estimate是也是预估的页面,后面有一个问号
4.如果通过页面里加载了这么
<LocalReport ReportPath="Rdlc\CopyRecordRdlc.rdlc">
</LocalReport>
也就是在页面里reportViewer控件的右上角点三角加载的RDLC文件,这样在winform是没有问题的,但是在Web里会出现没有数据源的问题,正确办法是在查询按钮里加载 rvCopyRecord.LocalReport.ReportPath = @"Rdlc\CopyRecordRdlc.rdlc";
这样就不会有那个提示了
5.报表里增加参数,
在报表里增加总费用,在报表工具箱里参数文件夹下右键,新建参数AllCost,把这个参数拖到报表里,在页面传值,
double allCost =0;
ReportDataSource reportDataSource = GetData(out allCost);
ReportParameter r = new ReportParameter("AllCost", allCost.ToString());
rvCopyRecord.LocalReport.SetParameters(r);
这样就可以把总费用传入报表了
6.统计功能
必须在int或者decimal字段上菜可以加,其他的字段是first
选中报表的最后一行,选择增加Group Blow 在最下面增加一行,在GroupBy里输入一个无意义的参数,这样会只显示一行,如果选择有意义的字段会出现很多行(不知道为什么)。在右键最后一行的最后一列,选择Fx,进入表达式页面,选在Database,这里列出了所有可以统计的字段,int或者decimal是Sum其他的是FIrst,在Sum字段上双击,这样在上面的输入框里自动生成一个表达式,这样统计功能就生成了。
7.饼状图百分比,
饼状图里显示的时候显示百分比,默认的是显示的小数如0.2(vs2010),但是希望显示百分比,在series label propertys里有一个Number属性,在里面可以设置百分比属性,但是不知道是微软的bug还是我自己没有研究透,反正设置上了百分比不成功,每次打开又变成默认值,也就是小数,
提供2种方法显示百分比,
1),在饼状图上选择百分比数字,选择series label propertys,在label Data 里选择fx,在里面添加如下内容= FormatPercent(CountRows()/CountRows("PieChart"),2)(pieChart是你饼状图的名字,默认为Chart1).这样就会显示百分比了。
2),在series label propertys里选择number属性不生效,每次打开都变成default,但是柱状图里可以设置,通过比较xml文件发现了区别,用xml格式打开饼状图的xml文件,在ChartDataPoint节点下有一个ChartDataLabel节点,在里面加上如下代码
<Style >
<Format>0.00%</Format>
</Style>
这样就可以显示为百分比了。
8.如何在饼状图里显示链接
如果想在各个比例上单击打开网页,然后传一个参数过去
在饼状图上选择标签然后选择series label propertys,在URL里面选择action,选择url,点fx,写入,="http://www.baidu.com?Id="+Fields!Paremare.Value.
注意在使用URL的时候必须在引用这个rdlc文件的地方加上如下的代码
rvCopyRecord.LocalReport.EnableHyperlinks = true;
否则编译的时候不报错,但是运行的时候报错
9.如何让饼状图百分比在饼的外面并显示连线
选择饼状图上的dataLable,然后选择右面的属性,在里面选择CustomerAttirbutes,设置pielabelstyle=outside,pielablecolor="color"这样就可以了
10.使用subreport控件的问题,在父报表里放一个subreport控件,将reportName属性设置为需要显示的子报表的名字。
1)Data retrieval failed for the subreport, 'Subreport1', located at: D:\Work\报表开发\ReportService\ReportService.Web\Rdlc\ProductDetail.rdlc. Please check the log files for more information.
这个问题是因为没有给子报表提供数据源,
在显示报表的事件里添加 reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
{
DataSet dataSet = null;
try
{
// Load data from XML file
ReportDataSource reportDataSource = GetData();
// Supply a DataTable corresponding to each report dataset. The dataset name must match the name defined in the main report stream
// (in the Name attribute of the <DataSets>\<DataSet> element.
e.DataSources.Add(reportDataSource);
}
finally
{
if (dataSet != null)
dataSet.Dispose();
}
}
相关文章推荐
- 开发ReportViewer中遇到的一些问题
- 开发ReportViewer中遇到的一些问题
- 最近oracle开发中遇到的一些问题及解决办法(四):调试存储过程--待续
- 开发多列AutoComplate功能遇到一些问题的总结
- android开发过程中遇到的一些问题(包括自定义ProgressBar, Intent, Animation, ListView, RadioButton)
- 最近我遇到的一些关于asp.net开发中的问题。。
- camera开发中遇到的一些问题, 备忘
- 最近oracle开发中遇到的一些问题及解决办法(五)待续
- 在线翻译小工具开发过程遇到的一些问题
- Windows7部署Android开发环境傻瓜式教程(遇到的一些问题)
- 开发CRM中遇到的一些问题总结
- android开发过程中遇到的一些问题汇总
- 在web application下对SPS的OM进行开发时遇到的一些问题
- 基于.net compact framework 2.0,C#开发windows mobile 5.0程序遇到的一些问题及解决办法
- 开发过程中遇到的一些问题
- 最近oracle开发中遇到的一些问题及解决办法(一)待续
- 项目开发过程中遇到的一些问题和解决办法(逐渐添加)
- 开发手机游戏遇到的一些问题及解决办法
- 搭建linux开发环境遇到的一些问题
- 初学软件开发可能会遇到了一些问题...