PB 数据窗口高级( DataWindow) 37 个技巧 1. 使DataWindow 列只能追加不能修改 如何使DataWindow 中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下: 将每一列的 Protect 属性设置为: If( IsRowNew(), 0, 1) ) 在 PowerScript 中可以动态修改 Protect 属性: dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'") 这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。 2 .如何在DataWindow 中实现列的自动折行 我们在PowerBuilder 应用程序的开发过程中, 使用DataWindow 时, 经常会遇 到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起 来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自 动折行.具体步骤如下: 1) 在DataWindow Painter 中打开此 DataWindow. 2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口. 3) 选择Position 标签, 选中Autosize Height 多选框. 4) 选择Edit 标签, 不选中Auto Horz Scroll 多选框. 5) 单击OK 按钮, 保存所做的修改. 6) 点中Detail Band (即写有Detail 的灰色长带), 单击鼠标右键, 选择 Properties... 菜单项. 7) 选中Autosize Height 多选框. 8) 单击OK 按钮, 保存所做的修改. 9) 保存此DataWindow. 注意: 连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不 会自动进行折行. 3. 在数据窗口中实现动画 要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval 中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。比如要改变某字段的背景颜色,可设 ackgound.color=RGB(Integer(Right(string(now(),'hhmmssf'),1))*256/10,Integer(Right(string(now(),'hhmmssf'),1))*256/10,0) 当然,您不仅可以改变背景颜色,而且可以改变字体等等任何属性,使他可以动起来! 4. 使数据窗口中的被选中行具有更好的外观 大家都知道,在选择数据窗口中的某一行时,如果使用pb 提供的选择函数SelectRow (),那么的外观真是不能恭维,单调而古板的蓝色背景,可能和您的漂亮而生动的应用程序格格不入。有没有办法改变呢?当然有啰,请听我慢慢道来。 改 变 某一行的背景比 较 简...