Как автоматически заполнять поля в PowerBuild
Я новичок в PowerBuilder 10.5. Я пытаюсь создать приложение стоимости, я хочу автозаполнение строки, когда я выбираю ввести описание изображения здесь материал из DDDW, я хочу автоматически заполнить цену и единицу. Есть 2 таблицы: 1Материал - Единица - Цена 2- Имя элемента DDDW - Количество - Единица - Цена Я сделал это на MSaccess, но не знаю, как кодировать его в PowerBuilder при доступе к коду
Private Sub ItemName_AfterUpdate()
Unit = ItemName. Column(2)
Price = ItemName. Column(3)
End Sub
как я могу сделать это в PowerBuilder
2 ответа
Код следующего в Ì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)
Если вы включили количество и цену в данные, извлеченные как часть объекта datawindow, который вы используете для DDDW, вы можете получить к нему доступ без повторного вызова базы данных. Как-то так (в событии itemaged):
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