电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.账表.单据中获取分页账表数据

来源:金蝶云社区作者:金蝶2024-09-237

二开案例.账表.单据中获取分页账表数据

**【应用场景】** 单据中获取分页账表每页的数据。 **【案例演示】** <1>编写单据插件,动态构建分页账表视图并获取数据,代码如下。 ``` csharp using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.Report; using Kingdee.BOS.Model.ReportFilter; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Serialization; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Globalization; using System.Text; namespace Kingdee.BOS.PlugInTest { [Description("【单据插件】获取分页账表数据"), HotUpdate] public class GetMoveReportBillPlugIn : AbstractBillPlugIn { private FormMetadata _reportMetadata = null; private IRptParams _rptParam = null; /// <summary> /// 菜单点击事件 /// </summary> /// <param name="e"></param> public override void BarItemClick(BarItemClickEventArgs e) { base.BarItemClick(e); if (e.BarItemKey.EqualsIgnoreCase("tbGetMoveReportData")) { // rpt.DataSource 获取账表的DataTable Dictionary<int, IMoveReport> rtnDIc = new Dictionary<int, IMoveReport>(); // 库存账龄分析表【STK_InvAgeAnalyzeRpt】 // 库存账龄分析表过滤框 【STK_InvAgeAnalyzeFilter】 // 通过T_BAS_FILTERSCHEME查询过滤方案ID 【66a45b74a29579】 var rpt = GetReportData(this.Context, "STK_InvAgeAnalyzeRpt", "STK_InvAgeAnalyzeFilter", "66a45b74a29579", 0); rtnDIc[0] = rpt; // 获取其他分页 if (rpt.ListCount > 1) { for (int i = 1; i < rpt.ListCount; i++) { var tmpRpt = GetReportData(this.Context, i); rtnDIc[i] = tmpRpt; } } // 执行后续操作,这里是展示信息 StringBuilder str = new StringBuilder(1024); str.AppendLine(string.Format("账表共有{0}分页", rpt.ListCount)); for (int i = 0; i < rpt.ListCount; i++) { var tmpRpt = rtnDIc[i]; str.AppendLine(string.Format("分页{0}对应临时表{1},共有{2}条数据", i + 1, tmpRpt.DataSource.TableName, tmpRpt.DataSource.Rows.Count)); } this.View.ShowMessage(str.ToString()); } } /// <summary> /// 获取分页账表数据 /// </summary> /// <param name="ctx">执行上下文</param> /// <param name="rptFormId">账表FormId</param> /// <param name="rptFilterFormId">账表过滤方案FormId</param> /// <param name="schemeId">过滤方案内码</param> /// <param name="currentPosition">分页账表当前位置</param> /// <returns></returns> private IMoveReport GetReportData(Context ctx, string rptFormId, string rptFilterFormId, string schemeId, int currentPosition) { var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(ctx); // 加载分页报表元数据 var reportMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, rptFormId); // 加载分页报表过滤条件框元数据 var reportFilterMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, rptFilterFormId); var reportFilterServiceProvider = reportFilterMetadata.BusinessInfo.GetForm().GetFormServiceProvider(); var model = new SysReportFilterModel(); model.SetContext(ctx, reportFilterMetadata.BusinessInfo, reportFilterServiceProvider); model.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id; model.FilterObject.FilterMetaData = filterMetadata; model.InitFieldList(reportMetadata, reportFilterMetadata); model.GetSchemeList(); var entity = model.Load(schemeId); var dyn = DeserializeCustomFilter(reportFilterMetadata.BusinessInfo, entity.CustomFilterSetting); model.DataObject = dyn; var filter = model.GetFilterParameter(); IRptParams rptParam = new RptParams();

二开案例.账表.单据中获取分页账表数据

**【应用场景】** 单据中获取分页账表每页的数据。**【案例演示】** <1>编写单据插件,动态构建分页账表视图并获取数据,代码如...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信