• 全部
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

加100分再问:按汉字型数字排序怎么搞?请教大家了!解决即给分!(在线等)

zanglinfeng 2004-06-16 08:55:39
比如数据窗口一个字段本来是

第一
第五
第二
第四
第三
.........
第十四
第十一
第十
第十三
第十二

怎么按一,二,三,四,五,...,十三,十四 从小到大排序成:

第一
第二
第三
第四
第五
....
第十一
第十二
第十三
第十四

???
PB里面语句怎么写?
解决里马给分!
分不够可以加的.


谁第一个解决或者解决的最好的得全部分!说话算话!
...全文
142 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zanglinfeng 2004-06-18
谢谢大家,结贴!
回复
dotnba 2004-06-18
yeqiufeng(叶秋枫)也来了。向你学习
回复
xiao_bai 2004-06-17
如果楼主把“一二三四。。。”用“1,2,3,4,。。。”代替的话,直接setsor应该可以
回复
guhguh 2004-06-17
我也同意,先把中文换成数据再进行,
回复
「已注销」 2004-06-17
添加字段或者计算列 都是比较好的办法

写一个函数来把汉字转换成数字 然后生成计算列进行排序……

如果是SQL Server 的话 可以使用自定义函数

@_@
回复
zanglinfeng 2004-06-17
还有更加好的方法吗?
回复
zxxpower 2004-06-17
给该表添加一个字段,再按这个字段排序,好像更快耶
回复
wfexp 2004-06-16
简单点
数据库中存放数字0,1,2,3,4,5.....
在数据窗口中把该列做成下拉风格
即在edit属性tab中选dropdownlistbox,
然后填入 值 与 显示值 就行拉。
1对应第一步
2对应第二步
.......
最后使用sort就可以拉。
(当然那列属性最好为数值型拉)
回复
zanglinfeng 2004-06-16
楼上的能给详细点的代码吗,先谢了!
我给详细一点的数据库资料,在数据窗口按”型号”查询,显示要按数字顺序排
型号 说明 其他
OK-123 第五步 NOTE
NOO 第二步 MODIFY
NOO 第五步 GOG
NOO 第三步 LEH
OK-123 第三步 KLO
OK-123 第二步 PO
按说明排序,说明”第几步”有时只有”第五步”和”第二步”,没有其他”步”,这是比较麻烦的地方,又是按中文排序,不会哦
回复
zanglinfeng 2004-06-16
谢谢大家的帮忙,再等2天就结贴!
回复
wfexp 2004-06-16
我现在空着,想试试。

看来只能自己编程实现了。
定义一个数据 例如 sortarray[14][2]
然后 在数组里用程序写入 sortarry[1][1]=第一条记录中的中文数字相对应的数值
sortarry[1][2]=原记录号

然后根据sortarry[n][1]排序,
排序后在根据sortarray【n]【2】来改变数据库的记录号

如有问题联系啊
回复
tiantanglyz 2004-06-16
写一个函数,将中文数字转换为数字,然后在表中加一个字段,或在dw中加一个计算域

回复
miocn 2004-06-16
eminena(俄罗斯方块) 的方法,我也常用,而且在数据窗口中很方便,但有一个问题是,如果数据太多,你不是case不过来吗,你可以写一个全局函数,这样可以在DW中调用
回复
eminena 2004-06-16
用 CASE 函数.
添加一个计算域: cp_1
表达式为:

case( 列名 when '第一' then 1 when '第二' then 2 when '第三' then 3 ...... when '第十四' then 14 else 15)

然后,以cp_1 排序.
回复
feixianzhi 2004-06-16
dw_1.SetSort ( "#2 A")
dw_1.Sort ( )
回复
发帖
PowerBuilder
创建于2007-09-28

850

社区成员

PowerBuilder 相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-06-16 08:55
社区公告
暂无公告