二开案例.获取所有单据的表名、字段信息
using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; using System.Linq; namespace Test2024 { [Kingdee.BOS.Util.HotUpdate] public class 获取单据字段信息 : AbstractDynamicFormPlugIn { public override void ButtonClick(ButtonClickEventArgs e) { //导出所有数据速度很慢,这里取前10个单据为例 var formIds = DBUtils.ExecuteDynamicObject(this.Context, "select top 10 fid from T_META_OBJECTTYPE where FMODELTYPEID in (400,100) and FDEVTYPE in (0,1) order by FID desc") .Select(dyo => dyo["fid"].ToString()).ToList(); var data = formIds.Select(formId => { var meta = MetaDataServiceHelper.Load(this.Context, formId, true) as FormMetadata; var fields = meta.BusinessInfo.GetFieldList(); var fieldInfos = fields.Select(f => { var app = meta.GetLayoutInfo().GetFieldAppearance(f.Key); var entity = meta.BusinessInfo.GetEntity(f.EntityKey); var sql = string.Format(@"SELECT DATA_TYPE, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = '{0}' and COLUMN_NAME = '{1}'", entity.TableName, f.FieldName); var dyo = DBUtils.ExecuteDynamicObject(this.Context, sql).FirstOrDefault(); return new { 表名 = entity.TableName, 标识 = f.Key, 标题 = app.Caption.ToString(), 字段名称 = f.FieldName, 属性名 = f.PropertyName, 字段类型 = dyo == null ? "" : (dyo["DATA_TYPE"].ToString() + "(" + dyo["CHARACTER_MAXIMUM_LENGTH"] + ")") }; }).ToArray(); return new { formId, fieldInfos }; }); var json = JsonUtil.Serialize(data); this.View.ShowMessage(json); } } }
二开案例.获取所有单据的表名、字段信息
using Kingdee.BOS.App.Data;using Kingdee.BOS.Core.DynamicForm.PlugIn;using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;using Kingdee....
点击下载文档
本文2024-09-16 18:06:28发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-19993.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章