pb_datawindow_38个技巧

pb_datawindow_38个技巧

ID:25850727

大小:50.00 KB

页数:18页

时间:2018-11-23

pb_datawindow_38个技巧_第1页
pb_datawindow_38个技巧_第2页
pb_datawindow_38个技巧_第3页
pb_datawindow_38个技巧_第4页
pb_datawindow_38个技巧_第5页
资源描述:

《pb_datawindow_38个技巧》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PBDataWindow38个技巧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中实现列

2、的自动折行我们在PowerBuilder应用程序的开发过程中,使用DataWindow时,经常会遇到某列的数据太长,不能同时全部显示的情况.若采用自动水平滚动,操作起来又不够简便.下面介绍一种方法,实现列数据多行显示,即实现列数据的自动折行.具体步骤如下:1)在DataWindowPainter中打开此DataWindow.2)在需设定自动折行的列上双击鼠标,弹开此列的属性窗口.3)选择Position标签,选中AutosizeHeight多选框.4)选择Edit标签,不选中AutoHorzScroll多选框.5)单击OK按钮,保存所做的修改.6)点中DetailB

3、and(即写有Detail的灰色长带),单击鼠标右键,选择Properties...菜单项.7)选中AutosizeHeight多选框.8)单击OK按钮,保存所做的修改.9)保存此DataWindow.注意:连在一起的汉字(中间没有标点或空格分隔),系统将认为是一个单词,不会自动进行折行. 3在数据窗口中实现动画要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在TimerInterval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。比如要改变某字段的背景颜色,可设ackgound.color=R

4、GB(Integer(Right(string(now(),'hhmmssf'),1))*256/10,Integer(Right(string(now(),'hhmmssf'),1))*256/10,0)  当然,您不仅可以改变背景颜色,而且可以改变字体等等任何属性,使他可以动起来! 4使数据窗口中的被选中行具有更好的外观大家都知道,在选择数据窗口中的某一行时,如果使用pb提供的选择函数SelectRow(),那么的外观真是不能恭维,单调而古板的蓝色背景,可能和您的漂亮而生动的应用程序格格不入。有没有办法改变呢?当然有啰,请听我慢慢道来。  改变某一行的背景比较简

5、单,改变每一列的背景属性(backgroundcolor)即可,可要根据鼠标选择情况自动改变,并可以返回被选中的行可能还需要一定的技巧。下面分单行选择和多行选择分辨说明。单行选择  单行选择比较简单,我们只要将所有字段的背景色的表达式改为:if(GetRow()=CurrentRow(),RGB(255,126,0),RGB(0,0,0))  其中第一个颜色为被选中的颜色,第二个颜色未被选中的颜色。然后用GetRow()代替GetSelectedRow()函数来得到被选中的行。 多行选择  多行选择比较复杂,如果单纯依靠改变数据窗口的属性没法实现,我们必须使用数据窗

6、口属性和代码结合起来才能实现 首先,改变数据窗口的SQL语句,增加一个计算字段:0asflag,Select语句改为:Selectcol1,col2,1asflagfromtablenamewhere.....,  当返回数据窗口painter时,您就会发现多了一个字段flag,我们就是利用这个字段保存行被选中的信息。  其次,修改各个字段的背景颜色属性,设置为:if(flag=1,RGB(255,126,0),RGB(255,255,255))  第三:在数据窗口控件中,增加对clicked事件的处理,代码如下:ifrow<1thenreturn//setredr

7、aw(false)ifthis.object.flag[row]=1then//如果该行被选中,撤销选择,否则选中该行 this.Object.flag[row]=0else this.Object.flag[row]=1endifsetredraw(true)您还可以定制本选中行的字体,文本属性等等。原理相同,不再赘述。 5将日期型字段初始化为当天的日期  使用ColumnSpecifications对话框来设置数据的初始值是一个比较好又比较通用的方法。为了将日期型字段初始化为当天的日期,只要设置初始化值为today,而不是today()即可。同样设置初始值为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。