C#表单插件F7Select事件,实现界面交互
1,案例以,f7打开一个列表获取选中行数据填充到当前字段
2,返回数据或者列表双击,获取名称填充到当前字段
代码实现如下:
public override void BeforeF7Select(BeforeF7SelectEventArgs e) { base.BeforeF7Select(e); string key = e.FieldKey.ToUpper(); if (key.Equals("F_TAIC_NAME")) { int row = e.Row; ListShowParameter listShowParameter = new ListShowParameter(); //FormId你要调用那个单据的列表,通过打开未扩展的销售订单,找到唯一标识 listShowParameter.FormId = "TAIC_qlkj_Customer"; //IsLookUp弹出的列表界面是否有“返回数据”按钮 listShowParameter.IsLookUp = true; //只显示基本信息 listShowParameter.ListType = Convert.ToInt32(BOSEnums.Enu_ListType.BaseList); //全部显示,默认全部显示 listShowParameter.ListType = Convert.ToInt32(BOSEnums.Enu_ListType.List); //过滤已审核数据 listShowParameter.ListFilterParameter.Filter = listShowParameter.ListFilterParameter.Filter.JoinFilterString(" F_TAIC_customertype ='A' and FDocumentStatus='C'"); //是否显示复选框。默认是true,如果false就是不显示 listShowParameter.MultiSelect = false; this.View.ShowForm(listShowParameter, delegate (FormResult results) { ListSelectedRowCollection data = results.ReturnData as ListSelectedRowCollection; if (data != null) { this.View.Model.SetValue("F_TAIC_name", Convert.ToString(data[0].Name)); this.View.UpdateView("F_TAIC_name",0); } }); } }
一,这里界面交互弹出一个单据界面写法相同,
1,DynamicFormShowParameter:打开动态表单
DynamicFormShowParameter formPa = new DynamicFormShowParameter();//创建动态表单 formPa.Resizable = false; formPa.OpenStyle.ShowType = ShowType.Modal; //把数据传给子页面 dynamicFormShowParameter.CustomComplexParams.Add("F_TAIC_str",this.View.Model.GetValue("F_TAIC_str", 0) + ""); formPa.FormId = "TAIC_wbbjq";//动态表单FormId //formPa.Height = 400;//设置弹出窗口的高度 //formPa.Width = 2000;//设置弹出窗口的宽度 this.View.ShowForm(formPa, data => { if (data != null && data.ReturnData != null) { DynamicObject obj = data.ReturnData as DynamicObject; } });
如果是打开子界面,点击确认回传数据给父界面拿到对应数据results解析,在子界面点击确认时返回数据,或者拿到父界面传过来的值填充当前界面
public override void AfterCreateNewData(EventArgs e) { base.AfterCreateNewData(e); //获取主页面弹出动态表单时传过来的数据 string Data = this.View.OpenParameter.GetCustomParameter("F_TAIC_str").ToString(); this.View.Model.SetValue("F_TAIC_DynamicText", Data, 0); } public override void AfterButtonClick(AfterButtonClickEventArgs e) { base.AfterButtonClick(e); if (e.Key.ToUpper() == "F_QLKJ_BUTTON") { DynamicObject data = this.View.Model.DataObject; //把数据返回给主界面 this.View.ReturnToParentWindow(new FormResult(data)); this.View.Close();//关闭弹出来的窗口 } }
2,BillShowParameter:打开单据
BillShowParameter showPara1 = new BillShowParameter() { FormId = "CB_EXPENSECOLLECTION", Status = OperationStatus.EDIT, PageId = Guid.NewGuid().ToString(), OpenStyle = { ShowType = ShowType.MainNewTabPage }, }; showPara1.PKey = fid;//单据对应Fid this.View.ShowForm(showPara1);
3,SysReportShowParameter :打开账表
1.源单表单插件:
var showParam = new SysReportShowParameter(); showParam.FormId = "CB_CostCalcSummary"; showParam.ParentPageId = this.View.PageId; showParam.CustomComplexParams["FSelectId"] = fid;//要传递的参数 showParam.OpenStyle.ShowType = ShowType.MainNewTabPage; this.View.ShowForm(showParam); //直接sql帐表显示参数 SysReportShowParameter sqlParameter = new SysReportShowParameter(); sqlParameter.FormId = "kaa03adeaa7704e1a99b136df0a1df82a"; //这个没有用,直接sql帐表不会自动加上,只要在列表过滤中有用 // sqlParameter.ReportFilterParameter.Filter = columnValue; //sqlParameter.ParentPageId = this.View.PageId; sqlParameter.CustomParams.Add("F_CKID", F_CKID); sqlParameter.CustomParams.Add("F_UBVN_KSRQ", F_UBVN_KSRQ); sqlParameter.CustomParams.Add("F_UBVN_JSRQ", F_UBVN_JSRQ); sqlParameter.CustomParams.Add("F_CPID", F_CPID); sqlParameter.OpenStyle.ShowType = ShowType.Modal; this.View.ShowForm(sqlParameter);
2.目标账表表单插件:
public override void OnInitialize(InitializeEventArgs e) { //接收源单传递的参数"FSelectId" string Fid = this.View.ParentFormView.OpenParameter.GetCustomParameter("FSelectId").ToString(); this.SysReportModel.RptParams.CustomParams["Fid"] = Fid; } //创建临时报表 public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { #region 从汇总表双击打开账表处理数据 //得到传入的创建时间过滤条件 object openObj; var CK = ""; var kssj = ""; var jssj = ""; string cktj = ""; string cpid = ""; string cpidtj = ""; if (filter.CustomParams.TryGetValue("OpenParameter", out openObj)) { var openParam = (Dictionary<string, object>)openObj; object F_CKID; openParam.TryGetValue("F_CKID", out F_CKID); CK = ObjectUtils.Object2String(F_CKID); object F_UBVN_KSRQ; openParam.TryGetValue("F_UBVN_KSRQ", out F_UBVN_KSRQ); kssj = ObjectUtils.Object2String(F_UBVN_KSRQ); object F_UBVN_JSRQ; openParam.TryGetValue("F_UBVN_JSRQ", out F_UBVN_JSRQ); jssj = ObjectUtils.Object2String(F_UBVN_JSRQ); object F_CPID; openParam.TryGetValue("F_CPID", out F_CPID); cpid = ObjectUtils.Object2String(F_CPID); } if (!string.IsNullOrWhiteSpace(kssj)) { ksrq = kssj; } if (!string.IsNullOrWhiteSpace(jssj)) { jsrq = jssj; } if (!string.IsNullOrWhiteSpace(CK)) { cktj = string.Format("and F_CKID='{0}'", CK); } if (!string.IsNullOrWhiteSpace(cpid)) { cpidtj= string.Format("and F_CPID='{0}'", cpid); } #endregion }
4、列表F7事件给基础资料添加过滤条件
public override void BeforeF7Select(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeF7SelectEventArgs e) { base.BeforeF7Select(e); if (e.FieldKey.Equals("F_TAIC_xm")) { e.ListFilterParameter.Filter = String.Format(@" FName ='{0}'", this.Context.UserName); } }
二、获取种子值
//var seqValue = new SequenceReader(this.Context).GetSequence(tableName, 1).FirstOrDefault();// 服务插件用这个方法 var seqValue = DBServiceHelper.GetSequenceInt32(this.Context, tableName, 1).FirstOrDefault(); // 表单插件用这个方法
C#表单插件F7Select事件,实现界面交互
1,案例以,f7打开一个列表获取选中行数据填充到当前字段2,返回数据或者列表双击,获取名称填充到当前字段代码实现如下: public override...
点击下载文档
上一篇:无源单批号拣货!!下一篇:表单插件_根据订单数量循环打印标签
本文2024-09-16 18:32:06发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-22772.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf
热门文章