mysql的值赋值给表单_插件中对动态表单数据模型进行赋值实现动态表单数据绑定...

本文介绍如何在插件中实现动态表单数据模型的创建与赋值,以`PurPayBill`类为例,展示了如何利用`PurchaseServiceHelper.GetPayBillList`获取MySQL中的数据,并在表单初始化时将数据绑定到动态表单的`FPayDetailList`字段,实现了动态表单数据绑定。同时,在`AfterBindData`事件中,根据数据调整了表单字段`FAmount`的精度。
摘要由CSDN通过智能技术生成

默认情况下,表单的数据模型创建及赋值由BOS基类实现,一些特殊场景需要在插件中动态创建及赋值绑定。

下面为动态表单“付款单明细列表”的表单插件,PurchaseServiceHelper.GetPayBillList获取要展示的数据,重写CreateNewData构建表单数据模型。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Kingdee.BOS.Util;

using Kingdee.BOS.Core;

using Kingdee.BOS.Core.Bill.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.Metadata.FieldElement;

using Kingdee.BOS.Core.Metadata.StateTracker;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.ServiceHelper;

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Core.Bill;

using Kingdee.BOS.Orm;

using Kingdee.BOS.Orm.Metadata.DataEntity;

using Kingdee.BOS.Core.Metadata.EntityElement;

using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;

using Kingdee.BOS.JSON;

using Kingdee.BOS.Core.Const;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.Metadata.BarElement;

using Kingdee.BOS.Core.SqlBuilder;

using Kingdee.K3.SCM.ServiceHelper;

namespace Kingdee.K3.SCM.Purchase.Business.PlugIn

{

public class PurPayBill : AbstractDynamicFormPlugIn

{

DynamicObjectCollection payBillData = null;

public override void OnInitialize(BOS.Core.DynamicForm.PlugIn.Args.InitializeEventArgs e)

{

if (e.Paramter.GetCustomParameter("SessionPayKey") == null)

{

return;

}

string sessionKey = e.Paramter.GetCustomParameter("SessionPayKey").ToString();

// 读取数据,返回的数据包,包含了必要的属性,可以直接使用

payBillData = PurchaseServiceHelper.GetPayBillList(this.Context, Convert.ToInt64(sessionKey));

}

public override void CreateNewData(BOS.Core.DynamicForm.PlugIn.Args.BizDataEventArgs e)

{

DynamicObjectType dtType = this.View.BusinessInfo.GetDynamicObjectType();

EntryEntity recEntity = (EntryEntity)this.View.BusinessInfo.GetEntity("FPayDetailList");

if (payBillData != null)

{

DynamicObject objData = new DynamicObject(dtType);

DynamicObject recObj = null;

int seq = 1;

foreach (DynamicObject dy in payBillData)

{

recObj = new DynamicObject(recEntity.DynamicObjectType);

recEntity.DynamicProperty.GetValue(objData).Add(recObj);

recObj["BillNo"] = Convert.ToString(dy["FBILLNO"]); //预收单号

recObj["CURRENCY"] = dy["FCURRENCY"];

recObj["Date"] = dy["FDATE"];

recObj["Seq"] = seq; //行号

recObj["Amount"] = dy["FREALPAYAMOUNTFOR"]; //实付金额

recObj["ORGNAME"] = dy["FORGNAME"]; //结算组织

seq++;

}

e.BizDataObject = objData;

}

}

public override void AfterBindData(EventArgs e)

{

int count = this.View.Model.GetEntryRowCount("FPayDetailList");

for (int i = 0; i < payBillData.Count(); i++)

{

this.View.GetFieldEditor("FAmount", i).Scale = Convert.ToInt16(payBillData[i]["FAMOUNTDIGITS"]);//设置精度

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值