注册 登录
编程论坛 VFP论坛

VFP中怎么对一条记录的数据进行求和

Yrtyy 发布于 2017-11-24 19:19, 3958 次点击
只有本站会员才能查看附件,请 登录
怎么求第一条记录中数据的和
8 回复
#2
Yrtyy2017-11-24 19:21
只有本站会员才能查看附件,请 登录
#3
吹水佬2017-11-24 19:38
一条记录的什么数据要求和?
#4
sdta2017-11-24 21:21
表中增加一个字段:小计
USE 表
lcStr=""
For i=2 To Fcount()
    lcStr=lcStr+"+"+Field(i)
EndFor
Replace All 小计 With &lcStr
#5
hu9jj2017-11-25 09:41
没有直接的记录求和函数,只有通过编程达到要求,如果记录中各个字段都是数值型的,则可以先将字段转入到一维数组,再对数组求和。
#6
wengjl2017-11-25 10:11
数组很奇妙

对表操作,因为能BROW表,看看到内容和结果,心理踏实,易理解。

数组在电脑里是啥样的,看不到,操作全凭想象。所以,难学懂。 她一直是我进步的绊脚石……

楼上的 HU9JJ 您好,能讲解一些数组的知识吗?
#7
schtg2017-11-26 08:09
如果字段名称无变化,也可以直接使用:
repl all 总和字段 with 字段1+字段2+...+字段n  for 条件

update 数据表 set 总和字段=字段1+字段2+...+字段n where 条件
#8
mywisdom882017-11-26 10:32
CREATE CURSOR t1(a1 c(10),a2 B(2),a3 F(6,2),a4 I,b1 c(10),b2 n(6,2),c1 n(7,2))

INSERT INTO t1(a1,a2,a3,a4,b1,b2) VALUES ('001',11,11,11,'011',100)
INSERT INTO t1(a1,a2,a3,a4,b1,b2) VALUES ('002',22,22,22,'022',100)
INSERT INTO t1(a1,a2,a3,a4,b1,b2) VALUES ('003',22,33,33,'033',100)
INSERT INTO t1(a1,a2,a3,a4,b1,b2) VALUES ('004',22,44,44,'044',100)

BROWSE

nCnt=AFIELDS(aMyAry) &&把字段总数给变量 nCnt,字段信息给数组 aMyAry
SCAN
  nCount = 0 &&汇总结果
  FOR i=1 TO nCnt
      If INLIST(aMyAry(i,2),"B","F","I","N") &&只汇总数据类型字段
         nCount = nCount + &aMyAry(i,1)
      EndIf
  EndFor
  Repl c1 with nCount
EndScan
BROWSE
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
#9
hu9jj2017-11-26 13:52
以下是引用wengjl在2017-11-25 10:11:53的发言:

数组很奇妙

对表操作,因为能BROW表,看看到内容和结果,心理踏实,易理解。

数组在电脑里是啥样的,看不到,操作全凭想象。所以,难学懂。 她一直是我进步的绊脚石……

楼上的 HU9JJ 您好,能讲解一些数组的知识吗?

讲解不敢当,我也仅仅是半知半解,详细内容可参考帮助文件中的参考手册-一般参考-数据操作-数据传递和数组。
表是保存在外部文件中(临时表除外),“看”得见、“摸”得着。数组是保存在内存中,退出其作用范围内就没了,有点“虚”,不“实在”。由于数组可以通过下标来定位,在某些场合下操作起来比表方便得多,而且数组与表之间的数据很容易相互传递,所以在一些场合下可以先将表中的数据传递到数组,加工处理之后还可以传回到表中。
1