我是PowerBuilder 10.5的新用户我试图创建一个成本应用程序,我想在从DDDW中选择enter image description here材料时自动填充行我想自动填写价格&安培;单元。有2个表1Material - 单位 - 价格2-项目名称DDDW - 数量 - 单位 - 价格 我是在MSaccess上做的,但我不知道如何在PowerBuilder上编码 访问代码是
Private Sub ItemName_AfterUpdate()
Unit = ItemName. Column(2)
Price = ItemName. Column(3)
End Sub
我怎么能在PowerBuilder中做到这一点
答案 0 :(得分:1)
在详细数据窗口的ÌtemChanged
事件中对以下内容进行编码(当然代码必须根据您的具体情况进行调整):
decimal ld_qty, ld_unitprice
if Upper(dwo.name) <> 'ITEM' then
return
end if
select qty, unit_price into :ld_qty, :ld_unitprice from your_table where your_table.key = data;
dw2.SetItem(row, 'your_dw_col_qty', ld_qty)
dw2.SetItem(row, 'your_dw_unit_price', ld_unitprice)
答案 1 :(得分:1)
如果您已将数据和价格与作为DDDW使用的datawindow对象的一部分检索的数据包括在内,则可以在不进行其他数据库调用的情况下访问它。这样的事情(在itemchanged事件中):
datawindowchild dwc
string ls_name
long ll_row
IF Upper(dwo.Name) = "ITEM" THEN
GetChild("item", dwc)
ls_name = data
dwc.SetFilter("name = '" + ls_name +"'" )
dwc.Filter( ) // filter to specific row in dddw
ll_row = dwc.RowCount( ) // How many? Use the last one.
if ll_row > 0 then
SetItem(row, "cost", GetItemDecimal('cost', ll_row))
SetItem(row, "amount", GetItemDecimal('amount', ll_row))
end if
end if