电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

实现表单动态构造

来源:金蝶云社区作者:金蝶2024-09-231

实现表单动态构造

[i]发现2011-8-8写的文章,放到这里供参考[/i]


通过下面几个步骤,可以实现表单动态构造,数据保存等动作全部由平台自动完成。


1、在App_Data/Common.config中增加元数据提供者

2、客户端插件使用这个提供者构造表单元数据:
const string DynFormId = "HR_PA_PayScale|{0}|{1}@HR|PA";

this._fm = MetaDataServiceHelper.GetFormMetaData(this.View.Context, dfId);

在服务端插件的审核后生成表结构。
string entKey = "FBillHead";
string id = "
HR_PA_DynItemClass@HR|PA";


IMetadataProvider mp = MetadataProviderFactory.Instance.GetProviderById(id);
FormMetadata fm = mp.GetFormMetadata(this.Context, id) as FormMetadata;

fm.BusinessInfo.GetEntity(entKey).TableName = "T_PA_PayObject_1";
mp.UpdateFormMetadataTable(this.Context, fm);

3、插件中替代当前View的表单元数据:
this.View.ResetCustomMetadata(this.FormMete);

4、定点刷新单据体的列显示:
EntryGrid grid = this.View.GetControl(this._entityKey);
var egridAp = this.View.LayoutInfo.GetEntityAppearance(this._entityKey);
grid.CreateDyanmicList(egridAp);

5、提供者实现,继承AbstractMetadataProvider抽象基类:
public class HrPayMetadataProvider : AbstractMetadataProvider

6、Override几个方法:
GetFormMetaDataVerion,GetBaseFormId,DynaAssemblyFormMeta,

7、在DynaAssemblyFormMeta(Context ctx, DomainAsm da, string sourceId)中动态组装元数据。本例中sourceId就是"HR_PA_PayScale|{0}|{1}@HR|PA";
依据自定义组装的sourceId,进行动态load数据,元数据动态组装。
元数据动态组装参考代码如下:

public override void DynaAssemblyFormMeta(Context ctx, DomainAsm da, string sourceId)
{
string key = "FBase";
string entHeadKey = "FBillHead";
string entKey = "FEntity";
da.Fm.BusinessInfo.GetEntity(entHeadKey).TableName = "T_PA_PayPeriodTime";
da.Fm.BusinessInfo.GetEntity(entKey).TableName = "T_PA_PayObject";
da.Fm.BusinessInfo.GetEntity(entKey).SplitTables.Add(new SplitTable() { Suffix = "1" });

ElementType type = da.Dm.GetElementType((int)ENUM_PayItemElementType.NUM);
ElementAsm ea = this.Cre

实现表单动态构造

[i]发现2011-8-8写的文章,放到这里供参考[/i]通过下面几个步骤,可以实现表单动态构造,数据保存等动作全部由平台自动完成。1、在App_Data...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信