2

我们的 PowerBuilder 应用程序相当大,并且在多个 PBL 中有许多对象用于组织我们的代码。我们经常在一个窗口上有 10 个或更多的数据窗口,这些数据窗口可能分布在两个或三个 PBL 上。对于版本控制,我们使用独占签出来避免合并冲突。

情况是,当您从窗口绘制器中右键单击数据窗口对象时,您会得到一个上下文菜单,其中包含“脚本”和“属性”以及“修改数据窗口...”等选项。我们想为“Check-out...”添加一个,以避免在多个 PBL 中寻找数据窗口。

任何关于如何做到这一点或类似的想法,将不胜感激。

4

4 回答 4

2

我认为您能做的最好的事情是在库列表的顶部创建一个临时库,通过“修改数据窗口...”跳转到它们来定位您的数据窗口,然后将它们保存到您的临时库中,最后使用工具在您的源代码控制系统中按名称找到它们并锁定它们。

我使用的另一个技巧是取消选中清除 .srd 等文件的源代码控制选项中的复选框,然后使用操作系统的查找工具搜索这些文件的文件名(因为 Powerbuilder 仍然不支持搜索按名称命名的对象...)。当然,如果你没有很多对象,如果你的对象没有很多引用,你总是可以使用 Powerbuilder 的搜索...但是你知道谁在那个幸运的位置?!

于 2010-03-25T18:59:21.877 回答
1

我认为您遇到了很多人遇到的问题,该问题直接通过 PB 中的一个漏洞运行,该漏洞使您可以在不警告您检查它的情况下开始编辑 DataWindow。不幸的是,据我所知,没有办法连接到上下文菜单。

但是,您可以连接到工具栏项目。如果那是我想走的路,并且我有足够的空闲时间,我会编写一个从工具栏启动的应用程序,它的作用如下:

  • 使用 API 查找 PowerBuilder 窗口
  • 在 PB 中查找当前工作表
  • 从标题中获取对象名称
  • 获取当前应用程序(registry 或 PB.INI,取决于 PB 的版本,可能涉及先获取工作空间,然后获取当前目标)
  • 获取库列表(PB.INI 或目标文件)
  • 对打开的对象执行 LibraryExport()
  • 查找所有 DataWindow 控件(这可能涉及查看祖先以确定控件类型)
  • 识别这些控件的数据对象(同样,您可能需要查看祖先)
  • 使用 LibraryDirectory() 获取所有 PBL 中所有对象的列表
  • 查找数据对象的 PBL
  • 弹出一个窗口,列出数据对象及其 PBL

OTOH,如果我有PBL Peeper(是的,这是有偏见的建议),我会

  • 在我的桌面上启动“PBL Peeper(浏览当前应用程序)”图标(好吧,这是个谎言;我已经打开了 PBL Peeper,只需切换到浏览页面)
  • Ctrl-Q(用于快速查找)并开始输入对象的名称(如果您暂停,它将找到与您输入的内容部分匹配的内容)
  • 点击 [Enter] 一次以接受 QuickFind 的选择
  • 再次按 [Enter] 以展开对象
  • 找到有问题的DataWindow控件和RMB就可以了
  • 选择“转到默认数据窗口”
  • 如果微帮助中没有显示库和名称(我已经很久没有发布版本了,我无法跟踪发布的版本中的内容),找到向上工具栏项向上到 PBL

我知道这并不能实现结帐,但它确实“避免了在几个 PBL 中寻找数据窗口”。而且,您可能比我的第一个建议更快地实现这一目标。

祝你好运,

特里

于 2010-03-26T02:08:53.393 回答
1

我这样做的方法是右键单击并选择 Modify DataWindow。当画家打开时,您可以从画家的标题中读取 PBL。然后关闭 DataWindow Painter,这样 PB 就会让您检查 DataWindow。对于定位任意用户对象的更一般情况,请使用 Terry 的 PBL Peeper 方法。

于 2010-03-26T20:48:45.350 回答
0

您可以将用于开发的 PBL 组织与用于部署的 PBL 组织分开。

只要 PBL 名称在源代码中的两个视图之间不冲突。在源代码管理中注册的 PBG 文件不会相互干扰。

缺点是当添加或删除新对象时,您将需要更新这两个位置。

我将创建一个包含所有相关对象的仅数据窗口 PBL,并将它们放在同一个目标中。当我使用该子系统或报告时,我可以检查同一库中的所有对象。

于 2010-04-01T11:17:10.067 回答