FoxPro总和表单字段

时间:2011-12-12 13:53:53

标签: visual-foxpro

从单个数据库表中使用自动生成的表单。表单使用WizBtns中包含的类c:\Program Files\Microsoft Visual FoxPro 9\Wizards。表单有Top,Previous,Next和Bottom按钮。

虽然表单只有文本框来输入表格中字段的数据,但是我从工具箱中添加了一个自定义文本框,它基本上打算显示某些字段的总和。我已将文本框的ControlSource绑定到在表单init上创建的PUBLIC变量costTotal

现在问题是更新文本框中的字段总和,或者只是更新costTotal的值。 在哪里添加此代码?在表单的Refresh方法中添加代码会混合costTotal的值,当我按下Next按钮以使用新值更新所有字段时,自定义文本框会显示最后一条记录的总和,这是神秘的。

3 个答案:

答案 0 :(得分:1)

我会在表单中添加一个方法来进行计算。然后,从计算中涉及的每个文本框的Valid方法中调用该方法。

答案 1 :(得分:0)

使用刷新事件重新计算值没有任何问题,只需确保每次记录更改时都调用刷新

如果您使用导航按钮在记录之间移动,则每个按钮的点击事件是发出刷新请求的理想位置: -

假设文本框名为txtSum且位于与导航按钮相同的表单上,则在每个按钮单击事件中添加此代码

dodefualt()
with thisform
 .txtSum.refresh()
endwith

答案 2 :(得分:0)

一些事情:

1)不要使用向导!制作自己的基类。试图弄清楚向导类的作用以及如何添加功能将花费更多的时间来编写自己的基类。此外,向导生成的代码和类必须在10/20岁左右,从那以后发生了很大的变化(一种礼貌的方式说它们很糟糕)。

2)除了可能是app对象之外,不要在FoxPro中使用公共变量。

如果这是一次性的事情,只需添加默认文本框和按钮并自己设计表单。你将完全控制,你会知道每件事情的作用。