第一章 概述 1
1.1 PowerBuilder的功能特点 1
1.2 开发应用程序的步骤 2
1.3 集成开发环境 3
1.3.1 开发界面的构成 3
1.3.2 主要画笔的功能 5
1.3.3 改变画笔栏显示位置及提示 6
1.3.4 定制画笔栏 7
1.4 PowerBuilder对象 8
1.4.1 属性 8
1.4.2 事件 9
1.4.3 对象函数 9
思考题 9
第二章PowerScript编程语言 10
2.1 语言基础 10
2.1.1 断行、续行与多条语句 10
2.1.2 注释 11
2.1.3 标识符 11
2.1.4 特殊ASCII码字符 12
2.1.5 空值(NGLL) 13
2.1.6 对象、属性、函数和事件的引用方法 13
2.1.7 代词 14
2.1.8 保留字 15
2.1.9 事件处理程序的编写环境 15
2.2 数据类型与变量声明 16
2.2.1 标准数据类型 16
2.2.2 系统对象数据类型 18
2.2.3 枚举类型 19
2.2.4 变量声明 19
2.2.5 变量的作用域 21
2.3 操作符 23
2.3.1 算术操作符 23
2.3.2 关系操作符 24
2.3.3 逻辑操作符 24
2.3.4 连接操作符 25
2.3.5 操作符的优先级 25
2.4 创建与释放对象 25
2.4.1 创建对象实例 26
2.4.2 释放对象实例 26
2.4.3 收集废弃对象 27
2.5 条件语句 27
2.5.1 IF语句 27
2.5.2 CHOOSE GASE语句 28
2.6 循环语句 29
2.6.1 DO...LOOP循环 30
2.6.3 GOTO语句 31
2.6.4 EXIT(退出循环) 32
2.6.5 CONTINUE(继续循环) 32
2.6.6 循环嵌套 33
2.7 返回语句与终止程序运行 33
2.7.1 RETURN语句 33
2.7.2 HALT语句 34
2.8 嵌入式SQL 34
2.8.1 建立和断开与数据库的连接 35
2.8.2 提交与回滚事务 35
2.8.3 单行检索语句SELECT 36
2.8.4 插入语句INSERT 36
2.8.5 删除语句DELETE 37
2.8.6 修改语句UPDATE 37
2.8.7 检查SQL语句执行情况 37
2.8.8 读取多行数据 38
2.8.9 动态SQL 40
2.8.10 粘贴SQL语句 44
2.9 常用函数 49
2.9.1 消息函数MessageBox() 49
2.9.2 响铃函数Beep() 50
2.9.3 数据类型转换函数 51
2.9.4 数据类型检查函数 51
2.9.5 运行其他应用程序的Run() 52
2.9.6 设置输入焦点函数SetFocus() 52
2.9.7 事件触发和邮寄函数 53
2.9.8 颜色函数RGB() 54
2.10 创建自定义函数和结构 55
2.10.1 创建自定义全局函数 55
2.10.2 创建自定义对象函数 56
2.10.3 创建全局结构 57
2.10.4 创建对象结构 58
思考题 59
第三章 应用对象 60
3.1 应用对象和应用对象画笔 60
3.1.1 应用对象 60
3.1.2 应用库 61
3.1.3 应用对象画笔 61
3.1.4 创建新的应用对象 62
3.1.5 自动生成应用程序框架 63
3.2 设置应用对象的属性 65
3.2.1 设置缺省字体 65
3.2.2 指定库搜索路径 67
3.2.3 设置应用程序图标 67
3.2.4 指定缺省全局变量的类型 68
3.2.5 应用对象的其他属性 69
3.3 应用对象的事件 71
3.4 代码编辑器的用法 73
3.4.1 进入代码编辑器 73
3.4.2 编辑代码 74
3.4.3 粘贴函数 76
3.4.4 粘贴语句 76
3.4.5 代码编辑器的键盘操作 77
3.5 事务对象的概念与属性 77
3.5.1 事务对象的概念 77
3.5.2 创建自定义事务对象 78
3.5.3 事务对象的属性 79
3.6 应用对象创建实例 80
思考题 83
第四章 数据库 84
4.1 连接数据库 84
4.1.1 连接前的软件安装 85
4.1.2 连接到ODBG数据库 85
4.1.3 专用接口的一般连接步骤 89
4.2 数据库操作 91
4.2.1 创建SybaseSQLAnywhere数据库 91
4.2.2 删除SybaseSQLAnywhere数据库 92
4.2.3 改变当前数据库 93
4.3 简介数据库画笔 93
4.3.1 启动数据库画笔 93
4.3.2 数据库画笔的组成 94
4.4 操作数据库表 95
4.4.1 创建表 95
4.4.2 修改表 97
4.4.3 定义表的属性与主键 98
4.4.4 定义索引 100
4.4.5 定义外部键 101
4.4.6 设置列的属性 102
4.4.7 删除表、主键、外部键与索引 105
4.4.8 创建视图 107
4.5 数据浏览、修改与输出 108
4.5.1 数据操作画笔 109
4.5.2 浏览数据 109
4.5.3 插入与删除记录 110
4.5.4 卸出与装入数据 110
4.6 使用数据库维护画笔 111
4.6.1 编写和执行SQL语句 111
4.6.2 保存与读入SQL语句 111
4.7 PowerBuilder资源库 112
4.8 创建与编辑显示格式 112
4.8.1 数值型显示格式 113
4.8.2 字符串显示格式 115
4.8.3 日期显示格式 115
4.8.4 时间显示格式 116
4.9 创建编辑风格 117
4.9.1 编辑框风格(EditBox) 119
4.9.2 编辑掩码风格(EditMask) 119
4.9.3 复选框风格(CheckBox) 120
4.9.4 单选钮风格(RadioButton) 121
4.9.5 下拉列表框风格(DropDownListBox) 122
4.9.6 下拉数据窗口风格(DropDownDataWindow) 122
4.10 创建有效性规则 123
4.11 数据库创建实例 127
4.11.1 创建SybaseSQLAnywhere本地数据库 127
4.11.3 示例表的结构 128
4.11.4 定义主键 130
4.11.5 建立索引 131
4.11.6 创建“作者—著作”视图 131
4.11.7 输入数据 132
思考题 133
第五章 窗口与菜单 134
5.1 窗口概述 134
5.2 创建与修改窗口 136
5.2.1 窗口画笔概述 136
5.2.2 创建新窗口 138
5.2.3 创建继承窗口 139
5.3 窗口属性 140
5.3.1 设置窗口属性 141
5.3.2 一般属性 141
5.3.3 窗口位置及大小 142
5.3.4 鼠标指针 143
5.3.5 设置窗口图标 143
5.3.6 设置窗口滚动属性 143
5.3.7 设置窗口工具栏属性 144
5.4 保存、预览、打印窗口 145
5.4.1 保存窗口 145
5.4.2 预览窗口 146
5.4.3 运行窗口 146
5.4.4 输出窗口定义 146
5.5 窗口事件及事件处理程序 147
5.5.1 窗口事件 147
5.5.2 编写窗口事件处理程序 149
5.6 创建窗口实例 149
5.6.1 窗口存储方式 150
5.6.2 声明窗口变量 150
5.6.3 使用窗口数组 150
5.7 创建与修改菜单 151
5.7.1 菜单画笔 151
5.7.2 创建新菜单 154
5.7.3 修改菜单 154
5.8 设置菜单属性 155
5.8.1 定义菜单项的快捷键 156
5.8.2 定义菜单工具栏 157
5.8.3 设置菜单对象的一般属性 158
5.8.4 设置菜单风格 158
5.9 菜单事件及其编程 159
5.9.1 菜单事件 160
5.9.2 编写菜单事件处理程序 160
5.10 制作弹出式菜单 160
5.10.1 弹出窗口上的菜单 160
5.10.2 弹出其他菜单 161
5.11 多文档界面 161
5.11.1 概述多文档界面 161
5.11.2 建立MDI框架窗口 162
5.11.3 创建工作表 163
5.11.4 设置微帮助 164
5.11.5 设置工具栏 165
5.12 窗口高级技巧 168
5.13 菜单创建实例 169
思考题 170
第六章 控件 171
6.1 放置控件 171
6.1.1 控件概述 171
6.1.2 往窗口上放置控件 172
6.2 控件的命名 174
6.2.1 控件名的缺省前缀 174
6.2.2 修改控件名的缺省前缀 174
6.2.3 修改控件名称 175
6.3 操作控件 176
6.3.1 选择控件 176
6.3.2 移动控件 178
6.3.3 改变控件大小 179
6.3.4 删除控件 179
6.3.5 对齐控件 179
6.3.6 等距控件 180
6.3.7 等宽或等高控件 180
6.3.8 复制与粘贴控件 180
6.4 焦点与Tab次序 181
6.4.1 焦点 181
6.4.2 设置Tab次序 182
6.5设置控件常用属性 183
6.5.1 设置控件标题 183
6.5.2 定义访问键 184
6.5.3 指定控件的可访问性 185
6.6 按钮 186
6.6.1 命令按钮 186
6.6.2 图像按钮 187
6.7 文本显示与编辑 188
6.7.1 静态文本控件(StaticText) 188
6.7.2 单行编辑框 189
6.7.3 多行编辑框 190
6.7.4 掩码编辑框 191
6.7.5 超文本编辑框 193
6.8 单选钮、复选框与组框 194
6.8.1 单选钮 195
6.8.2 复选框 196
6.8.3 组框 197
6.9 列表选择 198
6.9.1 列表框 198
6.9.2 图片列表框 200
6.9.3 下拉列表框 201
6.9.4 下拉图片列表框 202
6.10 显示图像 203
6.10.1 图片框 203
6.10.2 制作动画示例 204
6.11 集成其他应用 207
6.11.1 放置OLE控件 207
6.11.2 设置OLE控件 209
6.11.3 OLE对象激活方式 211
6.11.4 使用OCX部件 212
6.12 使用树形视图控件 214
6.12.1 树形视图的属性 214
6.12.2 添加与删除列表项 215
6.12.3 树形视图控件的事件 220
6.13 使用列表视图控件 222
6.13.1 列表视图的属性 223
6.13.2 增加与删除列表项 224
6.13.3 列表视图控件的事件 228
6.14 使用标签控件 229
6.14.1 相关术语 229
6.14.2 建立标签控件 230
6.14.3 标签控件的属性 232
6.14.4 标签控件的事件 238
6.15 创建和访问控件的实例 238
思考题 241
第七章 数据窗口对象 242
7.1 创建数据窗口对象的步骤 242
7.1.1 数据窗口对象概述 242
7.1.2 创建数据窗口对象的步骤 243
7.2 定义数据源 244
7.3 数据窗口的显示风格 255
7.3.1 列表(Tabular)风格 255
7.3.2 表格风格 256
7.3.3 自由格式(Freeform) 256
7.3.4 标签(Iabel)风格 257
7.3.5 分栏(N-Up)风格 257
7.3.6 分组(Group)风格 258
7.3.7 交叉列表(Crosstab)风格 258
7.3.8 统计图(Graph)风格 258
7.3.9 OLE 2.0风格 258
7.3.10 超文本(RichText)风格 258
7.3.11 复合(Composite)风格 258
7.4 使用数据窗口画笔 259
7.4.1 数据窗口画笔工作区 259
7.4.2 调整对象 261
7.4.3 改变数据窗口的显示比例 263
7.4.4 对象的跳转次序 264
7.4.5 预览数据窗口对象 265
7.4.6 数据窗口画笔的快捷键 266
7.5 数据窗口的布局结构 267
7.5.1 区域划分 267
7.5.2 区域属性 269
7.5.3 设置样式及打印参数 269
7.6 控制列对象的显示与编辑 272
7.6.1 显示格式 272
7.6.2 编辑风格 273
7.6.3 有效性规则 274
7.7 控制数据行 274
7.7.1 记录过滤 275
7.7.2 记录排序 275
7.7.3 记录分组 276
7.7.4 让用户输入检索条件 277
7.7.5 按需提取数据 278
7.7.6 压缩重复值 279
7.8 增强数据窗口对象的功能 280
7.8.1 数据窗口的层次 280
7.8.2 增加与删除数据窗口中对象 281
7.8.3 静态文本对象 282
7.8.4 计算域 282
7.8.5 图片框 284
7.8.6 统计图 285
7.8.7 绘图对象 286
7.8.8 组框对象 287
7.8.9 嵌套报表 287
7.8.10 按钮对象 288
7.9 设置对象属性 290
7.9.1 修改对象的颜色与边框 290
7.9.2 动态修改属性 291
7.10 控制更新数据库 292
7.11 创建数据窗口对象的实例 296
思考题 301
第八章 数据窗口控件 302
8.1 数据窗口控件使用方法 302
8.1.1 运用数据窗口的一般步骤 302
8.1.2 放置数据窗口控件 303
8.1.3 连接数据窗口控件与对象 303
8.1.4 动态更换数据窗口对象 304
8.1.5 为数据窗口控件分配事务对象 305
8.1.6 检索数据 308
8.1.7 更新数据库 310
8.2 缓冲区与编辑控件 311
8.2.1 数据窗口控件的缓冲区 312
8.2.2 编辑状态标志 313
8.2.3 编辑控件 315
8.2.4 数据校验步骤 316
8.3 设置数据窗口控件的属性 317
8.5 出错处理及日志 321
8.6 输出报表 324
8.7 数据窗口的高级用法 326
8.7.1 数据窗口的属性访问方法 326
8.7.2 数据窗口画笔表达式 328
8.7.3 数据的直接访问方法 331
8.7.4 动态数据窗口 338
8.8 数据存储对象 341
8.9 创建和应用数据窗口控件的实例 343
思考题 344
第九章 用户对象与用户事件 345
9.1 用户对象分类 345
9.2 创建新用户对象 348
9.2.1 启动用户对象画笔 348
9.2.2 创建标准可视用户对象 349
9.2.3 创建定制可视用户对象 350
9.2.4 创建外部可视用户对象 350
9.2.5 创建定制类用户对象 351
9.2.6 创建标准类用户对象 352
9.3 使用用户对象 352
9.3.1 使用可视用户对象 352
9.3.2 使用类用户对象 353
9.4 窗口与用户对象间的通信 354
9.5 用户事件 354
9.5.1 定义用户事件 355
9.5.2 用户事件讨论 356
9.5.3 使用用户事件 357
9.6 创建和应用用户对象的实例 358
思考题 362
第十章 数据管道 363
10.1 数据管道的概念 363
10.2 使用数据管道画笔 364
10.2.1 源表 366
10.2.2 目的表 366
10.2.3 选择管道操作 367
10.2.4 灌入Blob类型的数据 368
10.2.5 改变源数据库和目的数据库 369
10.2.6 运行数据管道 369
10.2.7 数据管道出错处理 369
10.3 应用程序中使用数据管道 371
10.3.1 数据管道用户对象 371
10.3.2 数据管道的属性 372
10.3.3 数据管道的事件 373
10.3.4 数据管道的函数 373
10.4 运用数据管道的实例 375
思考题 380
第十一章 测试与发行应用程序 381
11.1 管理应用库 381
11.1.1 应用库的组织方式 381
11.1.2 使用库画笔 382
11.1.3 维护应用库 385
11.1.4 维护应用库中的对象 387
11.1.5 移出与移入对象 389
11.1.6 对象的检出与检入 390
11.1.7 重新生成对象 391
11.2 应用程序测试过程 392
11.3 调试器的使用 394
11.3.1 调试器工作界面 394
11.3.2 断点设置 398
11.3.3 调试过程 402
11.4 其他调试手段 404
11.4.1 运动PBDEBUG功能 404
11.4.2 追踪数据库访问 406
11.4.3 其他调试技术 408
11.5 创建可执行文件 409
11.5.1 创建可执行文件的一般步骤 409
11.5.2 创建可执行文件时要考虑的问题 412
11.6 应用程序的发行 415
11.6.1 PowerBuilder运行时库 415
11.6.2 安装数据库接口 416
11.6.3 配置ODBC数据源 416
思考题 417
附录A 数据库连接参数 418