自动设置弹性域字段数据原创
3人赞赏了该文章
1,761次浏览
编辑于2021年05月17日 17:55:55
在页面给弹性域字段设值时,需要逐个维度设置并且没有逻辑控制,下面通过按钮自动设置弹性域的值。
关键点:弹出模式下需要先保存维度值,再给弹性域字段赋值。
具体代码:
using System; using System.Data; using System.ComponentModel; using System.Collections.Generic; using Kingdee.BOS.Core; using Kingdee.BOS.Util; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.Metadata.FieldElement; using Kingdee.BOS.WebApi.FormService; using Kingdee.BOS.Model.DynamicForm; using Newtonsoft.Json.Linq; namespace Kingdee.BOS.TestPlugIn22.FormPlugin {
[HotUpdate] [Description("单据测试插件")] public class TestFormPlugIn : AbstractBillPlugIn { public override void ButtonClick(ButtonClickEventArgs e) { base.ButtonClick(e); if (e.Key.EqualsIgnoreCase("F_Jac_Button")) { //数据包,给部门和员工维度赋值 var data = "{\"Model\":[{\"FFLEX5\":{\"FNumber\":\"BM000035\"}, \"FFLEX7\":{\"FNumber\":\"1111\"}}]}"; //调用弹性域保存接口,保存维度数据,此接口存在会返回内码,不存在会保存数据 var result = WebApiServiceCall.FlexSave(this.Context, "BD_FLEXITEMDETAILV", data);; var result1 = JsonUtil.Serialize(result); var joResult = JObject.Parse(result1); var isSuccuess = joResult["Result"]["ResponseStatus"]["IsSuccess"].Value<bool>(); if (isSuccuess) { //根据返回的核算维度内码给弹性域赋值 var pkId = joResult["Result"]["ResponseStatus"]["SuccessEntitys"][0]["Id"].Value<long>(); ((DynamicFormModel)this.Model).SetValue("F_Jac_Flex1", pkId); } } } } }
赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读