如何定义DataWindowChild的DataObject?

时间:2013-04-24 13:55:03

标签: powerbuilder

我的函数有一个DataWindowChild类型的输入参数adwc。有可能以某种方式发现它的DataObject吗?没有指向放置DWC的DataWindow的指针,因此我们不能要求字段的“dddw.name”。

谢谢!

2 个答案:

答案 0 :(得分:1)

AFAIK,答案是否定的。您可以执行adwc.Describe(“datawindow.syntax”)来获取它的定义(或任何Describe()来获取各种属性),或者,如您所建议,您可以修改您的函数以获取父项的句柄和用于访问dddw.name的列名。

目标是什么?也许如果我们知道结束游戏,我们可以提出更有价值的建议。

祝你好运,

特里。

答案 1 :(得分:0)

您不应编写关心DataWindow对象名称的代码。有几个原因。

  1. DataWindow是一个动态对象。 DataWindow控件为数据对象报告的名称是按名称设置的最后一个名称。可以通过Create加载完全不同的DataWindow,名称不会更改。
  2. 检查DataWindow名称的代码是脆弱的。假设您的代码正在检查dddw是d_emp还是d_manager。当某人创建一个新的经理dddw并将其命名为d_manager_v2时,您的代码可能会以一种意外和混乱的方式失​​败。
  3. 您关注DataWindow名称的代码可能违反One Responsibility等设计原则。
  4. 根据Ursego的评论添加

    对于您的DataWindow / DataStore,您有uf_row_exists(ls_search_expr)。您正在尝试为DataWindowChild编写函数,但DataWindowChild在没有DataWindow控件的情况下不存在,而不是DataWindow。如果您将uf_child_row_exists(ls_column, ls_search_expr)添加到DataWindow / DataStore,您将拥有父级和子级。