2

例如,如何获取特定波段、详细信息或标题中的所有对象的数组?

我成功使用以下方法获取所有对象:

dw_1.Describe("datawindow.objects")
4

2 回答 2

1

您需要获取datawindow.visualobjects列出所有可见对象的属性,并且对于每个对象,您要求object_name.band检查是否需要它。

一个重用PbniRegex(在下面的代码中提供uo_regex对象)以简化属性解析的示例:

public function long of_get_band_controls (string as_band_name, ref string as_controls[]);
string ls_empty[]
int i, j
as_controls[] = ls_empty[]

uo_regex lnv_regex
lnv_regex = create uo_regex
lnv_regex.initialize( "([^\t]+)", true, false)
i = lnv_regex.search( describe("Datawindow.visualobjects") )
for j = 1 to i
    if describe( lnv_regex.match( j ) + ".band" ) = as_band_name  then
        as_controls[ upperbound(as_controls[])+1 ] = lnv_regex.match( j )
    end if
next
destroy lnv_regex

return upperbound( as_controls[] )
end function

该代码来自数据窗口继承对象,因此它可以直接访问该describe方法。

于 2011-07-21T09:04:17.140 回答
0

我不知道获取该列表的任何直接方法,但是一旦您拥有完整的对象列表,您就可以查看它们并检查每个人的乐队:

ls_Obj = GetNextObjectFromList(ls_AllObjectsList)
ls_Band = dw_1.Describe(ls_Obj + ".band")
choose case ls_Band
  case "detail"
    // handle detail band objects
  case "header"
    // handle header band objects
  // etc.
end choose
于 2011-07-21T09:00:38.903 回答