EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

就地报告

通过Reports V2模块,您可以为经过过滤的Reports V2数据源设计报告(请参阅Reports V2中的数据过滤)。在某些情况下,您可能需要预览与标准不相关的某个对象或一组对象的报告。例如,发票业务对象应该能够以特定的方式打印。在这种情况下,应该可以使用经过特殊设计的报告来显示特定的发票对象集。为此,请使用Reports V2模块提供的就地报告功能。本主题演示如何使用此功能。

为了显示指定报告中的选定对象,Reports V2模块引入了ShowInReport Action。此Action表示SingleChoiceAction类实例。它的项目代表为当前View的对象类型设计的所谓就地报告。

InplaceReports

InplaceReports_Web

执行此操作时,选定的报告将显示在“预览”窗口中。该报告显示在当前“详细信息视图”或“列表视图”中选择的对象。为了进行渲染,XAF根据所选项目更改了报表数据源的DataSourceBase.Criteria属性。

InplaceReports_Preview

InplaceReports_Preview_Web

ShowInReport操作包含在PrintSelectionBaseController。该控制器收集适合于当前对象类型的就地报告,并为操作创建相应的项目。如果当前对象类型没有适当的就地报告,则不会激活ShowInReport Action。在实现自定义功能时,从此控制器继承或使用其事件。该控制器没有特定于平台的后代。

就地报告表示可以在XAF应用程序中创建的常见报告。要就地制作报告,应将ReportData.IsInplaceReport属性设置为true。(默认情况下,此属性设置为false。)要指定此属性,请为所需报告调用详细视图。为此,请在WinForms应用程序中使用EditReportController.Edit操作。

InplaceReports_EditAction

在ASP.NET应用程序中,由于Reports V2体系结构,您不能为报表调用详细视图。假定最终用户只能在WinForms应用程序中设计和编辑报表。在ASP.NET应用程序中,他们只能查看和保存它们。

注意
  • 如果有未保存的更改,ShowInReport操作将被禁用。您需要提交更改以预览报告。
  • ShowInReport操作使用就地报告缓存来生成和存储操作的项目。请注意,此缓存不会自动更新。请参阅InplaceReportsCacheHelper类说明,以获取有关如何手动更新此缓存的信息。

应用程序模型IModelNavigationItemsForReports.GenerateRelatedReportsGroup属性指定的上下文导航是否被用于启用报表V2模块。当此属性设置为true时Reports V2模块将为与参与现有就地报告的业务类别相对应的项目添加导航项目。每个添加的项目代表一个就地报告。有关上下文导航的其他信息,请参阅导航系统帮助主题。

您可以禁用就地报告功能。为此,请使用以下技术之一:

  • 应用程序设计器中

    在“模块”部分中 选择“ Reports V2模块,然后在“属性”窗口中将EnableInplaceReports属性设置为false

  • 在代码中:

    在创建XafApplication对象之前,请将静态ReportsModule.DefaultEnableInplaceReports属性设置为false

若要创建预定义的就地报告,请使用带有isInplaceReport参数的PredefinedReportsUpdater.AddPredefinedReport方法重载。

predefinedReportsUpdater.AddPredefinedReport<XtraReport1>(
    "My Inplace Report", typeof(Contact), isInplaceReport: true);

转载保留此链接,注明出处