以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 有谁能做个字段间的计算关系由用户自定义公式的例子? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2245) |
-- 作者:cpayinyuan -- 发布时间:2009/3/31 11:20:00 -- 有谁能做个字段间的计算关系由用户自定义公式的例子? 在此之前,我们用狐表做的所有项目中,各字段间的运算关系都是固定写在列的DataChanged事件中,或者写在项目的变量事件中。但在实际应用中,有时候这种计算关系并不是固定的,需要在运行程序的时候动态生成,并可能变化。 例如,在通用的工资软件中,各字段之间的计算关系是由最终用户自定义的。放到Foxtable中,也就是各字段之间的计算关系不能由软件的开发者在DataChanged中写死。而是允许最终用户在窗口中编辑一个公式,编辑之后保存在某个表里面,然后,系统根据表中保存的自定义公式动态生成DataChanged事件中的代码,即生成了各列之间的计算关系。一般情况下,自定义公式中使用的元素包括:各数字(0-9),+,—,*,/,(),负号,if(如果) 函数。 狐表作为一个开发工具,相信一定能解决好这个问题。所以,希望哪位老师(或者贺老师若有时间能亲自动手最好),能做个例子,供大家学习!如果这个问题能妥善解决好,狐表的应用会更广泛!用途更广! [此贴子已经被作者于2009-3-31 11:33:21编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2009/3/31 11:22:00 -- 呵呵,我昨天看到老程做过了,你可以咨询一下。 是通过Eval函数做的。 |
-- 作者:cpayinyuan -- 发布时间:2009/3/31 11:25:00 -- 以下是引用狐狸爸爸在2009-3-31 11:22:00的发言:
呵呵,我昨天看到老程做过了,你可以咨询一下。 是通过Eval函数做的。 呵呵,如果程老师已经做好了,就请他上传上来大家共同学习一下吧!看与其他同类软件的功能是否一致。 [此贴子已经被作者于2009-3-31 11:31:29编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2009/3/31 11:32:00 -- if then end if do loop while等等,都可以的。 你可以先看看帮助中的Eval函数说明。 [此贴子已经被作者于2009-3-31 11:32:33编辑过]
|
-- 作者:cpayinyuan -- 发布时间:2009/3/31 11:37:00 -- 以下是引用狐狸爸爸在2009-3-31 11:32:00的发言:
if then end if do loop while等等,都可以的。 你可以先看看帮助中的Eval函数说明。 [此贴子已经被作者于2009-3-31 11:32:33编辑过] 帮助中的说明很简单,根本就没有提到if,更没有提到怎么用.若是可以用,建议您把帮助中的VBScript语法部分认真完善一下.另外,Eval中的if函数,使用方法应该和易表中的差不多吧.即if(表达式,数值1,数值2)的开式,若表达式为真,等于数值1,若为假,等于数量2.对不对? [此贴子已经被作者于2009-3-31 11:45:16编辑过]
|
-- 作者:czy -- 发布时间:2009/3/31 12:26:00 -- eval中应该用iif更合适。 如:eval(iif(表达式,值1,值2),……) [此贴子已经被作者于2009-3-31 12:26:16编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2009/3/31 12:35:00 -- 我刚刚改了一下Eval函数,以后可以执行简单的代码: i = 1 If i = 1 Then Eval = "壹佰" Else Eval = "贰佰" End If Eval就是要返回的值。 你可以补补VbScript的知识: http://www.microsoft.com/china/vbscript/vbstutor/vbstutor.htm 这些内容,我不会在帮助提供的了。 [此贴子已经被作者于2009-3-31 12:36:25编辑过]
|
-- 作者:cpayinyuan -- 发布时间:2009/3/31 12:46:00 -- 以下是引用czy在2009-3-31 12:26:00的发言:
eval中应该用iif更合适。 如:eval(iif(表达式,值1,值2),……) [此贴子已经被作者于2009-3-31 12:26:16编辑过] 我的意思就是Eval中支持不支持IIF函数,只要支持就好了.我在帮助中没有看到相关的说明. |
-- 作者:cpayinyuan -- 发布时间:2009/3/31 12:47:00 -- 以下是引用狐狸爸爸在2009-3-31 12:35:00的发言:
我刚刚改了一下Eval函数,以后可以执行简单的代码: i = 1 If i = 1 Then Eval = "壹佰" Else Eval = "贰佰" End If Eval就是要返回的值。 你可以补补VbScript的知识: http://www.microsoft.com/china/vbscript/vbstutor/vbstutor.htm 这些内容,我不会在帮助提供的了。 [此贴子已经被作者于2009-3-31 12:36:25编辑过] 没有看明白这个例子是什么意思. |
-- 作者:狐狸爸爸 -- 发布时间:2009/3/31 12:50:00 -- 以下是引用cpayinyuan在2009-3-31 12:47:00的发言:
没有看明白这个例子是什么意思.
[此贴子已经被作者于2009-3-31 12:50:40编辑过]
|