回 帖 发 新 帖 刷新版面

主题:请问老师:如何简便统计一天内的人数?想按编号形式编成。

老师好,我做一个登记vf,其中想统计一天内的人数?在表单的text里显示。
我现在用sele .....count(*).....between(text(时段))....临时表,觉得不太好用。哪位老师能教我简便、不需要临时表的统计一天人数方法?就像编号代码那样的。谢谢

回复列表 (共9个回复)

沙发

1、COUNT for <tiaojian> TO thisform.text1.Value
2、Calculate Cnt() To tj2 for <tiaojian>
3、sele .....count(*).....between(text(时段))....into array a
   thisform.text1.Value=a(1)

板凳

wzxc老师,如何能日期编号呢?如:2011/09/30-001,2011/09/30-002,2011/09/30-003
。2011/10/01-001,2011/10/01-002呢?我现在做的日期能显示,但00*不能随时间变动,因为是组以max取最大值。谢谢

3 楼

详谈你的问题及思路。我仅今天一天时间。下次有机会来论坛会很久,时间不确定。

4 楼

wzxc老师,我想在登记上做个编号(text1),放在表单添加按钮的命令里,能把日期和数字混编成序号,今天编完序号后,明天再重新编号,从编号上看出这天有多少人登记。
      格式为:( 年/月/日/-001 )。

举例:昨天2011/09/30-001,2011/09/30-002,2011/09/30-003,......
      今天2011/10/01-001, 2011/10/01-002 ....
      明天2011/10/02-001, 2011/10/02-002 ....
现在的问题:时间有了,但因为用了 select max(序号) from 登记表 into array a 后编号只是逐渐增大,无法随时间变动而重新编号。如何做呢?

5 楼

select max(序号) from 登记表 into array a 后,提取日期部分与当天比较,如果相同,继续加1.如果不等,则用当天日期重新编码。
 
if left(a(1),10)=dtoc(date())
......
else
....
endif

6 楼

set century on
set date YMD
set ansi off
set exact off

d1=dtoc(date())
count 序号 for 序号=d1 to d2
* select count(序号) from ... where 序号=d1 into array d3

....text1=d1+"-"+PADL(ALLTRIM(STR(d2+1)),3,"0")
*....text1=d1+"-"+PADL(ALLTRIM(STR(d3(1)+1)),3,"0")

7 楼

moz老师好
public d3
set century on
set date YMD
set ansi off
set exact off

d1=dtoc(date())
count for 序号=d1 to d2
select count(序号) from 登记表 where 序号=d1 into array d3

thisform.text1.value=d3+PADL(ALLTRIM(STR(d2+1)),3,"0")
thisform.text1.value=d3+PADL(ALLTRIM(STR(d3(1)+1)),3,"0")
老提示数据类型不匹配,谢谢老师

8 楼

你很可爱

9 楼

老师好,我在where 里加入date(),就能用了。谢谢

我来回复

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