本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
================

注会练习软件
http://www.cpasoft.com.cn
我的注会软件官网

http://blog.163.com/abc7105@126/

 

 


哈哈,热爱快“过气”的DELPHI


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:注册会计师(注会)练习软件
日志总数:398
评论数量:116
留言数量:27
访问次数:3266834
建立时间:2005年6月6日




[borland eco 技术]怎样引用expressionhandle增加的ocl column列的值
软件技术

吕向阳 发表于 2008/3/7 18:04:06

以下是我例程中代码,在ohgoods(这是一个oclpshandle,也可以是一个expressionhandle),在column中增加三个列 ALLXJ,ALLSL,XJ,并且设置其ocl表达式(略)   field1, field2, field3, field4: PropertyDescriptor;  vsl, vallsl, vallxj,vprice: double;begin  //结帐处理   field1 := ((ohgoods as ITypedList).GetItemProperties(nil)['ALLXJ']); //这里得到一个PropertyDescriptor属性描述  field2 := ((ohgoods as ITypedList).GetItemProperties(nil)['ALLSL']);  field3 := ((ohgoods as ITypedList).GetItemProperties(nil)['XJ']);  disp(field1.Name);  element := ohgoods.Element;  list1 := element.GetAsCollection();  for i := 0 to list1.Count - 1 do  begin    vallsl := double(field1.Getvalue(ilist(ohgoods)[i]));    vallxj :=double( field2.Getvalue(ilist(ohgoods)[i])); //这里根据属性描述在列表中取出当前行(第I行)对应的值    if vallsl<>0 then    begin      vprice:=vallxj/vallsl;    end;    vsl :=double( field3.Getvalue(ilist(ohgoods)[i]));   end; 调试心得: 1.expressionhandle(olcpshandle)的OCL COLUMNS及其ocl表达式要事先设定好,也就是要在create()事件执行完成以前要形成,不能在上述代码中加入,否则会出错.当然我们可在create事件中动态加入 2.对于ocl column最好使用oclpshandle,因为expressionhandle(3以下的版本),当我们的ocl column的ocl表达式改变时,它的内容并不动态更新(据说是bug),而oclpshandle在执行exceute事件时一定会更新 3.关于大小写,ocl column的name属性区分大小写,这也是调试中验证了的  


阅读全文(2372) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144782889 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号