请问动态计算公式怎么设置实现??

yan1028 2004-12-29 03:15:13
假如我的pay表有9个属性,id,name,a,b,c,d,e,f,g; 现在a,b,c的值已经知道了,要计算d的值,不过不同人员的计算方法不一样,如果id取了1和8中间的数而且a的值为100,那么d用变量g1所设置的公式计算,如果id在9和a的值取了520,那么d的值用变量g2所设置的公式计算,等等,很多情况 变量g1和g2大概是这个样子g1为(a+b)*3+c不过可以随便改 ,只是做为一个变量存储了,我起初用 string ls_gs,mysql
select yjgz into :ls_gs from gssd where bh='1'and name='zz1';
messagebox('****',ls_gs)
update pay set yjgz=:ls_gs
where id='1' and month='200102';
实现不了,可能不能用update,请问可以用什么实现,就是直接把公式做为变量来计算数值啊???谢谢各位!


...全文
223 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun1976 2004-12-31
  • 打赏
  • 举报
回复
我很少上qq。
楼上各位介绍的Evaluate是让你用select * from ....做一个数据窗口,然后通过数据窗口列得到你表里的计算公式,拼出describe中的evaluate 字符串

我告诉你的方法是直接用嵌套在脚本里的动态sql语句,如果where条件限制死了,每次可以得到一个值
你可以通过循环,每次拼出不同的sql来执行,依次得到各值
如果还是不能解决,我只能元旦回来再帮你了
我元旦回家,上不了网

yan1028 2004-12-30
  • 打赏
  • 举报
回复
请问,dw_1.Describe("Evaluate('DW内的公式',行号)里面怎么会有行号呢?不是根据条件自己计算的吗?可以举个例子说明一下,这种方法怎么实现吗?公式是存在另外一个表里面的,和这个pay表不在一个表中啊,数据窗口内的公式是指的什么呢?
yan1028 2004-12-29
  • 打赏
  • 举报
回复
我的公式没有用数据窗口,而是装到了一个数据库中的表里面,可以用这个么?
dw_1.Describe("Evaluate('DW内的公式',行号)来得计算
aichangfeng 2004-12-29
  • 打赏
  • 举报
回复
在PB里实现用Evaluate,在数据库也可以实现那样要写储存过程
sun1976 2004-12-29
  • 打赏
  • 举报
回复
也可以根据不同的条件得到你的公式放到字符串变量中
用这个string 拼出一个sql
然后用 execute 执行
例如select yjgz into :ls_gs from gssd where bh='1'and name='zz1';

得到ls_gs ,拼sql
ls_sql='select '+ls_gs+' from dual where....'//oracle
或者
ls_sql='select '+ls_gs+'where ....'//sql server

定义接收结果的变量:例如dec{2} ldec_1//假设你用的结果为数字型

DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;

PREPARE SQLSA FROM ls_sql ;

OPEN DYNAMIC my_cursor ;

FETCH my_cursor INTO :ldec_1;

CLOSE my_cursor ;
然后update 用这个结果
update pay set yjgz=:ldec_1
where id='1' and month='200102';


你拼出sql后也可以用
dw_1.syntaxfromsql()得到一个数据窗口语法
然后数据窗口控件dw_1.create()动态创建数据窗口对象然后retrieve()出来
通过数据窗口取道值然后更新数据库

当然,楼上也是一个好方法
liuyxit 2004-12-29
  • 打赏
  • 举报
回复
dw_1.Describe("Evaluate('DW内的公式',行号)来得计算

当然,你也可以设一个计算域,用case语句来计算每种情况的值.
xys2003 2004-12-29
  • 打赏
  • 举报
回复
OK ,用数据窗口的dw_1.Describe("Evaluate('...实现
可以实现,我用过
klbt 2004-12-29
  • 打赏
  • 举报
回复
用数据窗口的dw_1.Describe("Evaluate('...实现

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧