用代码创建扩展数据类型EDT
2006-09-29 21:46
651 查看
在Axapta中有两个类UtilElements和UtilIdElements,从Inside Microsoft Axapta4.0中的示例代码中,可以看到两者的应用.帮助文档一点记载都没有......
我们知道Axapta把AOT的信息以*.aod后缀文件方式存放在物理磁盘中.这两个类的功能就是可以让用户用SQL的方式查询AOT中的元素,UtilElementType这个枚举类型有很多AOT中结点的类型值,比如Form,Report等,下面的示例代码显示了查询Inventory相关的类.
static void TableAPI_FindInventoryClasses(Args _args)
UtilIdElements uie;
select maxof(id) from uie where uie.recordType ==
UtilElementType::ExtendedType && uie.utilLevel == XInfo.currentAOLayer();
uie.id++;
uie.utilLevel = XInfo.currentAOLayer();
uie.recordType = UtilElementType::ExtendedType;
uie.name = "FarseerTest";
uie.insert();
加倒是加上去了,可是一点击这个新建的EDT旁边的加号,或者点右键,用英文说就是Axapta Crash了,晕死......
好在Axapta4.0的TreeNode增加了一个方法AOTaddExtendedDataType,估计是微软被吵得实在过意不去了,增加了这个方法来平息众怒,呵呵.
static server void AddEDT()
{
TreeNode TNode;
str strEDTName;
str strProperty;
;
//属性
strProperty = @"Properties
Label #Farseer Test
HelpText #Farseer Test
Extends #AccountName
EndProperties
";
strEDTName = "FarseerTest";
//找到EDT结点
TNode = TreeNode::findNode(@"Data Dictionary\Extended Data Types");
//不存在添加,存在报错.
if(!TNode.AOTfindChild(strEDTName))
{
TNode = TNode.AOTaddExtendedDataType(strEDTName,Types::String);
TNode.AOTsetProperties(strProperty);
Box::info("Successful!");
}
else
throw error(strFmt("The EDT %1 has been exist","Farseer"));
}
我们知道Axapta把AOT的信息以*.aod后缀文件方式存放在物理磁盘中.这两个类的功能就是可以让用户用SQL的方式查询AOT中的元素,UtilElementType这个枚举类型有很多AOT中结点的类型值,比如Form,Report等,下面的示例代码显示了查询Inventory相关的类.
static void TableAPI_FindInventoryClasses(Args _args)
UtilIdElements uie;
select maxof(id) from uie where uie.recordType ==
UtilElementType::ExtendedType && uie.utilLevel == XInfo.currentAOLayer();
uie.id++;
uie.utilLevel = XInfo.currentAOLayer();
uie.recordType = UtilElementType::ExtendedType;
uie.name = "FarseerTest";
uie.insert();
加倒是加上去了,可是一点击这个新建的EDT旁边的加号,或者点右键,用英文说就是Axapta Crash了,晕死......
好在Axapta4.0的TreeNode增加了一个方法AOTaddExtendedDataType,估计是微软被吵得实在过意不去了,增加了这个方法来平息众怒,呵呵.
static server void AddEDT()
{
TreeNode TNode;
str strEDTName;
str strProperty;
;
//属性
strProperty = @"Properties
Label #Farseer Test
HelpText #Farseer Test
Extends #AccountName
EndProperties
";
strEDTName = "FarseerTest";
//找到EDT结点
TNode = TreeNode::findNode(@"Data Dictionary\Extended Data Types");
//不存在添加,存在报错.
if(!TNode.AOTfindChild(strEDTName))
{
TNode = TNode.AOTaddExtendedDataType(strEDTName,Types::String);
TNode.AOTsetProperties(strProperty);
Box::info("Successful!");
}
else
throw error(strFmt("The EDT %1 has been exist","Farseer"));
}
相关文章推荐
- Lu基于系统内置对象创建扩展数据类型,小矩阵乘效率测试
- 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(三):为枚举类型创建方法
- Objective-C代码的文件扩展名与数据类型
- php学习之数据类型之间的转换代码
- sp_rename 更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
- 上手上路之 js 数据类型 number和parseInt..的代码笔记
- mysql数据库(三) 四中数据类型、数据表的创建
- 从数据到代码——通过代码生成机制实现强类型编程[上篇]
- ADO.NET 4 快速上手(5)——弱类型DataSet(代码创建)
- Python 列表 list 数据类型创建list、添加元素和删除元素
- Safe C++ 读书笔记:对基本数据类型进行封装,以编写更安全的C++代码
- 在代码中给SQL2008中空间数据类型的存储过程赋值
- 用代码创建删除数据表
- .NET 2.0里强类型数据创建多层应用
- Java调用C代码时传入以及返回基本数据类型
- 整理部分java代码和oracle,mysql,sql server对比数据类型
- 【怎样写代码】复杂对象的组装与创建 -- 建造者模式(四):扩展案例
- Python小白学习之路(二)—【Pycharm安装与配置】【创建项目】【运算符】【数据类型】
- 提高生产力:SpringMVC中,使用扩展数据类型TypedMap接收Web请求参数
- 修改订单号数据类型代码