急急急急急!!!!!自定义公式计算字段值(300分)

A

asljl

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,请问如何对需要计算的字段进行自定义公式的计算???
小弟300大洋献上!!!!!
 
用一个表来存储公式信息什么的可以吗
 
看你具体什么计算的啦
你可以把你的计算公式,如:tablename1.fieldName1+tableName1.fieldName1+....放到
一个String变量sString中,然后sString放到你SQL语句中去:
如:select sString as 计算字段名 from tablename1,tablename2...;
这个思路是对的,我做一个数据分析系统曾用到过
 
ÓÃ
 
楼上说的方法不错.
 
话说来很长!最主要的是关键子找好!以前我做的一个工作核算软件为例,

要求用户可以自定义条件进行计算!但与计算相关的表中有唯一关键子

-----工号!

现建表如下: //js

jslb jssx jszd jsbm jsgs jstj sql_ms
计算类别 计算顺序 计算字段 //计算表名 计算公式 计算条件 //转换的sql描述

1 1 x a b表的y字段+c表的z字段 c表的xy>xxx and d表的yz<xxxx

sql 语句自动生成为select b.gh,b.y+c.z from b,c,d where b.gh=c.gh and c.gh=d.gh and c.xy>xxx and d.yz<xxxx

客户端

Query1:='select sql_ms from js where jslb=1 order by jssx';
query1.open;
while not query1.eof do
begin
query2.sql.text:=query1.fields[0].asstring;
query2.open;
while not query2.eof do
begin
query3.sql.text:='update a set a.x='+Query2.fields[1].Asstring+' where gh=''''+Query2.Fields[0].asString+''''; query3.execsql;
query2.next;
end;
query1.next;
end;
query1.close; //首先明白这两个个循环和表的意思!

难点在于捕捉计算公式转换为SQL描述!

当用户选择不同的表时,我们用TstringList记录所有表!在计算条件完毕时在sql的描述中强行讲所有表以关键字段联系起来!

当增加新的计算公式记得讲TstringList清空!

本程序虽然有点繁琐,但并非很困难,只要仔细,应该没问题!

注意一个问题:

给用户选择的表和字段都应该式中文现实,因此还要建表对照表名,字段的中引文对照表!这点相比不用我罗索!

讲客户的选择转换为sql描述!明白了就好做了!还有就是SQL语句中不能只待计算公式还需关键字,如文中b.gh

query3需要此值!
 
顶部