实现单据调用系统标准账表,单据字段传值到账表过滤条件原创
18人赞赏了该文章
1,906次浏览
编辑于2022年06月30日 13:44:29
此方法适用于在单据上调用显示系统标准账表,同时将单据某些值,赋值给账表的过滤条件。总的逻辑并不复杂,有基础开发知识就能理解。核心就是showParameter的自定义参数传递。
涉及需要注册的插件:
1.单据表单插件;
public class ApplySubledgerForAcctItems : AbstractBillPlugIn { public override void BarItemClick(BarItemClickEventArgs e) {//点击按钮事件 base.BarItemClick(e); //当点击这个按钮,触发 if (e.BarItemKey.Equals("tbGL_RPT_SubledgerForAcctItems")) { //调用,系统标准账表 DynamicObject FSUPPLIERID = this.View.Model.GetValue("FSUPPLIERID") as DynamicObject; string supplierNumber = FSUPPLIERID["Number"].ToString(); string pageId = Guid.NewGuid().ToString(); MoveReportShowParameter showParameter = new MoveReportShowParameter(); showParameter.CustomComplexParams.Add("supplierNumber", supplierNumber);//要传递的参数 showParameter.FormId = "GL_RPT_SubledgerForAcctItems"; showParameter.PageId = pageId; this.View.ShowForm(showParameter); } } }
2.账表表单插件;
public class REGL_RPT_SubledgerForAcctItems : AbstractSysReportPlugIn { public override void OnInitialize(InitializeEventArgs e) { base.OnInitialize(e); if (this.View.OpenParameter.GetCustomParameter("supplierNumber") != null)//首先判断是否由单据调用,并且有值,否则单独打开账表时会报错 { string supplierNumber = this.View.OpenParameter.GetCustomParameter("supplierNumber").ToString(); //接收单据传过来的值 SysReportShowParameter param = new SysReportShowParameter(); param.CustomParams.Add("supplierNumber", supplierNumber);//将单据传过来的值,又传给过滤窗口 } else { return; } } }
3.账表过滤窗口表单插件;
public class REGL_RPT_SubledgerForAcctItemsFilter:AbstractReportFilter { public override void TreeNodeClick(TreeNodeArgs e) { base.TreeNodeClick(e); if (this.View.ParentFormView.OpenParameter.GetCustomParameter("supplierNumber") != null) { var supplierNumber = this.View.ParentFormView.OpenParameter.GetCustomParameter("supplierNumber");//获取账表表单插件传过来的值 this.View.Model.SetValue("FSTARTDETAIL", supplierNumber);//对过滤窗口字段赋值 this.View.Model.SetValue("FNOBALANCE", false); ((IDynamicFormViewService)this.View).ButtonClick("FBTNOK", string.Empty);//模拟过滤窗口确定按钮点击 } } }
赞 18
18人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读