目录 1
译者序 1
前言 1
第一部分 了解PowerBuilder 1
第1章 PowerBuilder 6.0的新功能 1
1.1 增强功能综述 1
1.2 Internet 1
1.3 分布式计算 1
1.4 编程效率 2
1.5 国际化 2
1.6 交叉平台支持 2
1.9 数据库连接性 3
1.8 DataWindow 3
1.7 PowerScript语言 3
1.10 OLE增强 4
1.11 运行时部署 4
1.12 组件工厂(Component Factory) 4
1.13 Component Gallery 5
1.14 小结 5
第2章 数据库管理系统 6
2.1 IBM数据库 7
2.2 Informix 7
2.3 Microsoft SQL Server 8
2.4 Oracle 10
2.5 Sybase System 10和11 12
2.6.1 将PowerBuilder连接到SQL 14
Anywhere 14
2.6 Sybase SQL Anywhere 14
2.6.2 其他ODBC数据源 15
2.7 使用数据库配置对话窗口 16
2.8 小结 17
第3章 SQL和PowerBuilder 18
3.1 SQL 18
3.1.1 了解查询 18
3.1.2 了解NLL 20
3.1.3 SELECT语句 21
3.1.4 INSERT语句 25
3.1.5 UPDATE语句 26
3.1.6 DELETE语句 27
3.1.7 好的SQL做法 27
3.2 PowerBuilder内的SQL 28
3.2.1 事务处理对象 29
3.2.2 逻辑工作单元 31
3.2.3 检查SQL失败 31
3.2.4 DECLARE和FETCH 32
3.2.5 动态SQL 34
3.2.6 粘贴SQL语句 39
3.2.7 游标绘制 45
3.3 高级概念 49
3.3.1 重访逻辑工作单元 49
3.3.2 使用存储过程 50
3.3.3 优化查询 52
3.3.4 有用的查询 54
3.3.5 数据类型选择 55
3.3.6 主键标生成 56
3.4 PowerBuilder中SQL的故障检测 57
3.5.1 旋转数据 59
3.5 高级SQL 59
3.5.2 分层扩展 60
3.5.3 通配符表 61
3.5.4 伪IF 62
3.6 小结 63
第4章 数据库和Database画板 64
4.1 数据库对象 64
4.1.1 表 64
4.1.2 索引 64
4.2.1 数据库配置文件 65
4.2.2 使用数据库对象 65
4.2 使用Database画板 65
4.1.3 视图 65
4.3 Table画板 66
4.3.1 表属性 67
4.3.2 列属性 71
4.4 创建视图 72
4.5 删除对象 72
4.6 登录SQL 72
4.7 Data Manipulation画板 73
4.8 Database Administration画板 74
4.9 Database画板选项 75
4.10 Powersoft仓库 76
4.11 显示、编辑和验证数据 77
4.11.1 编辑样式 78
4.11.2 创建和维护显示格式 83
4.11.3 有效性验证规则 86
4.12 小结 88
第5章 DataWindow画板 89
5.1 DataWindow对象 89
5.2 创建DataWindow对象 90
5.2.1 DataWindow的数据源 91
5.2.2 DataWindow表现样式 97
5.2.3 样本DataWindow 108
5.2.4 预览DataWindow 112
5.2.5 大小、对齐与间距 113
5.2.6 显示格式、编辑样式和有效性验证规则 115
5.2.7 增加和删除列 118
5.2.8 Tab次序 119
5.2.9 分组 120
5.2.10 压缩重复的数值 122
5.2.11 滑动列 123
5.3 DataWindow的增强功能 124
5.3.1 静态文本对象 124
5.3.2 计算列 125
5.3.3 图片 127
5.3.4 层次 128
5.3.5 图表 129
5.3.6 绘图对象 130
5.3.7 GroupBox对象 130
5.3.8 嵌套报表 131
5.3.9 OLE对象 133
5.3.10 按钮对象 133
5.4 对象特性 135
5.5 Column Specifications 136
5.6 行的操纵 137
5.6.1 排序 137
5.6.2 过滤 138
5.6.3 导入和导出数据 139
5.6.4 提示标准 139
5.6.5 按需检索行 141
5.7 更新特性 141
5.7.1 Key Columns 142
5.7.2 Key and Updateable Columns 143
5.7.3 Key and Modified Columns 143
5.7.4 时间标记 144
5.7.5 键修改 144
5.8 打印 144
5.9 小结 146
第6章 PowerScript环境 147
6.1 PowerScript画板 147
6.1.1 现在的位置 147
6.1.2 PowerScript属性表 148
6.1.3 Script画板栏 150
6.1.4 编译脚本 155
6.1.5 PowerScript画板的菜单结构 156
6.1.6 上下文相关的帮助 161
6.1.7 键盘命令参考 161
6.2 Function画板 162
6.2.1 函数与子例程 162
6.2.2 访问特权 162
6.2.3 变元 162
6.2.5 全局函数 163
6.2.4 返回值 163
6.2.6 对象层函数 164
6.3 Structure画板 165
6.3.1 全局结构 165
6.3.2 对象层结构 165
6.4 小结 166
第7章 PowerScript语言 167
7.1 对象 167
7.1.1 属性 167
7.2 PowerScript的基本概念 167
7.2.1 标识符 167
7.2.2 标签 168
7.2.3 运算符 169
7.2.4 ASCII字符 171
7.2.5 连续字符串 172
7.2.6 标准数据类型 172
7.2.7 字符串和字符 173
7.2.8 动态变量赋值 173
7.2.9 数组 174
7.2.10 NULL值 177
7.3 类和对象 177
7.3.1 创建和删除类 178
7.3.2 垃圾收集 180
7.3.3 使用对象指针 180
7.3.4 类和实例池 183
7.4 变量 185
7.4.1 对象访问层 185
7.4.2 变量作用域 186
7.4.4 实例变量 187
7.4.5 共享变量 187
7.4.6 局部变量 187
7.4.3 全局变量 187
7.4.7 优先级顺序 188
7.4.8 控制变量访问 188
7.5 常量 189
7.6 函数 190
7.6.1 IsArabic()和IsHebrew() 190
7.6.2 GetParent() 190
7.6.3 Reverse() 191
7.6.4 函数搜索链 191
7.7 Message对象 192
7.8.1 TriggerEvent() 193
7.8 事件 193
7.8.2 PostEvent() 194
7.8.3 其它调用方法 195
7.8.4 Send()系统函数 198
7.8.5 Post()系统函数 198
7.8.6 访问祖先事件返回值 198
7.9 代词 199
7.9.1 This 199
7.9.2 Parent 200
7.9.3 ParentWindow 200
7.9.4 Super 201
7.10 语句 201
7.10.1 Choose...Case 201
7.12 PowerBuilder单位 202
7.10.2 HALT和Return 202
7.11 脚本的位置 202
7.12.1 UnitsToPixels() 203
7.12.2 PixelsToUnits() 203
7.13 文件函数 203
7.13.1 文件访问模式 203
7.13.2 打开一个文件 203
7.13.3 关闭一个打开的文件 204
7.13.4 从文件中读 205
7.13.5 向一个文件写 205
7.13.6 使用Windows对话框 206
7.13.7 检查文件是否存在 207
7.13.10 在文件内定位 208
7.13.9 查看一个文件的长度 208
7.13.8 删除一个文件 208
7.14 Error对象 209
7.15 小结 212
第8章 Library画板 213
8.1 库的放置 213
8.2 源代码管理 214
8.3 库准则 215
8.4 使用Library画板 215
8.4.1 库维护 219
8.4.2 维护项目 220
8.4.3 打印 224
8.4.4 源代码管理 225
8.4.5 创建动态库 228
8.4.6 应用程序的迁移 229
8.5 PowerScript 230
8.6 小结 232
第9章 应用程序对象和Application 233
画板 233
9.1 什么是应用程序对象 233
9.2 Application画板基础 233
9.3 应用程序对象的组成部分 237
9.3.1 设置缺省字体 237
9.3.2 应用程序图标 238
9.3.3 缺省的全局变量 238
9.3.4 库搜索路径 238
9.3.5 全局变量和全局函数 239
9.5.2 DDETimeOut 240
9.5.3 DWMessageTitle 240
9.4 应用程序对象树 240
9.5.1 AppName和DisplayName 240
9.5 应用程序对象属性 240
9.5.4 MicroHelpDefault 241
9.5.5 RightToLeft 241
9.5.6 ToolbarFrameTitle 241
9.5.7 ToolbarPopMenuText 241
9.5.8 ToolbarSheetTitle 241
9.5.9 ToolbarText和ToolbarTips 241
9.5.10 ToolbarUserControl 241
9.6 应用程序对象事件 241
9.6.2 Close事件 242
9.6.3 Idle事件 242
9.6.1 Open事件 242
9.6.4 SystemError事件 243
9.6.5 ConnectionBegin事件 243
9.6.6 ConnectionEnd事件 243
9.7 应用程序对象方法 243
9.7.1 动态库列表 243
9.8 小结 245
第10章 窗口和Window画板 246
10.1 应用程序的样式 246
10.2 模式,无模式和非模式窗口 246
10.3 窗口的类型 246
10.3.1 主窗口(Main Windows) 247
10.3.2 弹出式窗口 247
10.3.4 响应窗口 249
10.3.3 子窗口 249
10.3.5 MDI框架 250
10.4 窗口属性 258
10.5 窗口事件 259
10.6 PowerScript的窗口函数 261
10.6.1 打开和关闭窗口 261
10.6.2 向窗口传递参数 263
10.6.3 其他的参数机制 265
10.6.4 打印窗口 265
10.7 Window画板 266
10.7.1 访问属性 267
10.7.2 操纵控件 270
10.7.3 测试窗口 271
10.8.2 标签值 272
10.8.1 控件名字 272
10.8 控件 272
10.9 窗口操纵技术 275
10.9.1 移动一个不带标题栏的窗口 275
10.9.2 在工作表中滚动 275
10.9.3 绘图问题 277
10.10 窗口中的面向对象 278
10.10.1 封装 278
10.10.2 继承 278
10.10.3 多态性 278
10.11 小结 278
第11章 高级控件 279
11.1 Tab控件 279
11.1.1 创建标签控件 279
11.1.3 为标签控件编写脚本 283
11.1.2 标签控件准则 283
11.2 图片列表框和下拉图片列表框 285
控件 285
11.3 ListView控件 286
11.3.1 ListView属性 288
11.3.2 ListView函数 289
11.3.3 制作ListView控件 291
11.3.4 ListView事件 293
11.4 TreeView控件 294
11.4.1 TreeView属性 294
11.4.2 TreeViewItem数据类型 295
11.4.3 TreeView函数 296
11.4.4 TreeView事件 299
11.5.1 Rich Text Edit属性 300
11.5 Rich Text Edit控件 300
11.5.2 Rich Text Edit函数 302
11.5.3 Rich Text Edit事件 304
11.6 运行时的高级控件 305
11.7 小结 309
第12章 菜单和Menu画板 310
12.1 菜单的基础知识 310
12.1.1 菜单类型 310
12.1.2 菜单项 311
12.2 菜单约定和规则 312
12.3 菜单画板 312
12.4.1 打开弹出式菜单 319
12.4.2 菜单属性 319
12.4 菜单特有的PowerScript 319
12.4.3 ParentWindow代词 320
12.4.4 菜单事件 320
12.4.5 访问菜单项 321
12.4.6 菜单函数和结构 321
12.5 菜单继承 321
12.6 菜单和MDI 321
12.6.1 工具栏与PowerTips 323
12.6.2 控制工具栏 326
12.7 使用菜单的技巧 329
12.7.1 实现编辑菜单 329
12.7.2 维护编辑菜单 331
12.7.3 访问打开的工作表的菜单 332
12.8 菜单和OLE 334
12.9 小结 335
第13章 User Object画板 336
13.1 为什么使用用户对象 336
13.2 用户对象的类型 337
13.2.1 可视用户对象 337
13.2.2 类用户对象 338
13.3 使用User Object画板 340
13.3.1 创建一个标准可视用户对象 341
13.3.2 创建一个定制的可视用户 344
对象 344
13.3.3 创建外部可视用户对象 346
13.3.4 VBX可视用户对象 347
13.3.5 创建一个定制的类用户对象 348
13.3.6 创建一个标准类用户对象 351
13.3.7 创建C++类用户对象 356
13.4 小结 360
第二部分 DataWindows编程 361
第14章 DataWindow脚本编制 361
14.1 DataWindow控件 361
14.1.1 缓冲区 361
14.1.2 访问数据 364
14.1.3 编辑控件 369
14.1.4 行的增加与删除 374
14.1.5 数据保存 375
14.1.6 在Primary缓冲区里滚动 378
14.1.7 改变当前的编辑焦点 379
14.1.8 用鼠标来选择 381
14.2.1 ButtonClicked事件 384
14.2 DataWindow事件 384
14.2.2 ButtonClicking事件 385
14.2.3 RowFocusChanging事件 385
14.2.4 ItemChanged事件 385
14.2.5 ItemError事件 386
14.2.6 SQLPreview Event 387
14.2.7 DBError事件 388
14.2.8 Error事件 389
14.3 DataWindow函数 390
14.3.1 与数据库相关的函数 390
14.3.2 信息函数 395
14.3.3 修改函数 399
14.4 DataWindow的性能 402
14.5 小结 403
第15章 高级DataWindow技术Ⅰ 404
15.1 DataWindow对象 404
15.2 寻找DataWindow信息:Describe() 405
15.2.1 运算表达式 406
15.2.2 从代码表获得显示值 407
15.3 修改DataWindow信息:Modify() 407
15.3.1 使用Modify()创建对象 407
15.3.2 使用Modify()删除对象 408
15.3.3 特性修改 409
15.3.4 在表达式中引用相关的行 411
15.4 过滤数据 411
15.5 排序数据 412
15.6 DataWindow SQL代码 413
15.6.1 获得DataWindow SQL代码 413
15.6.2 修改DataWindow SQL代码 414
15.6.3 DataWindow SQL属性 415
15.7 切换DataWindow 419
15.8 动态地创建数据窗口 420
15.8.1 使用导出语法 420
15.8.2 来自SQL代码的语法 421
15.9 共享DataWindow 423
15.9.1 DataStore对象 424
15.10 小结 425
第16章 高级DataWindow技术Ⅱ 426
16.1 在DataWindow内寻找数据 426
16.1.1 Find()函数 426
16.1.2 数据搜索窗口 427
查询 433
16.1.3 下拉式DataWindow的滚动 433
16.1.4 自动滚动的DataWindow拖放 435
16.1.5 要求的域 436
16.1.6 组的变化 437
16.2 打印DataWindow 438
16.2.1 打印光标 438
16.2.2 打印区和边空 439
16.2.3 启动打印作业 439
16.2.4 关闭打印作业 439
16.2.5 PrintDataWindow()函数 439
16.2.6 Print函数 440
16.2.7 DataWindow Print事件 442
16.2.8 建立DataWindow的Print Preview对话框 442
16.2.9 建立DataWindow的Print Zoom对话框 448
16.3 拷贝和移动数据 451
16.4 下拉式DataWindow技术 453
16.4.1 同步化列值 454
16.4.2 问题和解决 454
16.5 主/从关系 455
16.5.1 保持从DataWindow的同步 456
16.5.2 禁止从DataWindow滚动 456
16.5.3 主/从管理器 457
16.6 小结 458
第三部分 设计部署 459
第17章 应用程序开发和 459
PowerBuilder 459
17.1 客户机/服务器概述 459
17.1.1 服务器 459
17.1.3 网络 460
17.1.2 客户机 460
17.2 为什么要使用客户机/服务器系统 461
17.3 实现客户机/服务器系统 461
17.4 客户机/服务器实例剖析 463
17.4.1 实例剖析1:健康护理公司迁到客户机/服务器 463
17.4.2 实例2剖析:某个全球500家最大公司之一的制造业公司对客户机/服务器的利用 464
17.4.3 实例剖析结论 466
17.5 作为一种客户机/服务器工具的PowerBuilder 466
17.5.1 为什么使用PowerBuilder 466
17.6 小结 467
第18章 分析、设计与实现 468
18.1 应用程序开发方法 468
18.1.1 自顶向下的开发方法 469
18.1.2 原型方法 470
18.1.3 面向对象的分析和设计 471
18.2 分析 472
18.2.1 数据分析 472
18.3 数据库设计 474
18.3.1 规范化 475
18.3.2 非规范化 477
18.3.3 确保数据完整性 478
18.3.4 创建触发器、存储过程和索引 478
18.3.5 数据库设计的文档化 479
18.4 PowerBuilder编程 479
18.4.1 利用快速应用程序开发 479
18.4.2 面向对象编程 480
18.4.3 HOW学习版 481
18.4.4 将类别与PowerBuilder功能进行匹配 482
18.4.5 确保应用程序安全性 484
18.4.6 启动项目 484
18.5 标准和命名约定 485
18.5.1 Powersoft约定 485
18.5.2 可选的项目约定 488
18.5.3 控件名字 491
18.5.4 其他标准 492
18.6 小结 493
第19章 文档与联机帮助 494
19.1 系统文档 494
19.1.2 u_ddlb-from-database 495
19.7.1 u_ddlb 495
19.1.3 w_import 496
19.2 用户文档 498
19.2.1 概况 498
19.2.2 系统安装 498
19.2.3 详细指南 499
19.2.4 问题的解决方案 499
19.3 联机帮助 499
19.3.1 MicroHelp 499
19.3.2 窗口的帮助页面 500
19.3.3 DataWindow帮助的特殊处理 506
19.3.4 为开发人员的文档 506
19.4 Intranet帮助 507
19.5 小结 508
第20章 应用程序的实现、创建和 509
分配 509
20.1 创建各组件 509
20.1.1 可执行文件 509
20.1.2 创建一个资源文件 510
20.1.3 创建动态库 511
20.1.4 组件工厂 512
20.1.5 Project画板 512
20.1.6 其他组件 519
20.2 库的分布 519
20.3 EXE文件与动态库文件的性能 519
20.4 机器代码与原生代码的效率 520
20.5 访问可执行文件的命令行参数 521
20.7 应用程序的执行管理 522
20.6 应用程序的布置 522
20.8 分配 523
20.8.1 安装PowerBuilder运行时 523
工具包 523
20.8.2 安装数据库接口 523
20.8.3 配置ODBC数据源 523
20.8.4 特殊的网络驱动器 523
20.8.5 更改操作系统 524
20.8.6 安装应用程序 524
20.9 实际的PoweiBuilder配置文件 524
20.9.1 PowerBuilder运行时文件 524
20.9.2 PowerBuilder数据库接口文件 526
20.9.3 Microsoft ODBC驱动器文件 526
20.10 InstallShield 527
20.9.4 OLE系统文件 527
20.11 Powersoft的安装工具生成器 530
20.12 应用程序的安装规则 530
20.13 小结 531
第21章 测试和调试 532
21.1 测试过程 532
21.1.1 测试的目的 532
21.1.2 开始测试 532
21.1.3 单元测试 533
21.1.4 系统测试 533
21.1.5 集成测试 534
21.1.6 容量测试 534
21.3.1 调试器 535
21.3 测试工具和技术 535
21.2 确定问题区域 535
21.1.7 用户测试 535
21.3.2 PBDEBUG 548
21.3.3 数据库跟踪 551
21.4 其他的PowerBuilder测试技术 551
21.4.1 内嵌SOL 551
21.4.2 SQLPreview事件 552
21.4.3 DBError事件 552
21.4.4 GetItemStatus()函数 552
21.4.5 将消息显示到屏幕上 552
21.4.6 MessageBox()函数 552
21.5 SQA TeamTest 553
21.6 其他的第三方工具 553
21.4.7 Beep()函数 553
21.7 小结 554
第22章 应用程序的维护与升级 555
22.1 组管理 555
22.2 发布管理 555
22.3 版本控制 556
22.3.1 PowerBuilder的版本控制 557
22.3.2 版本控制接口 559
22.3.3 ObjectCycle2.0 560
22.3.4 ENDEVOR接口 568
22.3.5 SE/Open 568
22.3.6 PVCS Version Manager 568
22.4 实现应用程序的升级 569
22.4.4 第三方工具 570
22.4.3 应用程序自动检测 570
22.4.5 PBSync 570
22.4.2 由用户人工升级 570
22.4.1 登录时自动升级 570
22.5 PowerBuilder自身的升级 573
22.6 小结 574
第23章 配置与调整 575
23.1 服务器 575
23.2 数据库 575
23.3 网络 576
23.4 人为因素 576
23.5 在开发过程之前 577
23.6 管理PowerBuilder库 577
23.6.1 库规则 577
23.7.1 PowerScript 578
23.7 开发过程 578
23.6.2 配置客户机 578
23.7.2 事件的用法 584
23.7.3 面向对象编程 585
23.8 DataWindow 587
23.8.1 调整DataWindow 588
23.8.2 数据检索 588
23.8.3 其他DataWindow事件 591
23.9 用户界面 592
23.10 应用程序配置 592
23.10.1 分析跟踪信息 593
23.10.2 定时器类型 593
23.10.3 跟踪函数 594
23.10.4 配置对象和函数 596
23.10.5 建模函数 599
23.11 小结 601
24.1 PowerBuilder平台 602
24.1.1 Windows 3.x 602
第24章 交叉平台PowerBuilder 602
24.1.2 Windows NT 603
24.1.3 Windows 95 603
24.1.4 Apple Macintosh 604
24.1.5 UNIX Motif 605
24.2 国际化 605
24.3 建立交叉平台应用程序 606
24.3.1 字体规格 606
24.3.2 环境对象 607
24.3.3 系统Registry 611
24.4 小结 613
25.1 新观念 615
25.2 类库 615
第四部分 面向对象的设计和开发 615
第25章 框架包和类库 615
25.3 框架包 616
25.4 混合(Hybrids) 616
25.5 建立框架包 617
25.5.1 类 617
25.5.2 抽象化(Abstraction) 618
25.5.3 多态性(Polymorphism) 618
25.5.4 封装(Encapsulation) 619
25.5.5 继承(Inheritance) 619
25.5.6 对象关系 622
25.5.7 用于实际中 622
25.5.9 对象耦合(Object Coupling) 623
25.5.8 隔离层(Insulation Layers) 623
25.5.10 在框架包内加入对象 626
25.5.11 维护框架包 627
25.5.12 其他情况 627
25.6 商业产品 628
25.6.1 CornerStone 628
25.6.2 ObjectStart 628
25.6.3 PowerBase 628
25.6.4 PowerClass 628
25.6.5 PowerTool 629
25.6.6 PowerBuilder基本类库 629
25.7 小结 630
26.1 PFC组件 631
26.1.1 PFC库 631
第26章 PowerBuilder基类(PFC) 631
26.1.2 命名约定 632
26.1.3 定制类用户对象 632
26.2 PFC体系结构 632
26.3 应用程序服务 634
26.3.1 建立Application Manager(应用程序管理器) 635
26.3.2 Application Manager服务 636
26.3.3 标准类用户对象 638
26.4 菜单 638
26.4.1 菜单消息路由器 639
26.5 窗口和窗口服务 639
26.5.1 基窗口服务 640
26.5.2 pfc_w-master 640
26.5.3 其他窗口服务 641
26.6 u_dw和Data Window服务 643
26.6.1 Sort服务 644
26.6.2 查找和替换服务 645
26.6.3 Drop-Down Search服务 645
26.6.4 Required Column服务 646
26.6.5 Linkage服务 646
26.6.6 Multitable Update服务 647
26.7 标准可视用户对象 647
26.8 Utility服务 648
26.9 添加服务 648
26.10 扩展PFC 648
26.11 小结 649
27.1 在运行时创建用户对象 650
27.1.1 OpenUserObject()函数 650
第27章 创建用户对象 650
27.1.2 OpenUserObjectWithParm()函数 651
27.1.3 CloseUserObject()函数 651
27.2 动态用户对象示例:MDI状态条 652
27.2.1 状态用户对象 652
27.2.2 框架寄生窗口 653
27.3 Transaction类对象 660
27.3.1 Transaction类事件 661
27.3.2 Transaction类方法 661
27.3.3 具体的Transaction类:SQLServer 664
27.4 应用程序类对象 668
27.4.1 应用程序范围内的功能 672
27.4.2 使用应用程序类对象 675
27.5 消息调度器 676
27.6 标准DataWindow对象 680
27.6 小结 687
第五部分 应用程序分配和Internet 689
第28章 分布式处理和应用程序 689
分配 689
28.1 术语的定义 689
28.2 开放式系统 690
28.2.1 CORBA 691
28.2.2 DCOM 691
28.2.3 分布式计算环境 691
28.2.4 分布式文件系统 692
28.2.5 目录服务 692
28.3 分布式系统 693
28.4 客户机/服务器结构 693
28.2.7 线程服务 693
28.2.6 远程过程调用 693
28.4.1 客户机/服务器计算的优点 694
28.4.2 客户机/服务器计算存在的 694
问题 694
28.5 N-级结构 694
28.5.1 分级结构的优点 695
28.5.2 级结构的问题 696
28.6 事务处理监控程序 696
28.7 什么是远程过程调用 697
28.8 应用程序的分配 697
28.9 市场工具 698
28.9.2 来自Transarc的EncinaBuilder 699
28.9.1 DAZEL公司的Dazel 699
28.9.3 来自OEC的Encompass 700
28.9.4 NobleNet公司的EZ-RPC 700
28.9.5 Mitem公司的MitemView 701
28.9.6 Greenbrier&Russel公司的RPCpainter 701
28.9.7 Gradient技术的Visual-DCE 702
28.10 分布式PowerBuilder 703
28.11 小结 703
第29章 开发分布式PowerBuilder 704
应用程序 704
29.1 Distributed PowerBuilder基础知识 704
29.2 Distributed PowerBuilder的新特征 707
29.2.1 使用共享对象 708
29.2.3 将消息推向服务器 709
29.2.2 异步函数调用 709
29.3 分布式应用程序 710
29.3.1 服务器应用程序 710
29.3.2 事务对象 715
29.3.3 客户机应用程序 716
29.4 平台和驱动程序要求 717
29.5 调试分布式PowerBuilder 718
29.5.1 “Local”驱动程序 718
29.5.2 错误处理 718
29.5.3 跟踪选项 719
29.6 小结 720
第30章 PowerBuilder和Internet 721
30.1 Internet和Intranets 721
30.1.1 WWW 721
30.1.3 基于网络的应用程序 722
30.1.2 FTP 722
30.1.4 Java 723
30.2 PowerBuilder特征 723
30.2.1 Internet Developer Toolkit(Internet开发人员工具包) 723
30.2.2 插件和ActiveX 723
30.2.2 生成DataWindow HTML 728
30.2.3 上下文信息 731
30.2.4 可定制的Web跳转 733
30.3 小结 735
31.1 Web.PB 736
31.1.1 对象类型 736
31.1.2 对象方法 736
应用程序 736
第31章 用PowerBuilder开发Internet 736
31.1.3 CGI环境变量 739
31.1.4 调用Web.PB方法 739
31.1.5 维护状态信息 740
31.2 示例应用程序概貌 741
31.3 数据输入 741
31.4 报表 744
31.4.1 创建一个HTML Table报表 744
31.4.2 生成一个DataWindow插件 745
报表 745
31.5 Sybase Jaguar CTS 746
31.6 PowerSite 747
31.7 小结 747
32.1.2 图形的类型 749
32.1.1 图形的组件 749
第32章 图形 749
第六部分 高级PowerBuilder 749
32.1 图形的原则 749
32.2 定义图形的特性 752
32.2.1 初始状态 752
32.2.2 文本特性 752
32.2.3 轴 753
32.2.4 覆盖 755
32.2.5 条和列图表 756
32.3 DataWindow图形 756
32.3.1 如何创建DataWindow图形 756
32.3.2 生成DataWindow图形 756
32.4.1 创建图形控件 759
32.4.2 生成图形控件 759
32.4 图形控件 759
32.5 动态图形 760
32.6 小结 767
第33章 数据管道 768
33.1 管道对象 768
33.2 Data Pipeline画板 769
33.2.1 源表 771
33.2.2 目标表 771
33.2.3 管道选项 772
33.2.4 执行管道 774
33.2.5 管道错误 774
33.2.6 保存管道对象 775
33.3 在应用程序中使用管道 775
33.3.1 管道用户对象 776
33.3.2 在应用程序中创建管道对象 778
33.4 小结 784
第34章 具有邮件功能的PowerBuilder 785
应用程序 785
34.1 Microsoft消息应用程序接口 785
34.1.1 mailSession对象 785
34.1.2 mailLogon()函数 786
34.1.3 mailLogoff()函数 787
34.1.4 mailHandle()函数 787
34.1.5 mailAddress()函数 787
34.1.6 mailResolveRecipient()函数 788
34.1.7 mailRecipientDetails()函数 789
34.1.8 mailGetMessages()函数 790
3.4.1.9 mailDeleteMessage()函数 792
34.1.10 mailSaveMessage()函数 793
34.1.11 mailSend()函数 793
34.2 具有邮件功能的系统错误窗口 794
34.3 邮寄DataWindow对象 795
34.4 小结 795
第35章 拖放技术 796
35.1 拖放定义 796
35.2 拖放术语 796
35.3 拖放规则 797
35.4 实现拖放 798
35.4.1 特性 798
35.4.2 事件 799
35.4.3 函数 799
35.5.1 数据垃圾箱 803
35.5 拖放示例 803
35.5.2 调色板 806
35.5.3 在TreeView控件中拖放 810
35.5.4 在DataWindow间的拖放 812
35.6 小结 813
第36章 动画、声音与多媒体 814
36.1 动画图片 814
36.1.1 工具栏图标 814
36.1.2 Timers 816
36.1.3 Timer和工具栏 816
36.1.4 图片控件与图片按钮 817
36.1.5 窗口图标动画 817
36.2.1 移动图片 818
36.2 移动对象 818
36.1.6 拖放 818
36.2.2 外部函数调用 820
36.2.3 移动窗口 821
36.3 发声 822
36.4 多媒体 824
36.5 小结 828
第37章 API调用 830
37.1 声明外部函数 830
37.2 数据类型转换 831
37.3 传递变元 832
37.3.1 以引用方式传递数值数据 833
类型 833
37.3.2 以引用方式传递字符串 833
37.3.3 传递结构 833
37.4 查找进一步的信息 834
37.5 建立API控制器用户对象 835
37.6 样本代码 836
37.6.1 注册函数 836
37.6.2 判断应用程序是否已打开 840
37.6.3 引起注意 842
37.6.4 使窗口居于中心 842
37.6.5 修改窗口的样式 844
37.6.6 获得系统资源信息 845
37.6.7 进行连接 847
37.6.8 拷贝文件 850
37.6.9 捕获关联窗口 852
37.7 小结 852
38.1.1 会话管理函数 853
38.1 ORCA中的函数组 853
第38章 Powersoft Open Library API:ORCA 853
38.1.2 库管理函数 855
38.1.3 源管理函数 857
38.1.4 编译函数 858
38.1.5 对象查询函数 860
38.2 样本ORCA函数调用 860
38.3 小结 864
第39章 OLE2.0和DDE 865
39.1 进程间通信 865
39.1.1 DDE概述 865
39.1.2 OLE概述 865
39.2 动态数据交换 866
39.2.1 DDE的概念 866
39.2.2 Registration Information Editor(注册信息编辑器) 867
39.3 完整的DDE处理 868
39.3.1 启动服务器应用程序 868
39.3.2 启动会话 869
39.4 与DDE服务器通信 870
39.4.1 发送数据 870
39.4.2 终止连接 871
39.4.3 作为DDE服务器的 872
PowerBuilder 872
39.5 OLE2.0术语 872
39.6 DataWindow画板中的OLE 873
39.6.1 Blob列 874
39.6.2 OLE DataWindow显示样式 877
39.7.2 如何激活控件 881
39.7.1 就地激活与异地激活 881
39.7 使用OLE 2.0控件 881
39.7.3 菜单和就地激活 882
39.7.4 OLE 2.0控件事件 884
39.8 OLE自动化 885
39.8.1 操纵OLE控件 886
39.8.2 操纵OLE对象 888
39.8.3 OLE对象 890
39.8.4 Any数据类型 891
39.8.5 OLEStorage和OLEStream 892
39.8.6 DCOM 892
39.9 OCX 892
39.10 作为OLE服务器的PowerBuilder 895
39.11 小结 899
附录A 安装光盘 900