第1章 PowerBuilder基础 1
1.1 新增功能 1
1.1.1 改进综述 1
1.1.2 PowerBuilder 8.0的主要特征 3
1.1.3 PowerBuilder 8.0的主要改进介绍 4
1.2 什么是PowerBuilder 9
1.2.1 画笔 9
1.2.2 事件和脚本 9
1.2.3 函数 10
1.2.4 库文件 10
1.2.5 创建执行文件 11
1.3 PowerBuilder工作环境 11
1.3.1 关于PowerBar 11
1.4 使用工具条 13
1.4.1 下拉工具条 13
1.4.2 控制工具条的显示 13
1.4.3 移动工具条 14
1.4.4 配置工具条 14
1.4.5 创建新的工具条 16
1.5 弹出菜单和属性窗口 16
1.5.1 弹出菜单 17
1.5.2 选择对象 17
1.5.3 属性窗口 17
1.6 使用文件编辑器 18
1.6.1 文字的查找和替换 18
1.6.2 增加或取消行注释 19
1.6.3 输入、输出文件 19
1.6.4 选中文字的拖动 20
1.7 使用在线帮助 20
1.8 理解PowerBuilder对象 20
1.8.1 属性 20
1.8.2 函数 21
1.8.3 事件 21
1.9 理解配置文件 22
1.10 配置PowerBuilder的启动参数 24
1.11 开发应用程序的步骤 25
第2章 Application对象 27
2.1 应用对象操作 27
2.1.1 创建Application 27
2.1.2 打开Application 28
2.1.3 设置库搜索路径 29
2.2 Application画板 30
2.2.1 定义变量 31
2.2.2 编写脚本 31
2.2.3 定义函数 32
2.2.4 定义事件 33
2.2.5 设置属性 33
2.2.6 编辑环境 34
2.3 显示应用对象树 34
2.4 应用对象概述 35
2.5 应用对象事件 37
2.5.1 Open事件 37
2.5.2 Close事件 39
2.5.3 Idle事件 39
2.5.4 SystemError事件 39
2.5.5 ConnectionBegin事件 45
2.5.6 ConnectionEnd事件 45
2.6 应用对象函数 45
2.7 应用对象的属性 46
2.7.1 General属性 46
2.7.2 附加属性 48
2.7.3 Toolbar属性 48
第3章 窗口和窗口画板 49
3.1 窗口画板 49
3.1.1 Window画板的组成 49
3.1.2 定制窗口画板 52
3.1.3 打开和创建窗口 54
3.1.4 保存窗口 55
3.1.5 画板中的快捷操作 56
3.2 关于窗口 56
3.2.1 窗口的组成 56
3.2.2 窗口的类型 57
3.3 设置窗口属性 58
3.3.1 开发时设置属性 59
3.3.2 运行时的属性 61
3.4 使用控件 62
3.4.1 控件简介 62
3.4.2 放置控件 63
3.4.3 选中控件 64
3.4.4 控件的对齐和大小调整 64
3.5 窗口对象事件 65
3.5.1 Activate和Deactivate事件 66
3.5.2 Open事件 66
3.5.3 Close和CloseQuery事件 66
3.5.4 Resize事件 67
3.6 窗口的常用函数 68
3.6.1 Open函数 68
3.6.2 Close函数 69
3.6.3 MessageBox函数 69
第4章 数据库 72
4.1 数据库概述 72
4.1.1 表和列 72
4.1.2 主键 72
4.1.3 外部键 73
4.1.4 索引 73
4.1.5 视图 73
4.1.6 扩展属性 73
4.2 Database画板 73
4.2.1 数据库画板概述 74
4.2.2 画板组成 75
4.2.3 画板中的操作 75
4.2.4 定制画板 79
4.3 本地数据库操作 80
4.3.1 创建本地库 80
4.3.2 删除本地库 81
4.4 数据表操作 82
4.4.1 创建数据表 82
4.4.2 定义字段 83
4.4.3 指定表和字段的扩展属性 84
4.4.4 替换表 85
4.4.5 拷贝、剪切、粘贴字段 86
4.4.6 删除表 86
4.4.7 表的其他操作 87
4.4.8 关于系统表 88
4.5 键操作 88
4.5.1 查看键 89
4.5.2 打开相关表 89
4.5.3 定义主键 89
4.5.4 定义外部键 90
4.5.5 修改、删除键 91
4.6 索引操作 92
4.6.1 创建索引 92
4.6.2 修改索引 93
4.6.3 删除索引 93
4.7 视图操作 93
4.7.1 使用视图 93
4.7.2 打开已存在视图 94
4.7.3 创建视图 94
4.7.4 联接表 94
4.7.5 显示视图的SQL语句 96
4.7.6 删除视图 96
4.7.7 输出视图的语句 96
第5章 编写脚本 97
5.1 PowerScript画板 97
5.1.1 熟悉环境 97
5.1.2 配置Script视窗 98
5.2 编写脚本 98
5.2.1 粘贴语句 98
5.2.2 添加注释 99
5.2.3 查找替换 100
5.2.4 编译脚本 101
5.3 PowerScript语言基础 102
5.3.1 注释 102
5.3.2 标识符 103
5.3.3 特殊ASCII字符 104
5.3.4 标号 104
5.3.5 NULL值 104
5.3.6 保留字 106
5.3.7 指代词 107
5.3.8 续行和断句 109
5.3.9 空白 109
5.4 数据类型和变量声明 110
5.4.1 变量的作用域 110
5.4.2 变量声明 111
5.4.3 变量的存取权限 112
5.4.4 数据类型 113
5.5 运算符和表达式 117
5.5.1 算术运算符 117
5.5.2 关系运算符 118
5.5.3 逻辑运算符 119
5.5.4 联接运算符 120
5.5.5 运算符的优先级 120
5.5.6 表达式和赋值 120
5.6 基本语句 121
5.6.1 分支语句 121
5.6.2 循环 124
5.6.3 Call语句 127
5.6.4 continue语句 127
5.6.5 exit语句 128
5.6.6 goto语句 128
5.6.7 halt语句 129
5.6.8 return语句 129
5.7 定制事件 129
5.8 函数和结构 131
5.8.1 编写函数 131
5.8.2 定义结构 132
5.9 数组 133
5.9.1 定义数组 133
5.9.2 给数组赋值 134
5.9.3 使用数组 136
5.10 在脚本中嵌入SQL语句 136
5.10.1 事务 137
5.10.2 在PB中使用SQL语句的格式 137
5.10.3 联接和断开数据库 138
5.10.4 选取单行数据 139
5.10.5 判断事务对象的返回信息 140
5.10.6 插入、删除和修改数据 141
第6章 数据窗口对象 143
6.1 数据窗口画板 143
6.1.1 设置DataWindow画板 143
6.1.2 Design视窗 144
6.1.3 Preview视窗 146
6.1.4 Control List视窗 147
6.1.5 Data视窗 148
6.1.6 Properties视窗 148
6.1.7 Column Specification视窗 148
6.2 创建数据窗口 149
6.3 数据窗口的数据源 151
6.3.1 Quick Select数据源 151
6.3.2 SQL Select数据源 152
6.3.3 Query数据源 156
6.3.4 External数据源 156
6.3.5 Stored Procedure(存储过程) 157
6.4 显示样式 158
6.4.1 Grid显示样式 158
6.4.2 Tabular显示样式 159
6.4.3 Group显示样式 159
6.4.4 Freedom显示样式 161
6.4.5 Label显示样式 162
6.4.6 N-up显示样式 162
6.4.7 CrossTab显示样式 163
6.4.8 Graph显示样式 164
6.4.9 Composite显示样式 165
6.4.10 RichText显示样式 165
6.4.11 OLE2.0显示样式 166
6.5 数据窗口对象 167
6.5.1 报表级格式 168
6.5.2 数据窗口的层次 168
6.6 数据窗口的修改属性 169
6.7 字段操作 173
6.7.1 选择编辑类型 174
6.7.2 设置字段编辑格式 174
6.7.3 重要属性设定 178
6.7.4 增加和删除字段 179
6.7.5 调整字段的显示顺序 180
6.8 计算域和计算字段 180
6.8.1 条件判断 182
6.8.2 累积 182
6.8.3 百分比 183
6.8.4 引用不同行的数据 183
6.8.5 数据行的修改状态 183
6.9 排序、过滤和分组 184
6.9.1 排序 184
6.9.2 过滤 185
6.9.3 分组 187
6.10 数据操作 188
第7章 使用控件 191
7.1 命令按钮和图形按钮 191
7.1.1 概述 191
7.1.2 常用属性 191
7.1.3 事件和脚本 192
7.1.4 典型实例 192
7.2 列表框和图形列表框 194
7.2.1 使用概述 195
7.2.2 常用属性 195
7.2.3 事件和脚本 196
7.2.4 常用函数 196
7.2.5 典型实例 200
7.3 条状控件 202
7.3.1 滚动条 202
7.3.2 轨迹条 205
7.3.3 进度条 205
7.4 文本的显示和编辑 206
7.4.1 单行编辑器 207
7.4.2 多行编辑器 209
7.4.3 屏蔽编辑器 210
7.4.4 富文本编辑器 212
7.4.5 静态文本 215
7.4.6 静态链接 215
7.5 下拉列表框和图形下拉列表框 216
7.5.1 属性 216
7.5.2 事件 217
7.5.3 函数 217
第8章 数据窗口控件 219
8.1 例述数据窗口编程 219
8.2 数据窗口控件属性 224
8.3 数据窗口事件 226
8.4 数据窗口事件综述 230
8.4.1 脚本执行效率 230
8.4.2 dwo参数的使用 231
8.5 数据缓冲区 232
8.5.1 缓冲区 232
8.5.2 应用实例 233
8.6 编辑控件 235
8.7 读取和设置数据 236
8.8 查询和排序 239
8.9 数据打印 243
8.9.1 启动打印作业 244
8.9.2 关闭打印作业 244
8.9.3 PrintDatawindow函数 244
8.9.4 Print函数 245
第9章 菜单和MDI 247
9.1 设计菜单 247
9.1.1 设计菜单项 249
9.1.2 修改菜单项的属性 249
9.2 关于菜单的编程 250
9.2.1 为“退出”菜单项编写脚本 250
9.2.2 选中某个菜单项 250
9.2.3 隐含某个菜单项 251
9.2.4 使某个菜单项失效 251
9.2.5 调整工具条的位置 251
9.2.6 修改工具条上鼠标右键弹出菜单中的内容 253
9.2.7 动态设置MicroHelp 253
9.2.8 使用右键弹出菜单 253
9.2.9 改变窗口中的菜单 254
9.2.10 设计一个通用工具条配置窗口 254
9.3 什么是MDI应用 256
9.3.1 菜单条和工具条 256
9.3.2 客户区 257
9.4 菜单和MDI 258
9.4.1 打开Sheet 258
9.4.2 获取当前Sheet 259
9.4.3 安排Sheet的布局 260
9.4.4 维护菜单 260
9.4.5 获取工具条的信息 261
9.4.6 保存和恢复工具条的设置 262
9.4.7 遍历菜单项 266
9.5 一个MDI应用实例 266
9.5.1 打开和关闭MDI时 267
9.5.2 打开文件时 272
9.5.3 w_edit的打开和关闭 275
9.5.4 窗口w_edit中的其他脚本 277
9.5.5 其他菜单项的编程 279
第10章 高级SQL语句 290
10.1 SQL语句 290
10.1.1 where子句 290
10.1.2 order by 了句 293
10.1.3 表达式 293
10.1.4 分组 296
10.2 动态SQL语句 296
10.2.1 类型一 297
10.2.2 类型二 297
10.2.3 类型三 298
10.2.4 类型四 299
10.3 高级查询 301
10.3.1 表的连接 301
10.3.2 子查询 303
10.4 游标 304
10.5 事务处理 306
第11章 窗口使用技巧 310
11.1 窗口间的协作 310
11.1.1 在打开和关闭窗口时进行数据传递 310
11.1.2 不同窗口之间的变量或函数调用 313
11.1.3 信号灯概念的使用 314
11.2 创建窗口实例 316
11.3 使用窗口属性编程 318
11.4 增强窗口显示效果 319
11.4.1 窗口最小化时设置动态图标 319
11.4.2 放置闪烁文字 320
11.4.3 提高窗口的打开速度 320
11.4.4 移动不带标题栏的窗口 321
11.4.5 闪烁窗口标题栏 321
11.4.6 给窗口添加自动滚动条功能 321
11.5 自动调整窗口 323
第12章 数据窗口使用技巧 326
12.1 标识当前行 326
12.1.1 使用SelectRow函数 326
12.1.2 使用函数SetRowFocusIndicaTor 327
12.1.3 使用CurrentRow和GetRow两个函数 328
12.1.4 改变背景或者前景 329
12.2 显示指定条件的数据 330
12.2.1 通过修改前景、背景颜色 330
12.2.2 通过修改设置位图 331
12.2.3 通过修改边框类型 331
12.2.4 通过选中标记来标识符合条件的行 332
12.3 动态数据窗口 332
12.3.1 动态创建数据窗口 332
12.3.2 动态关联数据窗口对象 336
12.3.3 获得数据窗口的SQL语句 337
12.3.4 修改数据窗口的SQL语句 339
12.4 用回车键代替Tab键 341
12.5 拷贝数据 341
12.5.1 使用GetItem()和SetItem()函数 342
12.5.2 使用剪贴板 342
12.5.3 使用结构类型的数组进行赋值 342
12.5.4 直接赋值 343
12.5.5 使用行拷贝的方法 343
12.6 灵活运用External类型数据窗口 344
12.7 数据保护 345
12.7.1 无条件修改部分字段 345
12.7.2 已有数据不允许修改,只能修改新数据 345
12.7.3 有条件修改 346
12.8 数据操作的安全性 347
12.8.1 通过弹出窗口让用户确认 347
12.8.2 设立删除数据恢复功能 347
12.8.3 恢复到打开窗口时的最初状态 349
12.8.4 窗口关闭时让用户确认对没有保存的数据如何处理 349
12.9 数据窗口用做下拉列表框 350
12.10 数据窗口用做列表框 352
12.10.1 如何选中和取消一行 352
12.10.2 如何选中多行 352
12.10.3 如何处理选中的数据 354
12.11 一个数据窗口修改多个表 354
第13章 通用查询 357
13.1 PowerBuilder仓库的构成 357
13.2 通用查询系统的分析 358
13.2.1 读取数据库中某用户的所有表 359
13.2.2 显示选中表中的所有字段 359
13.2.3 查询条件的指定 360
13.2.4 显示数据 361
13.2.5 保存用户组合的查询条件 361
13.3 界面设计 362
13.4 查询条件窗口的编程 364
13.4.1 定义实例变量 364
13.4.2 窗口的Open事件 364
13.4.3 查询条件的组合 365
13.4.4 其他功能 373
13.5 数据显示窗口的编程 374
第14章 数据窗口对象 381
14.1 数据窗口对象概述 381
14.2 获取数据窗口信息 382
14.2.1 函数Describe 382
14.2.2 对列的引用 382
14.2.3 函数Evaluate 383
14.2.4 函数LookUpDisplay 383
14.3 修改数据窗口信息 384
14.3.1 创建对象 384
14.3.2 删除对象 385
14.3.3 特性修改 385
14.4 字段和计算域的重要属性 386
14.4.1 获取字段的类型(Coltype属性) 386
14.4.2 背景属性(Background.property) 386
14.4.3 指定检索规则(Criteria.property属性) 387
14.4.4 Edit风格的字段属性(Edit.property属性) 387
14.4.5 字段的显示格式(Format属性) 388
14.4.6 设置数据窗口修改时的主键(Key属性) 389
14.4.7 字段名称(Name属性) 389
14.4.8 字段中的数据保护(Protect属性) 389
14.4.9 字段的滑动属性(SlideLeft和SlideUp) 390
14.4.10 字段的TabOrder值(TabSequence属性) 390
14.4.11 用户是否可以保存字段内容(Update属性) 390
14.4.12 字段校验(Validation和ValidationMsg属性) 391
14.4.13 计算域的属性 391
14.5 Button的重要属性 392
14.5.1 Action属性 392
14.5.2 SuppressEventProcessing属性 393
14.5.3 Text属性 393
第15章 子数据窗口 394
15.1 子数据窗口的一般用法 394
15.1.1 子数据窗口和父数据窗口的关系 394
15.1.2 获取子数据窗口的引用 395
15.1.3 保证子数据窗口中的数据更新 395
15.2 检索子数据窗口 396
15.2.1 和父数据窗口共享事务对象 397
15.2.2 检索子数据窗口的数据 397
15.2.3 使用带参数检索 398
15.3 共享子数据窗口 398
15.4 子数据窗口的灵活运用 399
第16章 大文本对象的处理 401
16.1 Blob对象处理方法 401
16.2 使用OLE处理Blob对象 402
16.3 一个图像处理的实例 403
第17章 数据管道 407
17.1 数据管道 407
17.1.1 数据管道对象 407
17.1.2 数据管道画板 408
17.2 管道用户对象 412
17.2.1 管道属性 412
17.2.2 管道事件 414
17.2.3 管道方法 414
17.3 运行数据管道 416
17.4 在程序中执行管道 417
第18章 高级控件 422
18.1 图形列表框和下拉图形列表框 422
18.1.1 快速入门 422
18.1.2 典型编程 423
18.1.3 相关属性 424
18.2 Tab控件 424
18.2.1 快速入门 425
18.2.2 典型编程 425
18.2.3 标签属性 426
18.2.4 标签控件的事件 428
18.3 ListView控件 428
18.3.1 控件显示样式 428
18.3.2 快速入门 429
18.3.3 典型编程 430
18.3.4 属性 432
18.3.5 函数 433
18.3.6 事件 436
18.4 TreeView控件 437
18.4.1 快速入门 438
18.4.2 典型编程 438
18.4.3 属性 440
18.4.4 函数 441
18.4.5 事件 443
18.5 图形控件的使用 444
18.5.1 基础知识 444
18.5.2 图形外观 445
18.5.3 快速入门 447
18.5.4 属性 448
18.5.5 开发环境 449
18.5.6 Graph控件函数 454
18.5.7 数据窗口中的Graph控件 458
18.5.8 应用实例 459
第19章 PFC编程 463
19.1 PFC概述 463
19.1.1 理解PFC 463
19.1.2 PFC的构成 464
19.1.3 PFC的体系结构 465
19.2 PFC编程基础 466
19.2.1 设置Application管理 466
19.2.2 创建应用 469
19.2.3 使用属性对象 470
19.2.4 使用PFC常量 470
19.2.5 消息路由 471
19.2.6 PFC的事务管理 471
19.2.7 调用父函数和事件 472
19.2.8 为应用添加在线帮助 473
19.2.9 安装PFC的最新版本 473
19.3 Application服务 473
19.3.1 建立Application Manager 474
19.3.2 Application Manager服务 475
19.3.3 标准类用户对象 477
19.4 菜单 477
19.5 窗口和窗口服务 478
19.5.1 基窗口服务 479
19.5.2 pfc_w_master 479
19.5.3 其他窗口服务 481
19.6 数据窗口服务 483
19.6.1 Sort服务 483
19.6.2 查找和替换服务 484
19.6.3 DropDown Search服务 484
19.6.4 Required Column服务 485
19.6.5 Linkage服务 485
19.6.6 MultiTable Update服务 487
19.6.7 Row Management服务 487
19.7 可视化控件 488
19.7.1 标准可视用户对象的基本函数 489
19.7.2 数据窗口控件u_dw 491
第20章 PB编码规范 494
20.1 综述 494
20.1.1 编程对象的分类 494
20.1.2 编程对象的组织 494
20.2 团队开发 495
20.3 版本说明 495
20.4 对象命名规范 496
20.4.1 命名约定 496
20.4.2 具体命名规则 496
20.5 变量命名规范 499
20.5.1 变量类型约定 500
20.5.2 变量范围命名约定 500
20.6 编程规范 501
20.6.1 书写格式 501
20.6.2 流控制 501
20.6.3 注释及格式要求 501
20.6.4 Powerbuilder脚本编程规范 504
20.7 控件编程规范 507
20.7.1 公共部分 507
20.7.2 控件细则 507
20.8 用户反馈 510
20.8.1 使用反馈的场合 511
20.8.2 提供反馈的几种技术手段 511
20.9 提高程序的健壮性 512
20.9.1 安全的应用软件 512
20.9.2 什么是安全的应用 512
20.9.3 使用数据窗口中应注意的问题 512
20.10 文档标准 514
20.10.1 注释 514
20.10.2 联机帮助 515
20.11 错误处理标准 515
20.12 其他 515