实例变量(Instance Variables)是对象级变量,在对象内定义,只有该对象的事件或函数才能使用该变量,在所关联的对象有被打开时创建,关闭时注销。
共享变量(Share Variables)类似实例变量,在它所在对象关闭后再次打开,变量仍然保持对象关闭时的值。在我看来与全局变量不同之处在于各自的作用域不同而已。
局部变量(Local Variables)只作用于程序段。
变量搜索的顺序为:local、shared、global、instance
2.ToolBar属性 用于快速方便生成ToolBar工具档,除了可为APP设置ToolBar外,还可为窗体设置ToolBar.
3.POWERBUILDER中的测量单位PBUs,好处是不论分辨率是多少,用PBUs设置的窗口大小在屏幕上显示都是近似的。
4.窗口的继承 使用继承方法建立新窗口,可以继承祖先窗口的样式、控件、事件、函数和脚本等,好处有两点:
#当修改了祖先窗口后,其修改将影响后代的所有窗口。
#后代继承了祖先所有脚本,因此不必重新编写,保证了在应用程序中代码的一致性
唯一的不允许操作是删除继承而来的控件。只能将其设为不可视(Visibe复选框)
有三样对象可以做继承:窗口、菜单、用户对象
5.编辑掩码框(Editmask)与单行编辑框相似,却可以自行设置输入数据的格式,如电话号码、日期等,并带微调控制功能。还有列表视图(Listview)、树视图(TreeView)、图表(Graph)都是比较爽的控件。
6.代词 this 代表正在为之编写事件处理程序的对象
Parent 指当前控件所在的父对象
ParentWindow 代表运行时菜单所在的窗口。该代词只能用于菜单事件中
Super 只在使用了继承时使用,指代该对象的父对象
Call super:clicked 父事件
super:f_cal() 父函数
7.窗体的实例 PB在保存窗体时,实际上在库中生成了以下两个实体:新的数据类型(与窗口名称相同)和新的数据类型的新的全局变量(与窗口名称相同)。注意的是通过实例变量生成的窗体是不能在相互之间引用的。
通过数组创建窗口数组 w_employee myarray[5]
则可以用:myarray[2].Hide()
myarray[4].st_count.text="3"
8.内部窗体类型window
window newarray[3]
string win[3]
int i
win[1]="w_abc1"
win[2]="w_abc2"
win[3]="w_abc3"
for i=1 to 3
open (newarray[i],win[i])
next
这就打开了三个窗口(w_abc1 w_abc2 w_abc3)实例
9.PB连接数据库的步骤是:确定连接数据库的接口(即专用接口还是ODBC),实义数据源,建立描述文件和连接数据库。
定义数据源是在ODBC数据源管理器中建立(控制面板中)
描述文件PROfile在PB的工具档中DB Profile图标
10.主键 Primary Key 能够惟一标识每一行数据的一列或若干列的集合,肯定不会有两条记录的主键值是一样的情况
外键 Foreign Key 指表中的一个或多个列与其他表中的主键建立的对应关系,利用外键连接多个表,保证数据库的参照完整性,其中对应规则(三种)的设置确何了表与表之间的数据参照完整性。当了解这项功能后,真是让人激动。
11.扩展属性
列的Display Format 、Edit Style、Validation Rules 属性设定,在表的属性窗口中只能引用而不能对其自定义。在扩展属性(view/Extended Attributes 菜单项)中将可能自定义
display format (显示格式),edit style(编辑样式)和validation rules(有效性规则)
12.扩展属性系统表 以“pbcat"前缀的表
pbcatTBL 每个表的信息,如显示字体,注释等
pbcatCOL 表中每个列的信息及其扩展属性
pbcatFMT 系统中定义的所有显示格式
pbcatRLD 系统中所有的有效性规则
pbcatEDT 所有编辑风格
13.数据窗口由放置在窗口中的数据窗口控件和数据窗口对象两部分组成。数据窗口对象是在数据画板中创建的。它保存在当前应用的库中。数据窗口控件是放置在窗口上的一个控件,是数据窗口对象的容器。
#在数据窗口画板中,如果某控件的TAB值为0,无论是按TAB键还是单击该控件,该控件都不会获得焦点。因此在实际应用中,可以把某列的TAB键设为0.从而保护该列的数据不被修改。而在窗口画板中只是按TAB键不行。
14.结构(structure)是一种将许多有关连性的变量结合在一起的集合,这些变量的数据类型,可能相同也可能不同。
在PB中提供两个阶层的结构:全域(GLOBAL)阶层和对象阶层,全域通过PB工具档上的new-object-structure建立,对象阶层只有四种对象可以建立:应用程序对象、窗口对象、菜单对象、用户对象。比如:进入窗口描绘器,选择insert-structure这就定义了一个窗口对象的结构。
15.函数或事件的调用
{对象名称}{类型}{调用类型}{调用时间}名称({参数1、参数2…})
对象名称:定义函数或事件所在的对象
类型:Function(缺省) 或Event 函数和事件
调用类型: Static(缺省) 和Dynamic 编译时查找函数和程序运行时查找函数
调用时间:Trigger(缺省) 和Post 立即执行和等程序段执行完毕后执行
16.数据的保存 数据窗口控件.update
传回值1或-1(成功或失败)如果执行成功立即对数据库做commit,失败立即做rollback
if dw_1.update() then
commit using sqlca;
else
rollback using sqlca;
messagebox(“失败”,”数据保存错误”)
endif
17.数据窗口对象中,设置检索数据的方式两种:rows as needed 和 rows to disk
rows as needed 指每次浏览数据时,只从远程数据库中检索要显示出来的数据,这样当用户翻页或单击滚动条时,pb再根据需要把新数据检索到数据窗口中,注:如设有排序,或使用了集合函数如sum() avg()等,rows as needed 设置将无效。
Rows to disk 只从远程数据库把一部份数据检索到数据窗口对象之中,而把其余数据行缓冲到磁盘的临时文件中,只在需要时调入内存。
18.如果数据库总是可以更新的话,那么当多个用户同时修改数据库中的同一条记录时,某个用户对记录的修改也许会被其他用户的修改覆盖。PB提供三种方式对数据完整性进行合保护:1.key columns 2.key and update column 3.key and modified column(推荐)
在数据画板下选择rows/update properties 菜单项来选择这三种方式.
要禁止数据窗口被更新,清除allow update复选框。
19.PB根据以下三种顺序来检索数据
1. 如果数据窗口对象本身保存有数据,pb使用这些数据,而不从数据库中检索数据
2. 如果打开了数据缓冲(默认为打开),pb使用缓冲区中的数据
3. 如果数据缓冲区没有数据或没有打开数据缓冲,PB自动从数据库中检索数据
20.设定颜色可用关键字如[black][blue][green][cyan][red][white][yellow],当某种颜色无法用名称表述时,可以用数值来表示。公式:[256*256*蓝色值+256*绿色值+红色值]