【二开插件】动态创建单据体字段

/// 元数据
private BusinessInfo _currInfo = null;
/// 界面布局
private LayoutInfo _currLayout = null;
public override void ButtonClick(ButtonClickEventArgs e){
base.ButtonClick(e);
if (e.Key.EqualsIgnoreCase("F_BDI_Button_83g"))
{
// 修改元数据
this.ReBuildFields();
// 根据新的元数据,重构单据体表格列
EntryGrid grid = this.View.GetControl<EntryGrid>("FList");//单据体标识FList
grid.SetAllowLayoutSetting(false); // 列按照索引显示
EntityAppearance listAppearance = _currLayout.GetEntityAppearance("FList");
grid.CreateDyanmicList(listAppearance);
// 填充数据
this.SetData();
// 下达一个指令
this.View.SendDynamicFormAction(this.View);
}
}
#region 动态创建列
public override void OnSetBusinessInfo(SetBusinessInfoArgs e)
{
// 复制界面元数据到本地变量
FormMetadata currMeta = (FormMetadata)ObjectUtils.CreateCopy(
this.View.OpenParameter.FormMetaData);
_currInfo = currMeta.BusinessInfo;
_currLayout = currMeta.GetLayoutInfo();
// 用本地的元数据,替换动态表单引擎持有的元数据
e.BusinessInfo = _currInfo;
e.BillBusinessInfo = _currInfo;
}
/// 通常在此事件中,修改界面元数据;
/// 本示例,在此事件中,把界面元数据复制到本地,避免与其他实例公用元数据,造成串账
public override void OnSetLayoutInfo(SetLayoutInfoArgs e)
{
e.LayoutInfo = _currLayout;
e.BillLayoutInfo = _currLayout;
}
private void SetData()
{
// 使用最新的元数据,重新界面数据包
_currInfo.GetDynamicObjectType(true);
this.Model.CreateNewData();
this.View.Model.CreateNewEntryRow("FList");
foreach (Field fld in _currInfo.GetEntity("FList").Fields)
{
this.Model.SetValue(fld.Key, 1, 0);
}
this.View.Model.CreateNewEntryRow("FList");
foreach (Field fld in _currInfo.GetEntity("FList").Fields)
{
this.Model.SetValue(fld.Key, 1.1, 1);
}
}
private void ReBuildFields()
{
// 获取单据体表格的元数据及外观
Entity entity = _currInfo.GetEntity("FList");
EntityAppearance entityApp = _currLayout.GetEntityAppearance("FList");
// 清除全部字段
int oldCount = entity.Fields.Count;
for (int i = oldCount - 1; i >= 0; i--)
{
Field fld = entity.Fields[i];
_currInfo.Remove(fld);
Appearance fldApp = _currLayout.GetAppear【二开插件】动态创建单据体字段
/// 元数据 private BusinessInfo _currInfo = null; /// 界面布局 private LayoutInfo _currLayout = null;...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



