Parameters不显示问题
本帖最后由 linyimin 于 2024-8-14 16:22 编辑="编制人:"+(Parameters!编制人.Value).ToString()
ActiveReport 18 使用上面的配置字段显示,使用如下方式设置产生值,不显示,帮忙看一下是什么问题
private void GetParameterData(GrapeCity.ActiveReports.Core.Rendering.ReportParameters.ParameterCollection Pcol)
{
DataTable paramTable = new DataTable();
int bRet = m_rptData(paramTable, m_strReportName, "TitleDataSet", "TitleDataSet");
if (bRet == 1)
{
for (int i = 0; i < paramTable.Columns.Count; ++i)
{
string strColmn = paramTable.Columns.ColumnName;
object value = paramTable.Rows;
GrapeCity.ActiveReports.Core.Rendering.ReportParameters.Parameter ppm = GrapeCity.ActiveReports.Core.Rendering.ReportParameters.Parameter.Create(strColmn,
"",
ParameterType.String,
ParameterState.HasValidValue,
true,
false,
true,
false,
false,
false,
true,
OrderByCondition.Value,
OrderByDirection.Ascending);
ppm.CurrentValue = value;
Pcol.Add(ppm);
}
}
}
您好,这个其实您改一下数组即可:
pageReport.Report.ReportParameters.DefaultValue.Values.Add("参数1");
ReportParameters里面是我们设计的所有的参数,
我们可以通过这里面的name判断是哪一个参数,然后便利循环把参数给进去即可
大佬。您可以大概说一下您的这个方法使用地方吗。
看您第一个,是显示一个文本+参数。理论上参数外部传入即可。但是确定您第二块代码是在哪块调用的。可以说一下整个场景的使用。
Felix.Li 发表于 2024-8-15 17:38
大佬。您可以大概说一下您的这个方法使用地方吗。
看您第一个,是显示一个文本+参数。理论上参数外部传 ...
FileInfo info = new System.IO.FileInfo(m_strCurReport);
this.m_curPage = new GrapeCity.ActiveReports.PageReport(info);
PageDocument runtime = new PageDocument(this.m_curPage);
this.m_curPage.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(locateData);
//GetParameterData(runtime.Parameters);
DataTable paramTable = new DataTable();
paramTable.Columns.Add("制作人");
paramTable.Columns.Add("编制日期");
System.Data.DataRow rowData = paramTable.NewRow();
rowData = "张大师";
rowData = "2012-03-01";
for (int i = 0; i < paramTable.Columns.Count; ++i)
{
string strColmn = paramTable.Columns.ColumnName;
object value = paramTable.Rows;
GrapeCity.ActiveReports.Core.Rendering.ReportParameters.Parameter ppm = GrapeCity.ActiveReports.Core.Rendering.ReportParameters.Parameter.Create(strColmn,
"",
ParameterType.String,
ParameterState.HasValidValue,
true,
false,
true,
false,
false,
false,
true,
OrderByCondition.None,
OrderByDirection.Ascending);
ppm.CurrentValue = value;
runtime.Parameters.Add(ppm);
}
this.m_pageReportViewer.LoadDocument(m_curPage.Document);
就是通过这个PageDocument runtime.Parameters这个参数设置参数数据的,在ActiveReport 12版本,这样是没有问题正常的,升级到18后,报表就不显示相关参数数据了。 您可以试一下,把
PageDocument runtime = new PageDocument(this.m_curPage);
去了,直接用
this.m_curPage.Document
这个也是一个pageDocument对象,可以add参数
我使用你说的方法,this.m_curPage.Document.Parameters.Add数据,还是不行,报表回调数据时,sender对象也有我设置的参数数据,还是需要你们帮忙看一下,为什么,报表没有取到相关得参数数据,谢谢 这样,您看您能把项目的Demo给我们发一下嘛,我们这里也测试一下
抽一个简单的Demo即可。非常感谢
本帖最后由 linyimin 于 2024-8-20 14:55 编辑
Felix.Li 发表于 2024-8-19 18:08
这样,您看您能把项目的Demo给我们发一下嘛,我们这里也测试一下
抽一个简单的Demo即可。非常感谢
demo已经搞好,怎么发个你?现在发个你的我把你们编译出来的dll和编译需要的你们的dll依赖都去掉了需要你们自己搭建环境,把LbReportViewEx编译出来
调试:
1:双击ReportTest.exe运行出现以下界面
2:使用vs打开Report.sln
3:通过vs附件进程方式调试
4:单击重新加载数据按钮,就可以出发数据刷新,然后进行设置断点调试。谢谢
这个编制人地方没有显示相关数据 本帖最后由 Felix.Li 于 2024-8-20 17:56 编辑
看了您的,应该就是给参数的传值,我模拟的做了一个Demo。你可以参考一下:
您可以先看看对不对,如果不对,您可以说一下使用场景是什么,要怎么用大概说一下
页:
[1]
2