回 帖 发 新 帖 刷新版面

主题:师傅帮帮我

刚开始学PB师傅布置了这样一题给我
  是在一个DW中实现记录增加
  好在我从书上找了个例子完成了
  可师傅又说让填加的记录自动加上编号
 我觉得有点难啊
 好几天没做出来
 后来师傅写了这样一段代码给了我
 结果是加上去的记录编码是同一个
  
 我想要的是填加的记录编码按从小到大的顺序排列
 long ll_row,ll_id
 string ls_id
 ll_row = dw_main.insertrow(0)

 select max(student_id) into :ls_id from wbj_test;

 ll_id = long(ls_id) +1

 dw_main.object.student_id[ll_row] = "0" + string(ll_id)

 求哥哥姐姐帮帮我  
 先谢谢了,

回复列表 (共3个回复)

沙发


怎么没有人肯帮帮我啊

板凳

有点懵懂。。
是要求在新增的时候,数据窗里面的数据按1、2、3、4----这样排下去吗?
如果是这样的话,只要在数据窗的第一行加上个计算域getrow()就OK了

3 楼

long ll_row,ll_id
string ls_id
ll_row = dw_main.insertrow(0)
select max(student_id) into :ls_id from wbj_test;
ll_id = long(ls_id) +1
dw_main.object.student_id[ll_row] = "0" + string(ll_id)
以下是我程序中的一部分,我觉得对你有借鉴意义

string ls_maxid
long ll_rowcount,ll_row
ll_rowcount=dw_main.rowcount()//得到数据窗口对象中的数据行数N
if ll_rowcount>0 then//如果数据装口对象中有数据时
ls_maxix=dw_main.getitemstring(ll_rowcount,'p_id')//得到第N行的'p_id,并
                                                  //传给ls_maxix

li_id=integer(ls_maxid) + 1  //行号加1
else//若没有时
li_id=1  //行号为1
end if
ll_row=dw_main.insertrow(0)//插入数据到最后一行
dw_main.scrolltorow(ll_row)//滚到最好一行
dw_main.setitem(ll_row,'p_id',string(li_id,'0000'))//把li_id以0000的形式
                                                   //放到第N+1行的'p_id列
dw_main.serfocus()

我来回复

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