关于TClientDataSet和动态字段的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 臧马
  • 开始时间 开始时间

臧马

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个项目需要用动态的定义TField然后利用TClientDataSet生成xml文件来存储数据。现在自定义Tfield和生成导入xml文件都没有问题。但是一单动态生成的字段的FieldKind为fkInternalCalc那么就存在两个问题。第一个计算字段的计算公式如何能动态设定。第二个增加了计算字段后一退出程序就报错。说是读取midas.dll地址错误。
不知道为什么,那位高人能帮忙解决一下。
 
第一
先写一个过程事件,如
Procedure MyOnChange(Sender:TField);
procedure MyonCalcField(DataSet: TDataSet);
然后再
Fields.OnChange:= MyOnChange;

CDS.OnCalcField:= MyonCalcField;
在过程中,就可以任意的处理计算公式

第二、看一下Midas.dll的版本,我以前用6.X的时候,好像也有莫名其妙的问题,现用7.1.1692.668,未没发现问题
 
第一个,公式是可以让用户自己定义的。因为计算字段是动态添加的,所以字段的名字和字段位置还有计算公式都是未知的。公式只要能允许简单的四则运算就可以了形如:Col1 + Col2 * 2。这样的公司就算是在自己写的OnCalcField中,怎么处理啊,怎么才能把文本的东西翻译成代码?
第二,我用的也是D7,版本号为:7.1.1692.666。应该没有问题的。我试过在设计期用IDE的Field设计器建立的都没有问题。
 
像这种情况,只能使用宏替换的方式,给用户约定一定的规则,就像EXCEL也一样,不论用户自定义的标题怎样,但引用的 只能是 列A...B, AA..ZZ等, 这样的话,需要分析的公式就简单多了

然后 将公式中的宏变量直接替换成 相应字段的数字, 最终得到一个 纯数学表达式

计算表达式有两种方式,一种是找专门的计算单元,网上多的是,还有一种,也可以直接用
sql.text='Select 3*3', open以后,fields[0].value即是结果
 
上次遇到过一个动态增加字段 并动态生成 lookup字段的的问题,应该和你的情况差不多
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3654697
估计也是要将其他自动都要创建,才能创建计算字段。
要动态传入参数就比较麻烦了,需要解析公式了。
 
如果你想花最少的钱学习流行的计算机技术,本人低价提供
计算机专业高清晰 视 频 教 程,所有教程由业内名家讲解,物超所值,
所有光盘4元/张,特快专递全国三天内到货.
联系方式:手 机:1 3 5 76145612(手机联系佳) Q Q:108410943
E-mail:ncncldjjg@126.com
1、Oracle9iOCP(Oracle认证专家DBA)视频教程(23CD)
2、SQL语言、数据挖掘、SQLServer2000视频教程(6CD)
3、计算机网络原理视频教程(4CD)
4、计算机实用组网技术视频教程(3CD)
5、MCSE(微软认证系统工程师)认证视频教程(11CD)
6、windows2003即学即会视频教程(6CD)
7、J2EE Web程序开发定向班/Java就业班视频教程
(java基础jsp核心技术UML设计)(13CD)
8、J2EE基础高级案例分析视频教程(9CD)
9、马士兵J2SE入门与精通(含坦克大战、BBS实例)视频教程(6CD)
10、java语言深入详解视频教程(12CD)
11、java技术从入门到精通视频教程(21CD)
12、javascript全接触视频教程(13CD)
13、各类网站源程序(9CD)
14、unix原理视频教程(3CD)
15、Linux软件开发工程师(C语言)视频教程(4CD)
16、Linux配置、管理、优化实战工程师视频教程(8CD)
17、Linux内核编程视频教程(11CD)
18、C语言详解视频教程(2CD)
19、VC++6.0(MFC)开发技术术详解视频教程(6CD)
20、ASP.NET中文视频教程(3CD)
21、洪恩C#入门多媒体教程(1CD)
22、XML技术视频教程(2CD)
23、操作系统视频教程(3CD)
24、网络技术基础视频教程(2CD)
25、数据结构视频教程(5CD)
26、清华大学计算机专业多媒体教程(数据结构、汇编、编译原理等)(13CD)
27、大学数学[离散数学线性代数概率与数理统计微积分]视频教程(22CD)
28、LearnKey Asp.Net (老外用英语讲课)(13CD)
29、LearnKey Asp.Net Webservice(老外用英语讲课)(5CD)
30、AppDev Asp.Net2.0 UsingC# (老外用英语讲课)(1CD)
31、APPDev .Net Framework(老外用英语讲课)(2CD)
32、林清安pro/e2001(野火版)视频教程(18CD)
33、深圳大学3D设计视频教程(4CD)
34、3DMAX建模视频教程(老外用英语讲课)(6CD)
35、3DMAX纹理与贴图材质灯光视频教程(老外用英语讲课)(5CD)
36、3DMAX格式500个常用模型库(4CD)
37、lightscape基础入门视频教程(2CD)
38、聚光制造(lightscape3.2入门与精通视频教程)(4CD)
39、coreldraw12中文版入门与精通swf格式视频教程(2CD)
 
后退
顶部