用友U9报表处理策略_第1页
用友U9报表处理策略_第2页
用友U9报表处理策略_第3页
用友U9报表处理策略_第4页
用友U9报表处理策略_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、U9报表处理策略报表处理策略课程编号:课程编号: 报表处理策略项目报表处理策略项目 重写关键方法重写关键方法 报表与策略关系绑定报表与策略关系绑定 报表处理策略部署报表处理策略部署报表处理策略报表处理策略处理策略概念处理策略概念报表平台不可能满足所有报表的需求,策略提供了一种让开发人报表平台不可能满足所有报表的需求,策略提供了一种让开发人员参与控制报表查询方案和动态调整报表布局的能力员参与控制报表查询方案和动态调整报表布局的能力策略的功能策略的功能设置查询方案的默认值:当前登录组织、日期、统计期间等设置查询方案的默认值:当前登录组织、日期、统计期间等动态设置查询方案中的条件,栏目,分组排序等选

2、项。动态设置查询方案中的条件,栏目,分组排序等选项。对输入条件的验证:根据业务规则对用户录入的信息进行校验。对输入条件的验证:根据业务规则对用户录入的信息进行校验。根据用户的输入动态调整最后的报表模型。根据用户的输入动态调整最后的报表模型。创建处理策略项目创建处理策略项目基类基类ReportProcessStrategy手工创建手工创建创建创建xxxRptProcessStrategy类,继承类,继承ReportProcessStrategy添加引用添加引用U9.VOB.Product.ComponentUBFUFIDA.U9.Query.QueryCaseBP.Deploy.dllU9.VO

3、B.Product.ComponentUIUFIDA.U9.SCM.Pub.ReportStrategy.dllU9.VOB.Product.ComponentUIUFIDA.U9.CBO.Report.UI.dllU9.VOB.Product.UBFUBFStudioRuntimeUFIDA.U9.UI.PDHelper.dllU9.VOB.Product.UBFUBFStudioRuntimeUFIDA.UBF.Query.CaseModel.dllU9.VOB.Product.UBFUBFStudioRuntimeUFIDA.UBF.Report.App.UI.dllU9.VOB.Pro

4、duct.UBFUBFStudioRuntimeUFSoft.UBF.Report.Entity.dllU9.VOB.Product.UBFUBFStudioRuntimeUFSoft.UBF.Report.ExtendLibrary.dllU9.VOB.Product.UBFUBFStudioRuntimeUFSoft.UBF.UI.ActionProcess.dllU9.VOB.Product.UBFUBFStudioRuntimeUFSoft.UBF.UI.Portal.dllU9.VOB.Product.UBFUBFStudioRuntimeUFSoft.UBF.View.Query.

5、dll重写基类方法重写基类方法-ProcessCaseDefine方法方法重写重写ProcessCaseDefine方法方法调用时机:调用时机: 弹出查询方案前弹出查询方案前处理条件项定义信息:参数赋默认值、调整参照、弹性域处理处理条件项定义信息:参数赋默认值、调整参照、弹性域处理示例示例 public override CaseDefine ProcessCaseDefine(Case usercase, CaseDefine caseDefine) caseDefine = base.ProcessCaseDefine(usercase, caseDefine); /组织赋默认值 Repo

6、rtStrategyHelper.SetDefaultValue( caseDefine.FilterDefines.GetObjectByName(LogisticOrg_Code), PDContext.Current.OrgRef.NameColumn, PDContext.Current.OrgRef.CodeColumn, UFSoft.UBF.Report.Filter.enuOperatorListType.Equal); return caseDefine; 重写基类方法重写基类方法- VerifyParameters方法方法重写重写VerifyParameters方法方法调用

7、时机:报表查询前对录入信息进行校验调用时机:报表查询前对录入信息进行校验校验参数合法性校验参数合法性示例示例 public override string VerifyParameters(Case usercase, CaseDefine caseDefine) string note = base.VerifyParameters(usercase, caseDefine); if (note != null) return note; if (usercase != null) if (usercase.Columns.Count = 0) return 请选择栏目!; FilterVa

8、lue RMA_BusinessDate = usercase.FilterValues.GetObjectByName(RMA_BusinessDate); if (Convert.ToDateTime(RMA_BusinessDate.Values.Values0).CompareTo(Convert.ToDateTime(RMA_BusinessDate.Values.Values1) 0) return 开始日期不能大于结束日期!; return null; 重写基类方法重写基类方法- ProcessFormat方法方法重写重写ProcessFormat方法方法调用时机:校验通过后对设

9、计态保存到数据库的调用时机:校验通过后对设计态保存到数据库的报表模板进行最后的调整报表模板进行最后的调整protected override void ProcessFormat() base.ProcessFormat(); if (m_case = null) return; IDynamicTemplateGenerator generator = DynamicTemplateGenerator.GetInstance(m_reportTemplate); ITableSchema tableSchema = generator.GetDefaultTableSchema(); /加入

10、自己处理格式的操作 int SOBFormat = 0; if (ReportAppService.GetFilterValue(SOBFormat, m_case) != null) SOBFormat = int.Parse(ReportAppService.GetFilterValue(SOBFormat, m_case).Values0); /账簿格式 if (SOBFormat = 1) /删除数量和调整数量 tableSchema.RemoveColumn(Amount, true); /删除调整数量 tableSchema.RemoveColumn(AdjustAmount, t

11、rue); tableSchema.AdjustTableHead(); m_loadReportTemplateArgs.DefaultTemplate = generator.GetTemplate(); 重写基类方法重写基类方法- FilterItemChangedEventHandler方法方法重写重写FilterItemChangedEventHandler方法方法条件值发生变化时的处理入口,调整条件值、查询方案条件值发生变化时的处理入口,调整条件值、查询方案示例示例 public override void FilterItemChangedEventHandler(FilterD

12、efine sourceDefine, CaseModel casemodel) if (sourceDefine.Name.Equals(CategoryKind) ReportStrategyHelper.ProcessCategoryKindChange(sourceDefine, casemodel, CategoryKind, Category_); 重写基类方法重写基类方法- GetThroughToDocParameter方法方法重写重写GetThroughToDocParameter方法方法钻取到单据设置钻取到单据设置示例示例public override ThroughToD

13、ocParameter GetThroughToDocParameter(ReportDrillthroughArgs args) /更换/维修 if (args.ParametersShip_ID != null) ThroughToDocParameter docPar = new ThroughToDocParameter(); /FormID 出货单 /17出货单 docPar.PartID = 824496cc-bb94-472c-950e-4adfaec2f2c6; NameValueCollection pars = new NameValueCollection(); /par

14、m.DocID,单据ID pars.Add(ID, args.ParametersShip_ID); /DocOrg,单据组织ID pars.Add(UFIDA.U9.UI.Commands.CommandArgsConstant.TargetOrgParamFlag, args.ParametersShip_Org); docPar.TargetParms = pars; return docPar; return null; 策略代码编写说明策略代码编写说明写好构造函数写好构造函数报表的策略类的实例是反射创建的,没有合适的构造函数会导致报表的策略类的实例是反射创建的,没有合适的构造函数会导

15、致你的策略对象无法创建,导致你的代码无法被调用你的策略对象无法创建,导致你的代码无法被调用示例示例public solineProcessStrategy() public solineProcessStrategy(LoadReportTemplateArgs loadReportTemplateArgs, Case usercase) : base(loadReportTemplateArgs, usercase) public solineProcessStrategy(LoadReportTemplateArgs loadReportTemplateArgs, Case usercas

16、e, CaseDefine usercaseDefine) : base(loadReportTemplateArgs, usercase, usercaseDefine) 策略代码编写说明策略代码编写说明调整报表模型的方法调整报表模型的方法直接操作报表对象直接操作报表对象(操作一个文本框的例子操作一个文本框的例子)m_loadReportTemplateArgs.DefaultTemplate.ReportBody.ReportItems.Tables0.Header.Rows0.TableCells0.ReportItems.TextBoxs0.Text = xyz;优点:优点: 该方法可

17、以操作报表对象的任何属性。缺点:缺点: 要完全了解报表对象的结构。策略代码编写说明策略代码编写说明调整报表模型的方法调整报表模型的方法使用系统提供的使用系统提供的API操作报表对象操作报表对象示例示例 操作表操作表 IDynamicTemplateGenerator helper = DynamicTemplateGenerator.GetInstance(this.m_reportTemplate); ITableSchema tableSchema = helper.GetDefaultTableSchema(); tableSchema.MergeBaseTableRegion(UFSoft.UBF.Report.enuTableRegionType.Head); tableS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论