PowerBuilder DataWindows

时间:2012-07-11 05:27:48

标签: powerbuilder datawindow

我正在构建一个可以从输入中输出某些信息的工具。

我有这个自由形式的DataWindow,带有文本框和一个按钮(button_1)。假设我有一个窗口按钮[ADD],点击后会触发dw_1.InsertRow(0)

文本框和按钮(button_1)将根据单击ADD按钮的次数而相乘。

我计划在自由格式DataWindow中添加另一个DataWindow,以便当button_1被点击到它的任何行时。将调用位于DataWindow内部的dw_2.InsertRow(0),此dw_2 DataWindow具有自己的文本框,并且可以在其中包含多行。

这可能吗?如果是,我该怎么做,如果没有,你能推荐一种方法来解决这个问题。

2 个答案:

答案 0 :(得分:2)

理论上你可以在DataWindow控件中编写一个ButtonClicked事件的脚本(例如在一个窗口或用户对象画家中),但是根据我的判断,向你发送这条路并不是你真正想要的。您无法在嵌套的DataWindow中编辑数据,因此插入行的按钮可能毫无意义。

目前尚不清楚为什么要在一个DataWindow中执行此操作,但我建议在单个窗口(或用户对象)上的两个DataWindows中执行此操作,这可能会导致您使用常规命令按钮控件窗口而不是DataWindow。

祝你好运,

特里。

答案 1 :(得分:1)

您可以使用计算字段(不直接更新数据库)或使用额外列和某些脚本来完成此操作。

如果使用计算字段,则表达式为

CumulativeSum (1 for all)

这基本上会为每一行添加一个行号。如果您需要非线性或非连续编号,可以对其进行扩展。

如果需要使用脚本,则只需在调用InsertRow()后立即添加math和SetItem()语句。如果您正在使用“插入行(12)”操作的数据窗口按钮,请将其更改为“用户定义(0)”,并像Terry所述,将脚本放入DataWindow的ButtonClicked事件中。