主题:请问老师:如何简便统计一天内的人数?想按编号形式编成。
yin710
[专家分:0] 发布于 2011-09-30 18:21:00
老师好,我做一个登记vf,其中想统计一天内的人数?在表单的text里显示。
我现在用sele .....count(*).....between(text(时段))....临时表,觉得不太好用。哪位老师能教我简便、不需要临时表的统计一天人数方法?就像编号代码那样的。谢谢
回复列表 (共9个回复)
沙发
wzxc [专家分:9440] 发布于 2011-09-30 21:04:00
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)
板凳
yin710 [专家分:0] 发布于 2011-10-01 08:28:00
wzxc老师,如何能日期编号呢?如:2011/09/30-001,2011/09/30-002,2011/09/30-003
。2011/10/01-001,2011/10/01-002呢?我现在做的日期能显示,但00*不能随时间变动,因为是组以max取最大值。谢谢
3 楼
wzxc [专家分:9440] 发布于 2011-10-01 09:26:00
详谈你的问题及思路。我仅今天一天时间。下次有机会来论坛会很久,时间不确定。
4 楼
yin710 [专家分:0] 发布于 2011-10-01 14:22:00
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 楼
wzxc [专家分:9440] 发布于 2011-10-01 16:32:00
select max(序号) from 登记表 into array a 后,提取日期部分与当天比较,如果相同,继续加1.如果不等,则用当天日期重新编码。
if left(a(1),10)=dtoc(date())
......
else
....
endif
6 楼
moz [专家分:37620] 发布于 2011-10-02 10:27:00
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 楼
yin710 [专家分:0] 发布于 2011-10-02 15:39:00
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 楼
moz [专家分:37620] 发布于 2011-10-02 15:44:00
你很可爱
9 楼
yin710 [专家分:0] 发布于 2011-10-12 16:54:00
老师好,我在where 里加入date(),就能用了。谢谢
我来回复