账表.二开案例.打开sql报表传入关键字

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

账表.二开案例.打开sql报表传入关键字

【场景】打开sql报表不显示过滤界面直接显示数据 【方案一】设置下次以此方案自动打开,在sql 报表表单插件中实现接受自定义参数并设置到关键字 [二开案例.账表表单插件.直接SQL账表双击数据行打开新账表](https://wenku.my7c.com/article/251423606071644416?channel_level=%E9%87%91%E8%9D%B6%E4%BA%91%E7%A4%BE%E5%8C%BA%7C%E6%90%9C%E7%B4%A2%7C%E7%BB%BC%E5%90%88&productLineId=1&isKnowledge=2) 【方案二】利用过滤界面二开,接受自定义参数时自定提交过滤方案 (0) sql报表,sql关键字 ![image.webp](/download/0100bde64cf1c1b34f2992f7a1d6729ecad8.webp) (1) sql报表过滤界面,扩展或者复制一个,增加插件逻辑接受参数自定提交 ![image.webp](/download/010016460a41194749f5bafd63ed73475c42.webp) (2) 采购订单界面,选中行双击时传入物料进行过滤 ![image.webp](/download/0100ffb0f17b6e01427b947d4676bea6144d.webp) ```csharp using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.CommonFilter; using Kingdee.BOS.Core.CommonFilter.PlugIn; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.ReportFilter; using Kingdee.BOS.JSON; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DynamicFormPlugIn.Report { public class KeyConst { public const string KeyWordPara = "CustomPara_KeyWord"; } [Kingdee.BOS.Util.HotUpdate] public class ReportFilterPlugIn : AbstractCommonFilterPlugIn { public override void AfterBindData(EventArgs e) { base.AfterBindData(e); /* * 利用父视图自定义参数,获取是否存在自定义值 */ if (View == null || View.ParentFormView == null) return; object keyWordVal = View.ParentFormView.OpenParameter.GetCustomParameter(KeyConst.KeyWordPara, true); JSONArray keyWordMap = keyWordVal as JSONArray; if (keyWordMap == null) return; ISQLReportFilterModelService modelService = View.Model as ISQLReportFilterModelService; if (modelService == null) return; ((SQLFilterSchemeEntity)modelService.SchemeEntity).SQLFilterSetting = keyWordMap.ToString(); modelService.SQLFilterObject.Setting = ((SQLFilterSchemeEntity)modelService.SchemeEntity).SQLFilterSetting; ICommonFilterView filterView = View as ICommonFilterView; filterView.SubmitQuery(null); } } [Kingdee.BOS.Util.HotUpdate] public class BillPlugInForRpt : AbstractBillPlugIn { public override void EntityRowDoubleClick(EntityRowClickEventArgs e) { base.EntityRowDoubleClick(e); if (!e.Key.EqualsIgnoreCase("FPOOrderEntry")) return; /* * 获取对应行物料,作为条件打开直接SQL账表 */ DynamicObject materialObj = Model.GetValue("FMaterialId", e.Row) as DynamicObject; if (materialObj == null || !materialObj.DynamicObjectType.Properties.ContainsKey("Number")) return; var materialNumber = ObjectUtils.Object2String(materialObj["Number"]); JSONArray keyWordMap = new JSONArray(); JSONObject materialNumberPara = new JSONObject(); materialNumberPara.Add("KeyWord", "#MaterialNumber#"); materialNumberPara.Add("Value", materialNumber); materialNumberPara.Add("IsTitle", false); keyWordMap.Add(materialNumberPara); Kingdee.BOS.Core.Report.SQLReportShowParameter showPara = new Kingdee.BOS.Core.Report.SQLReportShowParameter(); showPara.FormId = "k4c28463dd4074575b63bcb0c3826a535"; showPara.OpenStyle.ShowType = ShowType.MainNewTabPage; showPara.CustomComplexParams[KeyConst.KeyWordPara] = keyWordMap; View.ShowForm(showPara); } } } ``` (3) 效果 ![动画3.webp](/download/01001a0e31072f92489ca6a1ac2b2940b738.webp) (4)sql报表关键字的json结构 ![image.webp](/download/0100bfd8785810c746ce959923f6c1dd062f.webp)


Mark!~,貌似是非常用的一篇。

账表.二开案例.打开sql报表传入关键字

【场景】打开sql报表不显示过滤界面直接显示数据【方案一】设置下次以此方案自动打开,在sql 报表表单插件中实现接受自定义参数并设置到关...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息