注册 登录
编程论坛 PowerBuilder

[求助]就是在dw中,实现里面的序号自动增加,我定义的是char型,为4位,不足4位用0

niao 发布于 2006-07-24 13:04, 1149 次点击
就是在dw中,实现里面的序号自动增加,我定义的是char型,为4位,不足4位用0 补充
9 回复
#2
ヤ順祺冄繎ヤ2006-07-24 13:15
数据库中保存了该字段?

可以设置其format为0000
#3
niao2006-07-24 14:29

保存了
我的意思是说,当我向数据库插入一条记录的时候,列号,自动生成
例如:第一条:0001
第二条:0002
。。。。。。。。。

#4
ヤ順祺冄繎ヤ2006-07-24 16:27

我的想法就是先用DW里的控件,用getrow()可以得到
第一条 1

第二条 2

再设置format为0000 //让其显示为0001

再用getitemstring() //取出

最后用setitem //赋值

再update() //保存

俺的想法,可能会有更好的办法!

#5
niao2006-07-24 18:37
你能说得更为详细一些吗?
因为我刚接触pb还不是很懂,这些内容?
能给一个小例子吗?
谢谢!!!!
#6
niao2006-07-25 10:09

请问:这是什么意思呀,怎么解决呢? 在线等!
application terminated
error: invalid datawindow row/column specified at line 15 in open event of object w_main

#7
wajjdyy2006-08-05 21:15

我是这样实现的,你可以试下,也许比较麻烦。假设你有一块表名为USER里的字段为ID代表列号。在‘插入’按纽写入以下代码:
string id
long num
SELECT max(user.id)
INTO :id
FROM user ;
if id < '0001' or isnull(id) then
dw_1.insertrow( 0)
dw_1.setitem( dw_1.rowcount(),'id','0001')
else
num = long(id)+1
dw_1.insertrow( 0)
dw_1.setitem( dw_1.rowcount(),'ID', '000'+string(num))
end if

#8
lifeng2006-08-10 11:16

上面的朋友
如果我的ID号大于10
那不是变成5为了吗

#9
石门书生2006-08-10 11:56
dw_1.setitem( dw_1.rowcount(),'ID', right('000'+string(num),4))
#10
daring2006-08-17 15:14

用函数mid就可以实现,你去试试

1