获取DataWindow band对象

发布于 2024-11-25 09:43:08 字数 124 浏览 1 评论 0原文

我如何获取特定区域(例如详细信息或标题)中所有对象的数组?

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

dw_1.Describe("datawindow.objects")

How can i get an array of all objects in specific band, Detail or Header for example?

I success to get all objects using:

dw_1.Describe("datawindow.objects")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

默嘫て 2024-12-02 09:43:08

您需要获取列出所有可见对象的 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

该代码来自 datawindow 继承对象,因此它可以直接访问描述方法。

You need to get the datawindow.visualobjects property that lists all the visible objects and for each object, you ask object_name.band to check if you want it.

An example that reuses the PbniRegex (that provides the uo_regex object in the code below) to simplify the properties parsing :

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

That code comes from a datawindow herited object, hence it gets direct access to the describe method.

萌辣 2024-12-02 09:43:08

我不知道有什么直接方法可以获取该列表,但是一旦您获得了完整的对象列表,您就可以检查它们并检查每个对象的频带:

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

I don't know of any direct way to get that list, but once you have the complete list of objects, you can go over them and check each one's band:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文