数据录入疑问

zombie09 2009-10-22 04:57:50
我想在dw_2录入信息的同时把其中一项的值组合在一起放入DW_1的某一字段中去,式子该怎么写啊?

例如dw_2
name id tpye
1 ab
2 df
3 hi
4 pe
…………

把name项组合成类似ab/df/hi/pe的一个字段

用一下代码
itemchanged:
Long lRow
String ls_TOTALNAME
if lower(dwo.name)='name' then
For lROW = 1 to dw_2.RowCount()
If Row = lRow then
ls_TOTALNAME = ls_TOTALNAME+'/'+data
Else
ls_TOTALNAME = ls_TOTALNAME + '/'+dw_2.Object.name[lRow]
End If
Next
IF dw_1.GetROW() > 0 tHEN
dw_1.object.name[dw_1.GetROW()] = ls_TOTALNAME
END IF
end if

最后DW_1中显示的组合起来的字段总是会重复一次,且重复的都是dw_2中最后录入的那个数据。请问如何修改?
例如显示成“ab/df/ab”,“ab/df/hi/pe/ab”“pe/df/hi/pe”...
...全文
72 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zombie09 2009-10-23
  • 打赏
  • 举报
回复
这是写在DW_2里面的itemchanged事件里的
long i,ll_row,ll_ret,irow
string ls_dwoname,ls_standardno
dwItemStatus l_status
datastore ds_criterion

ls_dwoname=dwo.name
ds_criterion=create datastore
ds_criterion.dataobject="dw_testing_criterion"
ds_criterion.settransobject(SQLCA)
ds_criterion.retrieve()

choose case ls_dwoname
case "standardno"
this.accepttext( )
ls_standardno=this.GetItemString(row,"standardno")
ll_row=ds_criterion.Find("(standardno='"+ls_standardno+"')",1,ds_criterion.rowcount())
if ll_row>0 then
this.SetItem(row,"standardname",ds_criterion.GetItemString(ll_row,"standardname"))
this.SetItem(row,"remark",ds_criterion.GetItemString(ll_row,"note"))
For i = 1 to this.RowCount()
if Row = i then
ls_standardno = ls_standardno+'#'+data
else
ls_standardno = ls_standardno + '#'+this.Object.standardno[i]
end if
Next
tab_1.tabpage_1.dw_1.setitem(tab_1.tabpage_1.dw_1.getrow(),"testby",ls_standardno)
end if

this.SetColumn(1)
this.SetFocus()


/* case "equipname" */

case else

end choose

destroy ds_criterion
永生天地 2009-10-23
  • 打赏
  • 举报
回复
用一下代码
itemchanged:
Long lRow
String ls_TOTALNAME
if lower(dwo.name)='name' then
For lROW = 1 to dw_2.RowCount()
If Row = lRow then
ls_TOTALNAME = ls_TOTALNAME+'/'+data
Else
ls_TOTALNAME = ls_TOTALNAME + '/'+dw_2.Object.name[lRow]
End If
Next
IF dw_1.GetROW() > 0 tHEN
dw_1.object.name[dw_1.GetROW()] = ls_TOTALNAME
END IF
end if

你的代码我用了,不是你说的这个结果而是这样/ab/df/hi
你在看看你是不是还写了别的代码
sewinten 2009-10-23
  • 打赏
  • 举报
回复
为什么要循环呢?
直接这样就好了
String ls_TOTALNAME
if lower(dwo.name)='name' and row > 0 then
ls_TOTALNAME = ls_TOTALNAME+'/'+data

IF dw_1.GetROW() > 0 tHEN
dw_1.object.name[dw_1.GetROW()] = ls_TOTALNAME
END IF
end if

row就是你正在编辑的dw_2的当前行
zombie09 2009-10-23
  • 打赏
  • 举报
回复
原来我弄错了汗。。。明白了
zombie09 2009-10-22
  • 打赏
  • 举报
回复
另外上述代码中row代表的是什么来着?

1,075

社区成员

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

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