账表.二开案例.打开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 报表表单插件中实现接受自定义参数并设置到关...
点击下载文档
本文2024-09-16 18:20:09发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-21480.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章