我的情况如下:
我们在我们的应用程序中使用PFC。 当我们点击按钮(继承自对象 - 在父按钮对象上编写代码)时,我想做什么呢? 它应该从DataWindow中捕获行数,该数据存在于同一个窗口中。
我在数据库中存储窗口,DataWindow和按钮名称。
窗口名称 - w_emp
DataWindow名称 - d_emp
按钮名称 - b_emp
因此,当用户点击按钮时,我正在检索这些数据,并检查是否存在我正在寻找的相同窗口,数据窗口和按钮。
如果是是那么我想在点击按钮的事件中获取DataWindow的行数。
但......
我不想使用任何硬编码逻辑......
If windowname = 'w_emp' then
w_emp.d_emp.rowcount()
Elseif...
End if...
我想要一些类似的东西,我可以用一些代码做同样的事情而不用做 如果别的 要么 案例陈述 我必须检查多个条件。
我可以在按钮级别访问窗口和数据窗口名称。
string ls_window
string ls_datawindow
datawindow ld_test
select window_name, datawindow_name into ls_window, ls_datawindow from table_name where button_name = 'b_emp';
ld_test.dataobject = parent.ls_datawindow // It is giving an error
我想获取来自数据库的DataWindow行计数。
确保我想在父级别进行操作,只要用户点击按钮,我就可以从整个应用程序获取请求。所以我需要动态逻辑。
答案 0 :(得分:0)
你要做的是期待父母。评估控制; PowerBuilder不这样做。你可以做的是在Control []数组中循环,将每个ClassName()与你的字符串进行比较。根据你想要做的工作的彻底程度,每次你点击一个TypeOf()选项卡的控件时你都必须递归!或UserObject!。 (如果你有PFC,你在(pfcapsrv.pbl)pfc_n_cst_luw.of_update())中有一个控制扫描递归的好例子。
祝你好运,特里。