Как автоматически заполнять поля в 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
Другие вопросы по тегам