一个偶然机会,需要用TeeChart,将某数据以图表的方式显示出来,这似乎不是什么难事,对Delphi而言就是拖拽几个控件的事。然而,却碰到新问题——原表里面数值都是以字符串格式录入的,无法直接与TeeChart对应上。重新以查询建立一张新的临时表或视图,也是可以的。但是本人比较懒,偶然点击query组件,发现是可以临时创建新的字段——计算字段。由是则有一个懒思路:因为TeeChart只要对应的是数据集,这个数据集并非一定要与数据基表严格对应,只要创建一个临时的计算字段与基表相应字段关联,理论上是可行。接下来,直接在query里创建了一个新字段——基表里没有的。该字段的字段数值属性是integer——好与TeeChart的BAR关联上;同时字段的字段类型(fieldkind)赋值为fkCalculated(计算字段类型)。
但是接下来,赋值成为一个麻烦,试了好多种办法,要么报错,要么赋值失败,好像懒不成了这次。在翻看query事件中,发现有这么个CalcFields方法,似乎与Calculate有关联,管他呢,直接就上了一句DBISAMQuery7bzhi.Value:=StrToInt(DBISAMQuery7b.Value)。编译运行,居然就直接达成目标。懒成了。