如何在服务层获取简单账表数据结果
来源:互联网 发布:开个淘宝店 编辑:程序博客网 时间:2024/06/08 08:13
在项目实施中,总会碰到这样的需求:需要将系统中某些报表的数据传递给第三方系统。假如实施的系统是K/3 WISE,那么恭喜你,你需要自己跟踪SQL语句,把报表逻辑重新实现一遍。不过在K/3 Cloud,你不需要这么做,依托强大的BOS平台(这点必须好好吹),通过调用接口的方式即可轻松获取简单账表数据。
当然,本技巧有前提条件:简单账表的过滤条件必须事先有保存方案。毕竟通过纯编码的方式构建过滤条件是一件很麻烦的事情。
废话不多说,我们以【财务会计】—【应收款管理】—【报表分析】-【应收款账龄分析表】为例,来教大家如何调用。
当然,本技巧有前提条件:简单账表的过滤条件必须事先有保存方案。毕竟通过纯编码的方式构建过滤条件是一件很麻烦的事情。
废话不多说,我们以【财务会计】—【应收款管理】—【报表分析】-【应收款账龄分析表】为例,来教大家如何调用。
直接上代码!
using Kingdee.BOS.Contracts;using Kingdee.BOS.Core;using Kingdee.BOS.Core.DynamicForm;using Kingdee.BOS.Core.DynamicForm.PlugIn;using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;using Kingdee.BOS.Core.Report;using Kingdee.BOS.Core.ReportFilter;using Kingdee.BOS.Model.CommonFilter;using Kingdee.BOS.Model.ReportFilter;using Kingdee.BOS.ServiceHelper;ISysReportService sysReporSservice = ServiceFactory.GetSysReportService(this.Context);IPermissionService permissionService = ServiceFactory.GetPermissionService(this.Context);var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(this.Context);//加载字段比较条件元数据。var reportMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, "AR_AgingAnalysis");//加载应收款账龄分析表元数据。var reportFilterMetadata = FormMetaDataCache.GetCachedFormMetaData(this.Context, "AR_AgingAnalysisFilter");//加载应收款账龄分析表过滤条件元数据。var reportFilterServiceProvider = reportFilterMetadata.BusinessInfo.GetForm().GetFormServiceProvider();var model = new SysReportFilterModel();model.SetContext(this.Context, reportFilterMetadata.BusinessInfo, reportFilterServiceProvider);model.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;model.FilterObject.FilterMetaData = filterMetadata;model.InitFieldList(reportMetadata, reportFilterMetadata);model.GetSchemeList();var entity = model.Load("57fc5b64cc45d7");//过滤方案的主键值,可通过该SQL语句查询得到:SELECT * FROM T_BAS_FILTERSCHEMEvar filter = model.GetFilterParameter();IRptParams p = new RptParams();p.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;p.StartRow = 1;p.EndRow = int.MaxValue;//StartRow和EndRow是报表数据分页的起始行数和截至行数,一般取所有数据,所以EndRow取int最大值。p.FilterParameter = filter;p.FilterFieldInfo = model.FilterFieldInfo;p.BaseDataTempTable.AddRange(permissionService.GetBaseDataTempTable(this.Context, reportMetadata.BusinessInfo.GetForm().Id));using (DataTable dt = sysReporSservice.GetData(this.Context, reportMetadata.BusinessInfo, p)){ //dt就是报表数据,接下来就是你发挥的时间。}ServiceFactory.CloseService(sysReporSservice);ServiceFactory.CloseService(permissionService);
阅读全文
0 0
- 如何在服务层获取简单账表数据结果
- 在客户端调用WebService服务获取数据
- SOA 探索之 :数据服务层如何加速 SOA 实现
- JDBC中如何通过结果集获取元数据
- 如何在Android源码中加入Java层系统服务。
- 获取SSDT服务表数据
- 如何在java code 中获取 dbms_output 的结果
- springmvc的controller层如何获取到请求的数据
- 如何简单的获取数据链接字符串
- NS2如何在路由层获取队列的长度
- NS2如何在路由层获取队列的长度
- 如何在SpringMVC 的@Controller 层中获取bean
- sql server如何在查询结果页面直接编辑数据?
- 业务层 、服务层、数据层、表现层
- 1.业务层 、服务层、数据层、表现层
- 如何简单快速的在应用层调节亮度
- 如何在H264数据中获取PTS?
- 如何在H264数据中获取PTS?
- 2 基数与选择性--优化主题系列
- Slice
- MySQL的坑 Can't find file: './mysql/plugin.frm' 问题
- OSS 视频或图片上传
- UVa12716
- 如何在服务层获取简单账表数据结果
- deb包的制作
- 在Eclipse中配置Maven插件
- ThoughtWorks2017(体育馆)
- ArcGIS 在地图上添加标注
- linux 同步时间
- 破解 intelliJ idea 2017
- C++多态性(一)
- HDU