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

账表.二开案例.单据联查报表

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

账表.二开案例.单据联查报表

【场景】单据联查报表,在单据界面打开账表,并使用当前单据数据进行过滤 【案例】 场景一: 报表是自定义报表,能够修改代码;或者能够接收传入参数过滤 (1)账表逻辑,能够接收自定义参数的指定字段,修改过滤参数 ![image.webp](/download/0100fa6fd565f47c48109f0b3bb8957a80a8.webp) (2)表单插件逻辑:写入指定字段的值到过滤参数中(也就是对应字段是过滤见面的一个可设置字段) ```csharp SysReportShowParameter rptShowParam = new SysReportShowParameter { FormId = "k6c0443d5529e41079e83a1038d75d6c4", IsShowFilter = false, }; rptShowParam.OpenStyle.ShowType = Kingdee.BOS.Core.DynamicForm.ShowType.MainNewTabPage; rptShowParam.CustomParams["AcctSystemID"] = "100"; this.View.ShowForm(rptShowParam); ``` 不显示过滤界面,传入参数AcctSystemID到服务插件处理 场景二: 报表是非自定义报表,无法直接追加代码,没有接收自定义参数过滤的逻辑, (1)账表逻辑,继承原有报表服务插件生成临时表,先生成原临时表,生成后根据自定义参数再进行过滤 ![Image_20230414201159.webp](/download/010013cb6a45223f480f8f5a30e3da5f3df4.webp) (2)表单插件逻辑:传入自定义的过滤条件 ```csharp using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Report; using System; using System.Collections.Generic; using System.Text; namespace DynamicFormPlugIn.Report { [Kingdee.BOS.Util.HotUpdate] [System.ComponentModel.Description("扩展报表增加自定义过滤")] public class SimpleReportDemoServicePlugIn_Extend : SimpleReportDemoServicePlugIn { public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { string filterString = string.Empty; //<0>获取表单打开参数的自定义条件 if (filter.CustomParams != null) { var openParam = filter.CustomParams["OpenParameter"] as Dictionary<string, object>; if (openParam != null && openParam.ContainsKey("Custom_Filter")) { filterString = Convert.ToString(openParam["Custom_Filter"]); } } //<1>没有过滤条件时按照原逻辑处理 if (string.IsNullOrEmpty(filterString)) { base.BuilderReportSqlAndTempTable(filter, tableName); return; } string tmpTableName = null; try { // <2>得到标准报表的数据 tmpTableName = Kingdee.BOS.ServiceHelper.DBServiceHelper.CreateTemporaryTableName(this.Context); base.BuilderReportSqlAndTempTable(filter, tmpTableName); // <3>加入自定义过滤,得到新的报表数据 StringBuilder rptSql = new StringBuilder(); rptSql.AppendLine("/*dialect*/ SELECT billid, FBillNo, FMaterialFNumber,FQty"); rptSql.AppendLine(string.Format(" , {0} INTO {1} FROM {2} WHERE

账表.二开案例.单据联查报表

【场景】单据联查报表,在单据界面打开账表,并使用当前单据数据进行过滤【案例】场景一: 报表是自定义报表,能够修改代码;或者能够接收...
点击下载文档文档为doc格式

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

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