回 帖 发 新 帖 刷新版面

主题:一个一直没有解决的问题。。请教了。。。

我要做一个表单。。表单中。。插入了表格控件。。表格控件的数据源是我已经设计好的一个表。。jinhuobiao.dbf。。我在表单中的表格内。。引用了四项字段。。  
                          进货时间      品种名称    进货价格    进货数量        进货金额  
                    其中进货金额在表中是个空的。。我打算表单里的表格控件中用jinhuobiao.进货单价  *  jinhuobiao.进货数量  的方式完成计算。。  
                这个我已经解决了。。  
    
              而我需要的问题是。。能否在最后表单中表格控件中显示的记录中。。进货金额。。完成自动求和。。。。  
        比如    
                      进货时间      品种名称    进货价格    进货数量        进货金额  
                        03/01/03        大沙              0.3                  100                30  
                        03/03/03        水泥              10                    500                5000  
                        03/05/03        石子              50                    100                5000  
                            总计                                                                                10030  
    我需要的就是。。怎么样把最后一条记录能够加上去。。而且。。前面记录都完整呢。。即便以后再增加记录。。最后加上去的汇总记录能够完成自动汇总呢。。  
  以前我提这个问题后。。好多朋友帮忙。。可都没有解决问题。。问题到底出在哪里呢。。  

回复列表 (共10个回复)

沙发

SELECT * FROM jinhuobiao INTO CURSOR temp readwrite
REPLACE ALL 进货金额 WITH 进货价格 * 进货数量
SELECT SUM(进货金额) as zj FROM temp INTO CURSOR tmp
INSERT INTO temp(品种名称,进货金额) value("总计",tmp.zj)
thisform.grid1.RecordSource="temp"

板凳

楼上的朋友。。这个代码代价添加到哪里。。。在表单的load中吗。。。
我保存的时候。。提示第一行出现不能识别的命令短语或者关键字。。。

3 楼

我忽略后。。保存运行。。。在运行中。。忽略多次。。最后的结果是。。。没有添加记录。。。

4 楼

对了。。忘记说了。。我用的是VFP6。。。

5 楼

放到表单的 init 事件中。
或者设置一个按钮,放入 click 事件中。

6 楼

我后来是设置了个按钮。。放到了click事件中。。但是单击运行的时候。。仍然提示错了。。提示第一行出现不能识别的命令短语或者关键字。。。

7 楼

楼上的。。我用的是VFP6啊。。是不是那个readwrite不能在VFP6中出现啊。。。

8 楼

SELECT 进货时间,品种名称,进货价格,进货数量,进货金额 FROM jinhuobiao
union all
select '总计','',0,sum(进货数量),sum(进货金额) from jinhuobiao

合并下好了.

9 楼

回复7楼:
在6.0中把 SELECT * FROM jinhuobiao INTO CURSOR temp readwrite
改为 SELECT * FROM jinhuobiao INTO table temp
退出程序时用 ERASE temp.dbf 删除这个表

10 楼

你的这个问题有点超出了VFP表格的功能了,只能人为给他添加一个功能,我的做法是在表格控件中添加一个控件,让他一直停在表格控件的底部,并显示所有数值列的总和,模块有点长,


告诉你思路,你自己去试一下,

在窗体中放入一个grid1和一个Container1,设置他们一样宽,
在Container1中写入一个事件,能自动根据grid1的列数添加相应的textbox,并让每个textbox与grid1的Column相对应,显示在它下面,

然后在grid1的事件里写入
sum all to array lsb 
....后面的就简单了,lsb数组中存放了你想要的和,你只要把他显示出来就OK了

这样做的好处是,一不会更改你的表,二\不用去托记录就能始终看到和.

我来回复

您尚未登录,请登录后再回复。点此登录或注册