有了PowerBuilder,有没有办法找到是否正在使用特定的数据窗口或数据存储?
编写了我的PowerBuilder代码后,我可能会有几个数据窗口,其中一个叫做d_Gubbins。我可以通过整个未编译的程序来查看数据窗口是否被实际使用吗?有了PowerBuilder,有没有办法找到是否正在使用特定的数据窗口或数据存储?
下载PBLPeeper并运行DataWindow对象使用情况报告。您也可以运行对象交叉引用并查看未引用的对象。小心这样的代码:
public subroutine evil(string as_thing);
string ls_hidden = "d_muahahah_"
ls_hidden = ls_hidden + as_thing
dw_1.dataobject = ls_hidden
end subroutine
我们已经禁止这样的建筑名称。
你可以做一个文本搜索你的数据对象的名字:
- 目标(在项目树状图的2级绿色圆圈 - 而不是在顶层的工作区),用鼠标右键单击
- 搜索...
- 在文本字段中输入
d_Gubbins
,取消比赛的情况下选择和检查两个选项
的“寻找”如果数据对象是地方mentionned,它瓦特否则会在搜索结果标签页中列出。您可能会有一些错误的肯定结果,其中提到OBJ:
这些数据窗口在部署目标中列出,但它没有说明该对象实际使用。如果您有其他一些具有相同名称基数的对象,例如,您也可能得到错误的结果。 d_Gubbins_old
或d_Gubbins_temp_for_test
。
赞赏关,但这是整个想法下降的地方。数据窗口本身可能被称为'd_Doodad',但是所有的引用都被调用,比如'dw_Doodad'(或者如果屏幕上有多个'dw_OtherDoodad')。这是搜索的想法有点平坦的地方... – HugMyster
@HugMyster:我不明白:你的数据窗口可以通过一个名为'dw_foo'或'dw_whatever'的* datawindow控件来显示,但你仍然可以搜索它的* dataobject属性*(在某些函数/事件中,或在对象构造中设置的默认属性中)设置为'd_Gubbins'(假设没有可疑的名称构造,如Hugh Brackett在其答案中所述)? – Seki
我总是编写代码,将数据窗口定义为'd_datawindow'。当它被代码窗口使用时,我们将有一个数据窗口(例如'dw_thingy'),它被设置为使用窗口,只需在属性中声明它('name = ** dw_thingy **,dataobject = ** d_datawindow **')。但是,找到具体的数据窗口(d_ sidw)似乎是不可能的,因为它们永远不会出现在搜索中。 – HugMyster
如果用名称周围的双引号进行搜索,它只会找到适当的引用。
感谢您使用PBL Peeper参考。在PP浏览页面上,您还可以右键单击DataWindow,在App中查找/其他地方查找所有其他参考。查找页面,仅用整词,不区分大小写,包括引号和部分类型=全部也可以。但是,如果目标将变成查找所有未引用的对象,那么前面提到的对象交叉引用/未引用对象列表是最简单的方法(它只需要多花一点时间)。 – Terry
并感谢“muahahah”的正确拼写。我总是用一个'W'出于某种奇怪的原因。 – HugMyster