是否有任何逻辑可以使用powerbuilder对象名称,大小来获取报告。 当我们正在迁移PB项目时,另一个团队要求我们生成上面的列表,因为我们有大约3000个对象,我们无法手动完成。如果有任何办法,请分享。
答案 0 :(得分:2)
PBL Peeper(正如Seki所提到的)可以为您提供各种 DataWindows 列表(Seki将您指向“报告”页面,但“列表”页面也可能有用),但您使用的是word" reports"。 DataWindows可用作打印报告,用户界面,这两者的组件,甚至非可视商店(以及更多)。如果他们正在寻找打印报告的描述,这将更加复杂。您可以使用PP来搜索Print()或PrintDataWindow()命令(尽管它们可能引用函数参数,这些函数参数必须追溯到调用堆栈,或者它们可能引用可能在其中动态修改其DataWindow对象引用的控件)运行)。还要记住,即使一旦找到受打印命令约束的DataWindow对象,DataWindows也可以包含其他DataWindows,因此您可能必须链接引用(这也可以在运行时修改)。
你提及"迁移"。如果打算迁移到另一种技术,请记住DataWindows不是简单的数据转储。 DataWindows可以利用几乎所有内容的嵌入,动态定位,数据驱动属性修改和运行时修改(包括整个对象的运行时生成);在迁移DataWindows时,这是冰山一角。如果有人希望获得报告背后的SQL,以及UI元素的一些静态属性(例如X,Y,宽度,高度),那么您可以通过建议可能有更多的任务来完成这项服务。
祝你好运。答案 1 :(得分:1)
您可以使用"打印目录"功能可以在PDF打印机的帮助下打印PBL中的对象列表(按对象类型分组)。
如果有大量的PBL,那就不太方便了,PBL Peeper reports可能是更好的解决方案。
答案 2 :(得分:1)
除了Seki和Terry提到的,PBL Peeper中还有其他报告对于进行迁移的团队有用,包括数据库列使用和对象交叉引用。要添加Terry关于DataWindow的注释,除了Create和Modify方法之外,还有Evaluate可以执行动态创建的代码。捕获人们尝试将DataWindows移植到不同技术的另一个因素是PBSELECT,它是DataWindows中的默认设置。在运行时,Transaction对象将PBSELECT转换为您所连接的特定数据库的SQL。 PBL Peeper DataWindow SQL报告将为您指定的数据库版本提供SQL,但除非您使用与应用程序完全相同的连接设置运行完全相同的数据库版本,否则它不一定是SQL应用程序将生成。
答案 3 :(得分:0)
您的项目是否受源代码管理?如果是这样,您可以查看源控制文件夹并运行该报告。每个对象都会导出到一个文本文件,其扩展名特定于对象类型。只是在这里开箱即用......这可能有所帮助。我不能想到其他方法,除了得到一个人已经写过的工具,比如其他人正在谈论的窥视。
我几乎可以理解为什么有人问你这个问题,无论他们使用哪种方法,它都不能准确反映应用程序的大小/对象/代码。数据窗口对象可以在其中包含许多计算字段,每个字段都像它的'自己的功能。我所知道的市场上没有任何东西会深入到这个细节层面。因此,一个数据对象可能等于50个单元的编程工作量而另一个数据对象可能等于一个编程工作单元。
使用对象来测量代码的另一个问题是,PB是面向对象的,因此祖先对象可能永远不会用在其对象上。拥有。或者,复杂的用户对象可能会在应用程序的数百个位置实例化,因此将其计为一个单元"完全是误导。简而言之,没有快速而肮脏的方法来衡量更换PB应用程序所需的工作量。
另一个简单的例子,一个窗口不等于一个窗口。一个窗口可能在其上实例化了50个控件,并且每个窗口中的每个控件都具有许多事件或函数中的代码。因此,一个窗口可能等于一个编程工作单元而另一个可能是一百个单元。
然后你有后端。在那里做了多少。我一直沿着这条路走下去,当管理层要求这些东西时,他们不知道他们进入了什么,他们应该被警告。