Powerbuilder 12.5 - DataWindows上的函数未触发

时间:2014-09-30 11:15:43

标签: powerbuilder datawindow powerbuilder-pfc

我在PowerBuilder 12.5.1中有一个应用程序,它有一个只读网格数据窗口,是主细节(PFC链接服务)的一部分。

我想强调一些包含某些字符串的字段。 为此,我创建了一个全局函数f_colorforkeywords,它接收字符串并返回背景颜色,白色或黄色。 在数据窗口,选项卡背景中,我将背景颜色设置为函数,调用我的全局函数:

f_colorforkeywords( content_of_this_field )

在PowerBuilder IDE中,即使从性能的角度来看,这也很有效:无论何时加载新数据,网格都会获得我想要的颜色。 但是,当我编译可执行文件并运行它时,根本不会调用全局函数。

我也尝试在PBR文件中添加全局功能,但没有成功。

发生了什么事?

2 个答案:

答案 0 :(得分:1)

这可能是也可能不是你所看到的。我看到继承的事件失去了勾选标记,表示" 扩展祖先脚本"。

我无法记住为什么删除复选框的任何押韵或理由,但可能是在后代没有任何脚本的情况下,但是在较低级别有脚本后代。

这发生了不止一次所以这是一个问题... hth

类层次结构示例

u_dw - ue_postopen有代码

v

u_dw_udi - ue_postopen后裔的复选框已取消选中'用于扩展祖先脚本(神秘)

v

u_dw_app - ue_postopen后代有代码,没有触发,因为u_dw_udi没有扩展,也没有显式调用super。如果我记得这个后代有复选框所以一切都很好看,我们不得不把测试调试消息全部放在我们想出来之前。很奇怪。

我不确定这个解决方案是否与您所看到的可能不相关。根据PB帮助,唯一没有复制到exe的东西是。

  1. 如果DataWindow对象d_emp使用以下语句动态地与DataWindow控件关联,则不会复制d_emp:

  2. dw_info.DataObject =" d_emp"不会复制以下脚本中动态分配的位图文件:

  3. IF余额< 0那么p_logo.PictureName =" frown.bmp" ELSE p_logo.PictureName =" smile.bmp" END IFT对以下窗口脚本中的字符串变量的窗口w_go的引用未找到PowerBuilder在构建可执行文件时,因此w_go不会复制到可执行文件中:

  4. window mywinstring winname =" w_go" Open(mywin,winname)

答案 1 :(得分:0)

tabBackColor没有改变的问题是什么?在窗口7下的12.5中,这可以被认为是预期的行为。打开"在XP"下使用Windows经典模式并且tabBackColor的更改将起作用。如果没有选中此选项,PowerBuilder将遵循系统颜色。如果Windows经典模式不可接受,请将tabTextColor更改为指示符而不是tabBackColor。