如何在数据窗口查询出的纪录中按用户输入的分数段统计人数(300分)急!!!!!!

xiehui2001 2002-06-02 12:32:40
我想在一张学生高考入学总分表中在查询出的纪录中按入学总分进行分数段统计
分数段的值由用户输入,不知如何是好?
希望大家多多帮忙!! 感激不尽!!!!!!

...全文
67 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiexun 2002-06-03
  • 打赏
  • 举报
回复
定义变量来实现
应该可以的吧!
我先试试先
jimly 2002-06-03
  • 打赏
  • 举报
回复
如果要在数据窗口上显示,可以用计算列较好。
jmsofts 2002-06-03
  • 打赏
  • 举报
回复
gz
WorldMobile 2002-06-03
  • 打赏
  • 举报
回复
xiehui2001 (不趴在写字台上睡不着)
忘了告诉你了,关于Fen的值就是用户手工输入的值,你可以在程序中赋值

long ll_row, ll_cnt
dec{2} ldc_Fen
ldc_Fen = 25.5//用户输入的分数
ll_cnt = dw_main.rowcount()
for ll_row = 1 to ll_cnt
dw_main.setitem(ll_row, "Fen", ldc_Fen)
next
数据窗口中即可显示正确的值,我用的是PB7.0, 如果有问题,再给我联系
yang1105 2002-06-03
  • 打赏
  • 举报
回复
直接写sql不行吗?
WorldMobile 2002-06-03
  • 打赏
  • 举报
回复
不好意思,上午有点事出去了,下午也给你回,对不起
WorldMobile 2002-06-03
  • 打赏
  • 举报
回复
xiehui2001 (不趴在写字台上睡不着)
你的数据窗口已经给你写好,请你查收
swtony 2002-06-03
  • 打赏
  • 举报
回复
用FILTER是最好的!也是最快的!
wizardinred 2002-06-02
  • 打赏
  • 举报
回复
dw.setfilter("分数>XX and 分数<XX")
dw.filter()
WorldMobile 2002-06-02
  • 打赏
  • 举报
回复
你可以在数据窗口中定义一个字段Fen, 这个字段在程序中给它赋值,就是用户输入的分数,也就是你要分组的分数。然后在你这个数据窗口中再建一个计算机列,其值为ceiling(XX / Fen) 这里假设XX为入学总分,再根据这个列进行分组即可达到你的要求
方法二,你可以写一个数据存储,在这个数据存储中定义一个检索参数,也不是太麻烦,如果你还有不明白的地方,你可以把你的这个表结构给我(lzp_lrp@163.net),我帮你写个数据窗口,保证实现你的功能
jmsofts 2002-06-02
  • 打赏
  • 举报
回复
gz
chinalht 2002-06-02
  • 打赏
  • 举报
回复
可以加个外部数据列bz,在里面记录每行记录属于哪个分数段,比如 501, 则该列值为 1, 521, 列值为 2,依次类推。
这样就可以在数窗画板中根据bz列进行分组。就可以在group summery处增加合计列了。
long i, ll_min, ll_max, ll_group = 1
ll_min = 500
dw_1.setredraw( false )
dw_1.post setredraw( true )
do
ll_max = ll_min + 20
dw_1.setfilter( "fs >= " + string( ll_min ) + " and fs < " + string(ll_max) )
dw_1.filter()
for i = 1 to dw_1.rowcount()
dw_1.object.bz[i] = ll_group
next
ll_min += 20
loop while ll_min > 650
dw_1.groupcalc()
xiehui2001 2002-06-02
  • 打赏
  • 举报
回复
我说的不够详细,举例来说:
假设用户输入的分数段为20,生源当中最低分为500,最高分为650,最后要显示的就是500-520为多少人,520-540为多少人,以此类推,最后是640-650为多少人。
blue_tear_11 2002-06-02
  • 打赏
  • 举报
回复
blue_tear_脸红红的 to ldy :

不好意思,写错了,多谢更正,差点误导了别人! ^Q^
dotnba 2002-06-02
  • 打赏
  • 举报
回复
to blue_tear_11(blue_tear_) :
sle_2.text =string(dw_1.getrow())

//sle_2将显示某个分数段的人数
怎么能呢?
应该是:
sle_2.text =string(dw_1.rowcount())

sle_2.text =string(dw_1.retrieve())
blue_tear_11 2002-06-02
  • 打赏
  • 举报
回复
sle_1.txt内的数据类型是string型,不能用">","<",

查询的方法楼上说了

关于统计人数

例:sle_2.text =string(dw_1.getrow())

//sle_2将显示某个分数段的人数
jackygan 2002-06-02
  • 打赏
  • 举报
回复
如:sle_1和sle_2分别分数段比如:sle_1.text=470,sle_3.text=500
string string_sql
dw_1.settransobject(sqlca)
string_sql = 'select * from table1 where column1 between '+ sle_1.text + ' and '+sle_2.text
dw_1.setsqlselect(string_sql)
dw_1.retrieve()
//其中table1是你的表名称,而column1就是你的总分数的字段名称
jackzz 2002-06-02
  • 打赏
  • 举报
回复
同意楼上的说法!

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧