起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 483|回复: 10

【搞定】代码设置数据约束问题**

[复制链接]
发表于 2007-5-17 15:08:04 | 显示全部楼层 |阅读模式
字段A为数值型,有一定的大小范围。提供给用户维护界面,动态设置该字段的约束。
通过代码能修改字段的数据约束:lbiztabledef.FieldDefs.Find('fDistance').CustomConstraint.Text,但并不执行,也不保存。请问怎样才能将该CustomConstraint保存进Tbiztabledef中?
回复

使用道具 举报

 楼主| 发表于 2007-5-17 15:51:43 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-17 16:18:10 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2007-5-17 16:45:34 | 显示全部楼层
修改数据表实际是对平台中业务模型资源的修改。需要以下几步来完成:
1、指定这个表对象
2、修改结构定义
3、重新生成逻辑表
4、重启刷新业务模型资源

以下代码是用来创建逻辑表资源的,请参考:
{ABizTableDef表结构定义, ADBURL数据库URL, ACreateNew是否新建}
procedure CreateLogicTable(ABizTableDef: TBizTableDef; ADBURL : String;
  ACreateNew: Boolean);
var
  lDesc: TTableDefDesc;
  lCreator: TTableDefCreator;
  lBizTableDef : TBizTableDef;
begin
  lDesc := TTableDefDesc.Create(nil);
  lDesc.LanguageExt := '.pas';
  lDesc.FileName := ABizTableDef.ID + '.Table';
  lDesc.DisplayName := ABizTableDef.DisplayName;
  if ACreateNew then
    lDesc.CreateMode := Business.Forms.TCreateMode.cmNew
  else lDesc.CreateMode := Business.Forms.TCreateMode.cmRecreate; //修改

  lBizTableDef := lDesc.TableDef;  //用lbiztabledef替换temptabledef,需要单独释放temptabledef
  lDesc.TableDef := ABizTableDef;

  lCreator := TTableDefCreator.Create;
  try
    lCreator.Execute(Business.Model.BizSys.ObjectInfo(ADBURL).BizURL, lDesc,
      BizSys.GlobalContext);
    lCreator.Save;
  finally
    lDesc.TableDef := lBizTableDef;
    lDesc.Free;
    lCreator.Free;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-17 17:11:47 | 显示全部楼层
试一下,谢谢回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 09:52:55 | 显示全部楼层
试了一下,能修改,但得重新打开建模工具,该数据约束才起效。
“4、重启刷新业务模型资源”指的就是重新打开建模工具吗?
回复 支持 反对

使用道具 举报

发表于 2007-5-18 09:58:30 | 显示全部楼层
对啊,在默认情况下,工具打开后,就开始使用本地缓存了。
只有重新打开,才能使用最新资源

当然,你也可以在studio中使用刷新缓存按键来更新资源
不过,在客户端就没有办法了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 10:04:01 | 显示全部楼层
作了修改后,客户端重新打开协调平台,并“保持我的应用最新”,这样应该就能起效的吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-18 10:04:48 | 显示全部楼层
忘了谢谢jiahaiminghr了
回复 支持 反对

使用道具 举报

发表于 2007-5-18 10:41:11 | 显示全部楼层
应该是不行的,楼主可以尝试一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-20 20:47 , Processed in 0.045848 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表