第1章 应用开发工具概述 3
1.1 应用开发技术的发展 3
目录 3
第一篇 基础与实例篇 3
1.2 选择适宜的应用开发工具 4
1.3.1 Delphi Client/Server Suite 2.0版 5
1.3 几个先进的应用开发产品介绍 5
1.3.2 Microsoft Visual Basic 4.0企业版 8
1.3.3 Oracle Developer 2000 1.3版 10
1.3.4 PowerBuilder Enterprise for Windows 5.0版 13
2.1 什么是PowerBuilder 15
第2章 PowerBuilder简介 15
2.1.2 PowerScript语言与函数 16
2.1.1 事件驱动的应用程序 16
2.1.5 与数据库的连接性 17
2.1.4 跨平台开发 17
2.1.3 面向对象的编程 17
2.2 PowerBuilder 5.0的新特性 19
2.3 PowerBuilder 5.0产品系列 20
2.4 Powersoft的全系列产品家族 21
2.4.1 S-Designor for PowerBuilder 22
2.4.2 Optima++ 23
2.4.3 NetImpact Studio 25
2.4.4 Internet Developer Toolkit for PowerBuilder 5.0 27
3.1.1 什么是ODBC 29
3.1 与数据库管理系统的连接方式 29
第3章 PowerBuilder的安装与使用 29
3.1.2 ODBC的组成 30
3.1.3 通过通用的ODBC连接到数据库 31
3.2 PowerBuilder的安装 32
3.1.4 通过专用接口连接PowerBuilder到各种数据库 32
3.2.2 安装过程 33
3.2.1 软、硬件环境需求 33
3.3 与DBMS的连接 36
3.4.1 PowerBuilder应用程序 40
3.4 PowerBuilder环境简介 40
3.4.2 PowerBuilder界面 45
4.1 示例应用简介 50
第4章 PowerBuilder快速入门 50
4.2.1 启动PowerBuilder 54
4.2 运行PowerBuilder 54
4.2.2 使用联机帮助 55
4.3 创建数据库 57
4.2.3 使用联机文档 57
4.3.1 创建本地数据库 58
4.3.2 创建表 60
4.3.3 定义关键字 63
4.3.4 定义列的扩展属性 64
4.3.5 装入数据 72
4.3.6 浏览数据 73
4.4.1 创建示例应用对象 75
4.4 创建应用 75
4.4.2 控制Powerbuilder的工具条 78
4.4.3 为应用指定图标 81
4.4.4 为应用指定搜索路径 82
4.4.5 运行应用 83
4.5.1 创建窗口 85
4.5 创建登录窗口 85
4.5.2 增加图片控件 87
4.5.3 创建三个静态文本(StaticText)控件 89
4.5.4 创建两个单行编辑器(SingleLineEdit)控件 92
4.5.5 创建两个命令按钮 93
4.5.7 保存和预览窗口 95
4.5.6 修改窗口的tab次序 95
4.5.8 编写脚本代码 96
4.6.1 数据库连接简介 100
4.6 连接数据库 100
4.6.2 修改应用的open事件脚本 102
4.6.3 定义窗口函数 103
4.6.4 为按钮编写脚本 105
4.7.1 修改菜单 106
4.7 修改和创建菜单 106
4.6.5 运行应用 106
4.7.3 创建菜单 109
4.7.2 保存和预览修改后的菜单 109
4.7.4 保存和预览新创建的菜单 113
4.8.2 增加数据窗口控件 114
4.8.1 创建窗口 114
4.8 创建祖先窗口 114
4.8.3 定义用户事件 118
4.8.4 为用户事件编写脚本 119
4.8.5 为窗口和数据窗口控件编写脚本 121
4.8.6 为窗口连接菜单 122
4.8.7 为菜单编写脚本 123
4.9.1 利用继承创建emp窗口 124
4.9 利用继承创建“录入与更新”窗口 124
4.10 创建第一个数据窗口 127
4.9.3 运行应用 127
4.9.2 为菜单编写脚本 127
4.10.1 创建数据窗口对象 128
4.10.2 预览和保存数据窗口对象 132
4.10.3 调整数据窗口的格式 133
4.11.1 连接数据窗口与数据窗口控件 134
4.11 加入第一个数据窗口 134
4.12 创建第二个数据窗口 135
4.11.2 运行应用 135
4.12.1 创建数据窗口对象 136
4.12.2 调整数据窗口的格式 140
4.12.3 预览和保存数据窗口对象 141
4.13 加入第二个数据窗口 142
4.13.2 运行应用 143
4.13.1 增加数据窗口对象到窗口中 143
4.14.1 创建数据窗口对象 145
4.14 创建第三个数据窗口 145
4.14.2 预览和保存数据窗口对象 148
4.15.1 创建数据窗口 150
4.15 利用继承创建多条件查询窗口 150
4.15.2 创建多条件查询窗口 151
4.15.3 为窗口和控件编写脚本 153
4.16.1 创建窗口 154
4.16 创建单条件查询窗口 154
4.16.2 为窗口和控件编写脚本 155
4.16.3 为菜单编写脚本 156
4.16.4 运行应用 157
4.17.1 创建报表祖先窗口 158
4.17 创建分组报表 158
4.17.3 创建分组报表数据窗口 159
4.17.2 为窗口和控件编写脚本 159
4.17.4 创建分组报表窗口 167
4.18.1 创建交叉表报表数据窗口 168
4.18 创建交叉表报表 168
4.18.2 创建交叉表报表窗口 170
4.18.3 为菜单编写脚本 171
4.18.4 运行应用 172
4.19.1 为应用对象设置断点 173
4.19 调试程序 173
4.19.2 为“录入与更新”窗口设置断点 174
4.19.3 在调试模式下运行应用 175
4.19.5 断点执行程序 176
4.19.4 单步执行程序 176
4.20 创建可执行文件 177
4.20.1 为应用创建可执行文件 178
4.20.2 测试应用系统的运行 180
5.1.1 画板 187
5.1 PowerBuilder简介 187
第二篇 应用开发篇 187
第5章 PowerBuilder的集成开发环境 187
5.1.6 PowerBuilder环境 188
5.1.5 创建可执行应用程序 188
5.1.2 事件和脚本 188
5.1.3 函数 188
5.1.4 关于库 188
5.2.2 打开对象 190
5.2.1 打开画板或工具 190
5.2 使用画板 190
5.2.3 使用Browse按钮 191
5.2.4 各画板的控件 193
5.3 使用属性对话框 195
5.4 使用弹出式菜单 196
5.5.1 关于工具条 197
5.5 使用工具条 197
5.5.3 控制工具条的显示 198
5.5.2 下拉式工具条 198
5.5.5 定制工具条 200
5.5.4 使用鼠标移动工具条 200
5.6.2 激活窗口 203
5.6.1 打开多个窗口 203
5.6 使用PowerBuilder窗口 203
5.7 使用文件编辑器 204
5.6.5 层叠窗口 204
5.6.3 平铺窗口 204
5.6.4 铺满窗口 204
5.8 建立应用程序 205
6.1 概述 206
第6章 使用应用程序对象 206
6.2 创建新的应用程序对象 207
6.3 打开其它应用程序对象 209
6.4 使用Quick Application特性 210
6.5 查看应用程序的结构 211
6.5.1 使用应用画板工作区 212
6.5.2 显示对象 213
6.6.1 指定默认的文本属性 214
6.6 指定应用程序特性 214
6.6.2 指定库搜索路径 215
6.6.4 指定默认全局对象 216
6.6.3 指定图标 216
6.7 编写应用程序级脚本 217
7.1.2 标识符 219
7.1.1 注释行 219
第7章 PowerScript语言 219
7.1 PowerScript语言初步 219
7.1.4 特殊ASCII字符 220
7.1.3 标号 220
7.1.5 空值 221
7.1.7 代名词 222
7.1.6 保留字 222
7.1.8 续行和断句 224
7.2 数据类型 225
7.1.9 空白 225
7.2.1 标准数据类型 226
7.2.2 系统对象数据类型 228
7.3.1 变量和常量 229
7.3 说明 229
7.2.3 枚举类型 229
7.3.2 说明变量和常量 230
7.3.3 变量和常量可见范围 231
7.3.4 说明数组 232
7.3.5 引用变量 234
7.4.1 操作符 235
7.4 操作符和表达式 235
7.4.3 表达式的数据类型 236
7.4.2 操作符在表达式中的优先级 236
7.4.4 赋值与表达式 237
7.5.1 赋值语句 238
7.5 语句 238
7.5.3 CHOOSE CASE 240
7.5.2 CALL 240
7.5.5 CREATE 241
7.5.4 CONTINUE 241
7.5.6 DESTROY 242
7.5.7 DO...LOOP 243
7.5.9 FOR...NEXT 244
7.5.8 EXIT 244
7.5.12 IF...THEN 245
7.5.11 HALT 245
7.5.10 GOTO 245
7.6.1 在PowerScript中使用SQL语句 246
7.6 SQL语句 246
7.5.13 RETURN 246
7.6.4 CONNECT 248
7.6.3 COMMIT 248
7.6.2 CLOSE 248
7.6.6 DELETE 249
7.6.5 DECLARE 249
7.6.10 INSERT 250
7.6.9 FETCH 250
7.6.7 DISCONNECT 250
7.6.8 EXECUTE 250
7.6.13 SELECT 251
7.6.12 ROLLBACK 251
7.6.11 OPEN 251
7.6.15 UPDATE 252
7.6.14 SELECTBLOB 252
7.6.17 动态SQL语句的使用 253
7.6.16 UPDATEBLOB 253
7.7 对象和结构 258
7.7.1 对象 258
7.7.3 行为类似于结构体的用户对象 260
7.7.2 结构体 260
7.7.4 对象和结构赋值区别 261
7.8.1 函数和事件 262
7.8 调用函数和响应事件 262
7.8.2 PowerBuilder寻找和执行事件和函数 264
7.8.3 调用函数和事件 265
7.8.4 调用函数和事件语法 270
7.8.5 说明和调用外部函数 271
7.8.6 说明DBMS的存储过程作为远程过程调用 272
8.1 窗口概述 273
第8章 定义窗口 273
8.2.2 弹出式窗口 274
8.2.1 主窗口 274
8.2 窗口类型 274
8.3.1 打开Window画板 275
8.3 创建窗口 275
8.2.3 子窗口 275
8.2.4 响应式窗口 275
8.2.5 框架窗口 275
8.3.2 关于画板 276
8.3.3 Window画板的使用 277
8.3.4 定义窗口属性 278
8.3.5 指定窗口的基本属性 279
8.3.6 选择窗口的大小和位置 280
8.3.8 选择窗口的图标 281
8.3.7 选择窗口的鼠标指针 281
8.3.10 指定工具条属性 283
8.3.9 指定窗口的滚动特性 283
8.3.12 保存窗口 284
8.3.11 添加控件 284
8.4.1 预览窗口 285
8.4 预览窗口 285
8.5.2 关于窗口和控件的函数 286
8.5.1 关于窗口和控件的事件 286
8.4.2 打印窗口的定义 286
8.5 在窗口中编写脚本 286
8.6 运行窗口 287
8.5.5 语句举例 287
8.5.3 关于窗口和控件的属性 287
8.5.4 声明实例变量 287
8.7 继承创建窗口 288
8.8.1 PowerBuilder怎样存储窗口的定义 290
8.8 创建窗口实例 290
8.8.2 声明窗口实例 291
8.8.3 使用窗口数组 292
8.8.4 使用数组或引用变量 293
8.8.5 引用后代中的实体 294
9.2 把控件放进窗口 295
9.1 控件概述 295
第9章 使用控件 295
9.3 选择控件 296
9.4 定义控件的属性 297
9.5.1 关于默认的前缀 298
9.5 给控件命名 298
9.5.2 改变控件名称 299
9.6 改变控件上显示的文本 300
9.7 移动控件和改变控件的大小 301
9.8 复制控件 303
9.9.2 改变窗口的Tab顺序 304
9.9.1 建立默认Tab顺序 304
9.9 定义Tab顺序 304
9.10 定义加速键 305
9.11 指定控件的可访问性 306
9.12 选择颜色 307
9.13 使用3D外观 308
9.14.1 使用命令按钮 309
9.14 使用各个控件 309
9.14.2 使用PictureButton 310
9.14.3 使用单选钮 311
9.14.4 使用复选框 312
9.14.6 使用单行编辑器和多行编辑器 313
9.14.5 使用静态文本 313
9.14.7 使用EditMask 314
9.14.8 使用列表框 316
9.14.9 使用PictureListBox 317
9.14.10 使用下拉式列表框 318
9.14.12 使用图片 319
9.14.11 使用DropDownPictureListBox 319
9.14.15 使用RichTextEdit控件 320
9.14.14 使用水平滚动务(HScrollBar)和垂直滚动条(VScrollBar) 320
9.14.13 使用绘图对象 320
9.14.16 使用Tab控件 322
9.14.17 使用TreeView控件 325
9.14.18 使用ListView控件 326
10.1 继承的层次 329
第10章 使用继承 329
10.2 使用继承的对象 330
10.3.1 查看继承的脚本 331
10.3 使用继承的脚本 331
10.3.2 重载祖先脚本 332
10.3.4 调用祖先的脚本 333
10.3.3 扩展脚本 333
10.3.5 调用祖先的函数 334
11.1.1 关于菜单和菜单对象 335
11.1 菜单概述 335
第11章 使用菜单 335
11.2.1 打开Menu画板 336
11.2 建立新菜单 336
11.1.2 使用菜单 336
11.1.3 设计菜单 336
11.1.4 建立菜单 336
11.2.3 添加菜单对象 337
11.2.2 使用Menu画板 337
11.2.4 菜单对象是怎样命名的 339
11.2.7 删除菜单对象 340
11.2.6 移动菜单对象 340
11.2.5 插入菜单对象 340
11.2.10 设置Style属性 341
11.2.9 设置一般属性 341
11.2.8 定义菜单对象的外观 341
11.2.12 在菜单中创建分隔线 342
11.2.11 设置加速键和快捷键 342
11.2.13 设置图标和图象属性 343
11.2.14 保存菜单 344
11.3.2 打印菜单的定义 345
11.3.1 预览菜单 345
11.3 查看所做的工作 345
11.4.1 菜单对象事件 346
11.4 为菜单对象编写脚本 346
11.4.3 引用应用程序中的对象 347
11.4.2 使用函数和变量 347
11.5.1 使用继承的信息 348
11.5 使用继承建立菜单 348
11.5.2 在菜单中插入菜单对象 350
11.6 使用菜单 351
11.6.1 给窗口添加菜单条 352
11.6.2 显示弹出式菜单 353
12.1.1 可视用户对象 354
12.1 用户对象概述 354
第12章 使用用户对象 354
12.1.2 类用户对象 355
12.2.2 建立标准的可视用户对象 356
12.2.1 打开用户对象画板 356
12.1.3 建立用户对象 356
12.2 建立新的用户对象 356
12.2.3 建立定制的可视用户对象 358
12.2.4 建立外部可视用户对象 359
12.2.5 建立标准的类用户对象 360
12.2.7 保存用户对象 361
12.2.6 建立定制的类用户对象 361
12.3 使用继承建立用户对象 363
12.4.1 使用可视用户对象 364
12.4 使用用户对象 364
12.4.2 使用类用户对象 365
12.5 窗口和用户对象间的通讯 366
12.5.1 使用函数 368
12.5.2 使用用户事件 370
13.2 定义用户事件 373
13.1 用户事件概述 373
第13章 使用用户事件 373
13.2.2 使用定制事件 375
13.2.1 理解用户事件ID 375
13.3.3 用户事件脚本举例 376
13.3.2 触发事件 376
13.3 使用用户事件 376
13.3.1 编写脚本 376
14.1 概述 379
第14章 管理数据库 379
14.2 使用Database画板 380
14.3 建立工作日志 382
14.5 创建和删除任何SQL Anywhere数据库 383
14.4 改变数据库连接 383
14.6 使用表 385
14.6.1 打开表 386
14.6.3 改变列属性 387
14.6.2 改变表属性 387
14.6.5 使用Table画板 389
14.6.4 关闭表 389
14.6.6 创建表 390
14.6.7 修改表 392
14.6.9 指定列的扩展属性 393
14.6.8 指定表的字体 393
14.6.10 使用索引 395
14.6.11 使用主键和外部键 397
14.7.2 创建视图 401
14.7.1 打开视图 401
14.6.12 删除表 401
14.7 使用视图 401
14.7.3 显示视图的SQL语句 402
14.7.4 连接表 403
14.7.5 删除视图 404
14.9.1 打开Data Manipulation画板 405
14.9 操纵数据 405
14.8 转出表或视图的语法 405
14.9.4 排序和过滤数据 406
14.9.3 修改数据 406
14.9.2 检索数据 406
14.9.5 查看行信息 408
14.9.7 打印数据 409
14.9.6 转入数据 409
14.9.8 保存数据 410
14.10.1 打开Database Administration画板 411
14.10 管理数据库 411
14.9.9 返回Database画板工作区 411
14.10.3 执行SQL 412
14.10.2 控制数据库访问 412
15.1.1 数据窗口对象概述 414
15.1 数据窗口对象 414
第15章 数据窗口 414
15.1.2 建立数据窗口对象 416
15.1.3 选择表现风格 417
15.1.4 选择数据窗口对象中的可选项 422
15.1.5 定义数据源 423
15.1.6 生成并存储数据窗口对象 435
15.1.7 定义查询 436
15.2.1 使用工作区 438
15.2 增强数据窗口对象的功能 438
15.2.2 预览数据窗口对象 444
15.2.3 修改数据窗口对象的属性 451
15.2.4 重新组织数据窗口对象中的对象 457
15.2.5 在程序运行期间根据条件变换属性 459
15.2.6 提示输入检索准则条件 460
15.2.7 在数据窗口对象中添加对象 462
15.2.8 在数据窗口对象中存储数据 467
15.2.10 把检索出的数据存储到磁盘 468
15.2.9 只检索所需的数据 468
15.2.11 控制更新属性 469
15.3 显示数据并且使数据有效 470
15.3.1 使用显示格式 471
15.3.2 使用编辑风格 477
15.3.3 使用有效性规则 484
15.4 记录的过滤、排序和分组 489
15.3.4 维护实体性(Entities) 489
15.4.1 记录的过滤 490
15.4.2 记录的排序 491
15.4.3 记录分组 492
15.5 使用嵌套报表 498
15.5.1 使用Composite表现风格建立报表 500
15.5.2 在报表中放入嵌套报表 501
15.5.3 加工嵌套报表 504
15.5.4 在应用中使用嵌套报表 508
15.6.1 统计图概述 509
15.6 使用统计图 509
15.6.2 在数据窗口对象中使用统计图 514
15.6.3 定义统计图的属性 521
15.6.4 在窗口中使用统计图 526
15.6.5 在程序运行期间访问统计图 528
15.7.1 交叉表概述 530
15.7 使用交叉表 530
15.7.2 建立交叉表 532
15.7.3 使交叉表和数据建立联系 533
15.7.4 增强交叉表的功能 536
15.7.5 在应用程序中使用交叉表 546
16.1 什么是数据管道 549
第16章 数据管道 549
16.1.2 灌入扩展属性 550
16.1.1 定义管道 550
16.2 建立数据管道 551
16.3.1 工作区中可修改的项 553
16.3 修改数据管道的定义 553
16.3.3 根据管道操作修改数据管道 555
16.3.2 选择管道操作 555
16.3.4 管道运行的中止 558
16.3.5 灌入Blob类型的数据 559
16.3.6 改变源数据库和目的数据库 560
16.4 纠正管道错误 561
16.6 数据管道举例 562
16.5 数据管道的保存和使用 562
17.1.1 调试应用程序 563
17.1 运行和调试程序 563
第17章 应用程序的运行 563
17.1.2 运行应用程序 572
17.2.2 定义工程 575
17.2.1 概述 575
17.2 创建可执行应用 575
17.2.3 使用动态库 577
17.2.4 建立工程 578
17.2.5 分发资源 581
18.1 库概述 584
第18章 管理库 584
18.2.1 查看目录树 586
18.2 使用库 586
18.2.3 限制对库中项的显示 587
18.2.2 使用弹出式菜单 587
18.2.5 使用注释 588
18.2.4 选择库中的项 588
18.3 创建和删除库 589
18.4 复制、移动和删除项 590
18.5 浏览库中的项 592
18.7 浏览类体系 593
18.6 跳到画板中 593
18.8.1 检出和检入过程概述 594
18.8 使用检出和检入 594
18.8.3 检出项 595
18.8.2 连接版本控制系统 595
18.8.4 查看已检出项 597
18.9 优化库 598
18.8.6 清除项的检出状态 598
18.8.5 检入项 598
18.10 重新生成库的项 599
18.11 项的转入与转出 600
18.12 创建动态库 602
18.13.1 创建库中项的报表 603
18.13 为库创建报表 603
18.13.2 创建库目录的报表 604
19.1.2 MDI框架窗口 607
19.1.1 什么是MDI 607
第三篇 高级技术篇 607
第19章 开发MDI应用程序 607
19.1 MDI概述 607
19.1.4 客户区 608
19.1.3 MDI框架 608
19.2 建立MDI框架窗口 609
19.1.6 工具条 609
19.1.5 MDI子窗口 609
19.3 菜单的使用 610
19.4.2 列出所打开的Sheet 611
19.4.1 打开Sheet 611
19.4 Sheet的使用 611
19.4.4 Sheet的最大化 612
19.4.3 排列Sheet 612
19.5.1 定义菜单项的MicroHelp 613
19.5 提供MicroHelp 613
19.4.5 关闭Sheet 613
19.5.2 定义对象的MicroHelp 614
19.6.1 工具条 615
19.6 提供工具条 615
19.6.2 加入工具条的第一步(在菜单画板中操作) 618
19.6.3 加入工具条的第二步(在窗口画板中操作) 620
19.6.4 相关属性的设置 621
19.6.5 工具条的使用 622
19.7 调整客户区 624
20.1.1 术语 626
20.1 什么是标签控件 626
第20章 标签的实现 626
20.1.2 标签页 627
20.2 定制标签控件 629
20.3.1 在事件程序中的引用 630
20.3 事件程序中的标签控件 630
20.3.3 引用标签页 632
20.3.2 打开及关闭标签页 632
20.3.5 标签控件有关事件 634
20.3.4 标签页的创建 634
21.1.2 增加列表框和PictureListBox的列表项 636
21.1.1 创建列表框和PictureListBox 636
第21章 列表构造技术 636
21.1 列表框的使用 636
21.2.1 创建下拉列表框和DropDownPictureListBox 637
21.2 下拉列表框的使用 637
21.1.3 在PictureListBox中增加图象 637
21.2.4 删除PictureListBox或DropDownPictureListBox中的图象 638
21.2.3 在DropDownPictureListBox中加入图象 638
21.2.2 在下拉列表框和DropDownPictureListBox中加入列表项 638
21.2.5 实例 639
21.3.1 创建ListView 640
21.3 ListView的使用 640
21.3.2 ListView列表项的加入 641
21.3.3 向ListView中加入图象 642
21.3.5 使用报表视图 643
21.3.4 删除ListView项及图象 643
21.4.2 加入TreeView列表项 644
21.4.1 创建TreeView 644
21.4 TreeView的使用 644
21.4.3 在TreeView中加入图象 645
21.4.4 删除TreeView项和列表 646
21.4.5 利用数据窗口生成TreeView内容 647
22.1 概述 649
第22章 拖放技术 649
22.3.1 拖放事件 650
22.3 拖放事件与函数 650
22.2 拖放属性 650
22.2.1 DragAuto属性 650
22.2.2 DragIcon属性 650
22.4 识别拖动控件 651
22.3.2 拖放函数 651
23.1 为开发者提供联机帮助 652
第23章 在应用程序中提供联机帮助 652
23.2 为最终用户提供联机帮助 653
23.2.3 为Windows环境创建上下文帮助 654
23.2.2 把WinHelp API声明为一个外部函数 654
23.2.1 调用Windows帮助的两种方法 654
24.1 事务对象介绍 655
第24章 事务对象 655
24.1.1 事务对象属性 656
24.1.2 Powersoft数据库接口及相应的事务对象属性 657
24.2.1 事务的基本概念 658
24.2 事务对象的使用 658
24.2.3 设置事务对象 659
24.2.2 默认的事务对象 659
24.2.5 与数据库连接 660
24.2.4 从外部文件取值设置事务对象 660
24.2.7 为多数据库连接定义事务对象 661
24.2.6 关闭数据库连接 661
24.2.8 SQL语句的错误处理 663
24.2.9 数据库事务对象共享 664
24.3 利用事务对象调用存储过程 665
24.4 DBMS支持的存储过程特性 672
25.1.1 如何使用数据窗口对象 674
25.1 数据窗口对象与数据窗口控制的连接 674
第25章 数据窗口高级技术 674
25.2 访问数据库 676
25.1.4 在执行中改变连接的数据窗口对象 676
25.1.2 有关数据窗口名字的问题 676
25.1.3 修改数据窗口对象 676
25.2.1 为数据窗口对象设置事务对象 677
25.2.2 检索和更新数据 678
25.3 装入外部数据 680
25.4.1 数据窗口控件如何管理数据 681
25.4 在数据窗口中操纵数据 681
25.4.2 访问编辑控件中的文本 682
25.4.5 ItemError事件程序 683
25.4.4 ItemChanged事件程序 683
25.4.3 操纵编辑控件中的文本 683
25.4.7 其它数据窗口有关函数 684
25.4.6 访问数据窗口的数据项 684
25.5 存取数据窗口对象属性 685
25.7 更新数据库 686
25.6 处理数据窗口的运行错误 686
25.7.1 PowerBuilder如何更新数据库 687
25.8 创建报表 688
25.7.2 在程序中改变行和列的状态 688
25.9 生成HTML 689
25.8.2 打印报表 689
25.8.1 设计数据窗口对象 689
26.1.1 设置属性值 693
26.1 修改数据窗口对象 693
第26章 动态数据窗口 693
26.1.2 Modify语法及修改操作类型 694
26.2.1 Create函数的使用 695
26.2 创建数据窗口对象 695
26.2.2 数据窗口对象源代码(Syntax)的定义 696
26.3 提供查询功能 697
26.3.1 查询模式的工作方式 698
26.3.2 查询模式的使用方法 699
26.4 提供帮助按钮 700
26.5 重用数据窗口对象 701
27.1.2 数据存储对象的功能 702
27.1.1 数据存储对象的概念 702
第27章 数据存储 702
27.1 数据存储对象概述 702
27.1.4 SetSort和SetFilter函数 703
27.1.3 数据存储方法 703
27.3 定制数据存储对象的使用 704
27.2 数据存储对象的使用 704
27.1.5 不支持条件检索 704
27.4 在数据存储对象中存取及操纵数据 708
27.5 信息共享 709
27.6 实例 710
28.1 创建所需的对象 714
第28章 数据管道 714
28.1.1 创建管道对象 715
28.1.2 创建支撑用户对象 716
28.1.3 创建窗口 718
28.2 初始化操作 719
28.3.1 启动管道 721
28.3 启动管道操作 721
28.3.2 管道监控 722
28.3.4 向数据库提交更新操作 724
28.3.3 终止管道运行 724
28.4.1 使用管道错误数据窗口 725
28.4 处理行错误 725
28.4.2 修复错误行 726
28.5 结束操作 727
28.4.3 放弃错误行 727
29.2 客户和服务器 729
29.1 概述 729
第29章 动态数据交换 729
29.3.3 DDE服务器函数 730
29.3.2 DDE客户事件 730
29.3 DDE函数和事件 730
29.3.1 DDE客户函数 730
29.3.4 DDE服务器事件 731
30.1 PowerBuilder对OLE的支持 732
第30章 在应用程序中使用OLE 732
30.2 在窗口中创建OLE控制 733
30.3.1 设置OLE2.0控件 736
30.3 OLE2.0控制及可插入对象 736
30.3.2 链接与嵌入 738
30.3.4 即席激活方式下的菜单 739
30.3.3 即席激活和离席激活 739
30.3.5 在OLE控制中修改对象 740
30.4.1 设置OLE定制控件 743
30.4 OLE定制控件 743
30.4.2 OLE定制控件编程 744
30.5 可编程OLE对象 746
30.5.1 OLEObject对象类型 747
30.5.2 OLE自动化方案 748
30.6.1 自动化接口 751
30.6 在事件程序中使用OLE对象 751
30.6.2 自动化及Any数据类型 754
30.6.3 自动化的效率 755
30.6.4 错误处理 756
30.6.5 创建热链接 757
30.6.7 底层访问OLE对象 758
30.7.1 OLE存储的结构 759
30.7 操纵OLE的高级方法 759
30.7.3 打开及保存OLE存储 760
30.7.2 存储及流的对象类型 760
30.7.4 打开流 764
30.7.5 使用OLE存储的策略 767
第31章 在数据窗口中使用OLE 768
31.1 数据窗口对OLE的支持 768
31.2 OLE对象及OLE表现风格 769
31.2.1 在数据窗口中加入OLE对象 769
31.2.2 使用OLE表现风格 770
31.2.3 预览数据窗口 771
31.2.4 定义OLE对象数据 772
31.2.5 属性窗口中的附加设置 772
31.2.6 在事件程序中操纵OLE对象 773
31.3 在数据窗口中使用OLE列 775
31.3.1 创建一个OLE列 775
31.3.2 预览数据窗口列 778
31.3.3 在应用程序中使用OLE列 779
32.1 使用外部函数 781
32.1.1 声明外部函数 781
第32章 增加扩展处理功能 781
32.1.2 传递参数 782
32.2 发送窗口消息 783
32.3 消息对象 784
32.4 使用实用函数管理信息 785
第33章 开发多平台应用程序 787
33.1 交叉平台设计策略 787
33.2 在多平台环境下开发 788
33.2.1 在不同平台之间移动和共享文件 788
33.2.2 保存文本文件——行结束符的选用 789
33.2.3 共享INI文件中的信息 790
33.2.4 多平台配置 792
33.3 用户界面设计的相关事项 792
33.4 应用程序的界面规划 793
33.4.1 如何在窗口中放置控件 793
33.4.2 三维(3D)显示控件 794
33.4.3 字体的使用 795
33.5 窗口行为 795
33.6 菜单设计 797
33.7.2 访问数据库 798
33.7.1 鼠标触发的事件 798
33.7.3 提供应用程序帮助 798
33.7 其它方面 798
33.7.4 共享外部函数库 799
33.7.5 不同平台的特征支持 799