Powerbuilder 12.5 - DataWindows上的函数没有触发

问题描述:

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

我想强调一些包含某些字符串的字段。 要做到这一点,我做了一个全局函数f_colorforkeywords,它接收字符串并返回背景颜色,白色或黄色。 在数据窗口,选项卡的背景下,我设置背景色的功能,调用我的全局函数:

f_colorforkeywords(content_of_this_field) 

这个作品非常好,即使从表演的角度,在PowerBuilder的IDE:每当新的数据被加载,网格获得我想要的颜色。 但是,当我编译一个可执行文件并运行它时,全局函数根本不会被调用。

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

发生了什么事?

+2

应用程序目录中是否包含全局函数的pbd? – Slapout 2014-09-30 13:07:02

+0

没有PBD,我只做一个EXE文件 – 2014-09-30 13:28:13

+1

Slapout可能有答案。除非你在DataWindow表达式以外的地方引用它,否则编译器可能不会将该函数推送到可执行文件中。当我想强制某些东西进入我的EXE时,我在应用程序对象中创建一个未使用的事件,并在其中进行引用。 – Terry 2014-09-30 15:13:27

这可能是也可能不是你所看到的。我看到继承事件丢失对号“扩展祖先脚本”的复选标记

我不记得任何押韵或理由,为什么复选框被删除,但它可能是在后裔没有任何脚本的情况下,但后来有一个较低级别后代的脚本。

这件事发生超过一次所以这是一个问题......心连心

类层次结构样本

u_dw - ue_postopen有代码

v

u_dw_udi - ue_postopen后代的复选框'unchecked'用于扩展祖先脚本(神秘)

v

u_dw_app - ue_postopen后裔有代码,不会触发因为u_dw_udi没有扩大,没有显式调用超。如果我记得这个后裔有复选框,所以一切看起来不错,我们不得不在整个测试调试消息之前进行测试。奇怪的一个。

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

  1. 如果数据窗口对象d_emp与数据窗口控制动态使用下面的语句相关,d_emp不会被复制:

  2. dw_info.DataObject =“d_emp”在下面的脚本动态分配的位图文件不被复制:

  3. IF Balance < 0 THEN p_logo.PictureName =“frown.bmp”ELSE p_logo.PictureName =“smile。BMP“在下面的窗口的脚本的字符串变量END IFThe参考窗口w_go生成可执行文件时不被PowerBuilder中找到,因此w_go不会被复制到可执行文件:

窗口mywinstring winname =” w_go“打开(mywin,winname)

tabBackColor没有改变的问题在Windows 7下的12.5版本中,这可以被认为是预期的行为打开”在XP下使用Windows经典模式“,改变tabBackColor将会如果没有检查,PowerBuilder将按照系统颜色,如果Windows经典模式不可接受,请将tabTextColor更改为您的指示器,而不是tabBackColor。