我有许多报告需要单独运行,也需要作为一个组运行.
我已经创建了这些报告,希望我可以创建一个表单,我可以将report1,report2,report3等一起添加到一起,而无需创建不同的报告并将所有这些报告都报告为子报告.
这可能吗?
编辑:我在.NET WinForms控件中显示它,但它也将导出为PDF,也许DOC,XLS等...
我已经在rdlc报告中编写了一种处理多个子报告的技术,但是由于我试图使其具有通用性和可重复性,因此我不得不采用模型并针对每种情况稍微调整一下.
例如,如果我定义一个抽象接口,就像这样,我只需根据需要将其从winform剪切并粘贴到winform:
abstract class ISolutionStrategy
{
public abstract void AlgorithmInterface(Int64 searchCriteria, SubreportProcessingEventArgs e);
}
Run Code Online (Sandbox Code Playgroud)
首先,我希望能够通过包含has-a对象将其带入每种形式.我还想封装委托处理调度的行为,并使处理方法也"通用".
因此,设计要求是:
目标是制作一个可以独立测试并且坚固耐用的物体,也不必剪切和粘贴滚轮,并为每个新的winform做一堆手动调整.
在我看来,有人找到了比我现在更好的设计.
创建一个可以包含在winform中的对象,以处理多个子报表处理
到目前为止,我在本地表单加载事件中有一个委托:
this.reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
Run Code Online (Sandbox Code Playgroud)
它由*LocalReport_SubreportProcessing*方法中的switch语句处理.
该方法的主体包含一个switch语句:
void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
{
String commonSubreportKey = _commonSubreportKey;
switch (e.ReportPath)
{
case "rptSubAlternateParts":
runSubAlternatePart(e, commonSubreportKey, new GetAlternateParts());
break;
case "rptSubGetAssemblies":
runSubFailurePart(e, commonSubreportKey, new GetAssemblies());
break;
case "rptSubGetAssemblies":
runSubGetGetEndItemLRMFailureInfo(e, commonSubreportKey, new GetEndItemLRMFailureInfo());
break;
case "rptSubGetAssemblies":
runSubGetSubAssemblies(e, commonSubreportKey, new GetSubAssemblies());
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
在旁边:在我看来,与我考虑的替代方案相比,这种转换大多是人类可读的.我考虑使用带有报告名称的哈希作为键,并将函数调用数据作为值.但是,我真的不知道怎么做,我认为其他人更难理解.
之后,调用一个函数,该函数重新排列switch语句中从函数调用传递的信息:
private static void …Run Code Online (Sandbox Code Playgroud) 在我的项目中有三个报告 - 主报告和两个子报告,每个报告都有自己的数据集(所有数据集共有的唯一列是ItemID).主报告将ItemID作为参数传递给它的两个子报告中的每一个.
主报表以类似于表单的布局构建,即我使用List控件并在List主体内排列主报表字段.(我每次只需要显示一条记录,所以我选择了List而不是Table或Matrix.)
如果我将其中一个子报表添加到主报表正文(即在List正文中),它就可以正常工作.但是,如果我尝试将其他子报表添加到主报表中,则数据仅显示在子报表中,而主报表的字段为空(不显示主报表数据集中的数据).我不明白为什么会这样.
这可能是什么问题?
我会感激任何帮助.
我正在寻找如何在春季使用子报告设置jasper报告的指南.我有很好的java和弹簧知识,但是碧玉让我很困惑.
谁能指出我正确的方向?我试过跟随其他人的问题和答案,如 Jasper Reports中的Subreports 直接嵌入在JasperReports中的子 报告/sf/ask/154698421/在页号码-OF-SUBSEQ
但没有运气.
只是寻找指南或其他东西.
我的主要问题是所有指南都使用简单的类型.我需要一些能够向我解释如何使用复杂类型的东西,比如列表中的列表.或收藏品等
有人有主意吗?