关于数据重复的问题~~

bjuwy 2005-10-23 04:48:20
本来要求一个数据窗口中找出某一列不能重复,现在因为员工的误操作,重复了一些,
我现在就是要把这些重复的找出来,只保留一个,我是这样写的:
SetPointer(HourGlass!)
dw_1.settransobject(sqlca)
dw_1.retrieve(em_1.text,em_2.text)
string ls_djh,ls_djh1="",ls_djh2
string ls_t,ls_djh11,ls_djh22
int i,j
hpb_1.maxposition=dw_1.rowcount()
hpb_2.maxposition=dw_1.rowcount()
sle_1.text="有"+string(dw_1.rowcount())+"张单据"
for i=1 to dw_1.rowcount()
ls_djh1=dw_1.getitemstring(i,'djh1')
hpb_1.position=i
for j=1 to dw_1.rowcount()
ls_djh2=dw_1.getitemstring(j,'djh1')
hpb_2.position=j
if string(ls_djh1)=string(ls_djh2) then
ls_djh11=dw_1.getitemstring(i,'djh')
ls_djh22=dw_1.getitemstring(j,'djh')
ls_t=st_1.text
st_1.text=ls_t+'~r'+ls_djh11+"和"+ls_djh22+"重复"
// st_1.text=ls_t+'~r'+ls_djh1
end if
next
next
SetPointer(arrow!)
messagebox("","找完了!")
我觉得这样好慢啊~
大家帮我看看我有没有改进的地方
...全文
112 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangxingbing 2005-10-24
  • 打赏
  • 举报
回复
怎么不用find呢?
lmby 2005-10-23
  • 打赏
  • 举报
回复
dw_name.setsort()
dw_name.sort() //先按djh1排序

for i = 2 to dw_name.rowcount()
if dw_name.object.djh1[ i ] = dw_name.object.dhj1[ i - 1 ] then
st_1.text=ls///该行与上一行重复,以及你相应的处理
end if
next

如果重复的需要删除,注意在delete后,循环的行号减1. i = i-

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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