目 录 1
第1章PowerBuilder概述 1
1.1 PowerBuilder与面向对象编程 1
1.1.1对象和类 1
1.1.2继承 2
1.1.3封装 3
1.1.4多态性 3
1.1.5函数重载 4
1.2事件 4
1.3函数 4
1.4 PowerBuilder 6.0的开发环境介绍 4
1.4.1PowerBar工具栏 5
1.4.2定制工具栏 6
1.4.3 PowerBuilder 6.0提供的描绘器 7
1.5 PowerBuilder命名规范 16
1.5.1推荐的控件名字 17
1.5.2推荐的对象命名惯例 19
第2章PowerBuilder 6.0新增的功能 20
2.1分布式计算 20
2.1.1共享对象及应用程序 20
2.1.2异步处理 23
2.1.3服务器推送及应用 24
2.1.4数据窗口的同步 25
2.2对Internet的支持 26
2.3开发环境和效率的改善 31
2.3.1跟踪和描述 31
2.3.2新的调试器 32
2.3.3 PFC的增强功能 33
2.3.4使用的方便性及PowerScript语言方面的改进 34
2.3.5配置和运行效率的改进 35
2.4跨平台及多语种支持 36
2.4.1多平台支持 36
2.4.2多语种支持 36
2.5数据库连接 37
2.6 OLE增强 42
2.6.1 OLE服务器的新增特性 42
2.6.2 OLE错误处理 43
2.7数据窗口的新增功能 44
2.8组件生成和组件库 47
第3章应用程序的调试 48
3.1 Debug描绘器的功能 48
3.2设置程序断点 49
3.3在调试状态下运行 50
3.3.1查看变量 51
3.3.2使用Watch窗口观察变量 52
3.3.3纠正代码错误 53
3.4在程序运行中发现错误 53
3.5跟踪应用程序的运行过程 54
第4章数据库创建与管理方法 57
4.1建立PowerBuilder与数据库的连接 57
4.1.1通过ODBC与本地数据库连接 57
4.1.2通过专用接口与数据库连接 58
4.2数据库描述文件 60
4.3数据库操作 64
4.3.1创建数据库 64
4.3.2连接数据库 65
4.3.3删除数据库 65
4.3.5设置与数据库操作有关的参数 66
4.3.4建立数据库操作记录 66
4.4数据库表操作 68
4.4.1创建表 69
4.4.2表的一般属性 70
4.4.3表项的扩展属性 70
4.4.4设置表的属性 72
4.5修改表 73
4.5.1不能修改的内容 73
4.5.2可以修改的内容 73
4.6设置主码 73
4.7设置外码 74
4.8索引 76
4.9视图 77
4.10把DOC文件描述的表创建为数据库表 79
4.11操作数据库中的数据 90
4.11.1检索并编辑数据库中的数据 90
4.11.2排序 90
4.11.3筛选行 91
4.11.4导入、导出数据 92
4.11.5退出Data Manipulation描绘器 92
4.12控制对数据库的访问 93
4.12.1使用命令权限 93
4.12.2表的安全性控制 93
4.12.3用户信息维护 94
4.12.4用户组信息维护 95
4.12.5编辑和运行SQL 95
4.12.6解释SQL 96
4.13.1定义和修改显示格式 97
4.13.2为数据库表的列项定义显示格式 97
4.13定义显示格式 97
4.13.3为某种数据类型定义显示格式 98
4.14定义编辑格式 102
4.14.1编辑框风格(Edit) 103
4.14.2下拉式列表框风格(DropDownListBox) 105
4.14.3复选框风格(CheckBox) 106
4.14.4单选钮风格(RadioButtons) 107
4.14.5 EditMask风格(EditMaak) 108
4.14.6下拉式数据窗口编辑风格(DropDownDataWindow) 109
4.15定义有效性规则 110
4.15.1为具体表列项定义有效性规则 110
4.15.2定义有效性表达式 111
第5章PowerBuilder与SQL 113
5.1提高查询效率的一般概念 113
5.2 SQL与 PowerBuilder 115
5.3灵活使用一般的SQL语句 117
5.3.1 SELECT语句的使用 117
5.3.2 INSERT语句的使用 122
5.3.3 UPDATE语句的使用 124
5.3.4 DELETE语句的使用 125
5.4其他SQL语句 125
5.4.1数据库连接与中断 125
5.4.2提交语句和回滚语句 126
5.4.3与过程有关的语句 126
5.4.4与游标有关的语句 128
5.4.5处理数据库表中二进制大对象(blob)数据 130
5.5动态SQL语句的使用 131
5.5.1既没有输入参数也没有输出数据的动态SQL语句 131
5.5.2有输入参数没有输出数据的动态SQL语句 131
5.5.3有已知的输出数据列,同时也可以有输入参数 132
5.5.4输入输出参数的个数或类型是未知的 134
6.1 PowerScript的数据类型 137
第6章PowerScript编程 137
6.2常量 138
6.3变量及其作用域 139
6.3.1变量和标识符 139
6.3.2变量声明 139
6.3.3作用域 140
6.3.4 PowerBuilder搜索变量的顺序 143
6.4数组 144
6.4.1一维数组 144
6.4.2变长数组 145
6.4.3多维数组 146
6.5结构 146
6.6操作符和表达式 147
6.6.1操作符 147
6.5.1定义结构 147
6.5.2使用结构 147
6.6.2表达式 150
6.7判断结构 151
6.7.1 If…Then 151
6.7.2 If…Then结构 151
6.7.3 If…Then…Else结构 152
6.7.4 Choose Case 152
6.8循环结构 153
6.8.1 Goto语句 153
6.8.2 Do…Loop 154
6.8.3 For…Next 154
6.8.5 Continue 155
6.8.6循环的嵌套 155
6.8.4 Exit 155
6.9代词 156
6.9.1 This 156
6.9.2 Parent 156
6.9.3 Parent Window 157
6.9.4 Super 157
6.10常用函数和语句 158
6.10.1常用函数 158
6.10.2 Create和Destroy语句 163
6.11形式参数和参数传递 164
6.12文件函数 164
第7章创建应用对象 171
7.1创建和打开一个应用对象 171
7.2定义应用对象的属性 173
7.3.1Open事件 175
7.3应用对象的事件 175
7.3.2 Close事件 176
7.3.3 Idle事件 176
7.3.4 Systemerror事件 177
第8章创建和使用窗口对象 178
8.1创建和继承窗口 178
8.1.1 从头开始创建一个新窗口对象 179
8.1.2继承一个窗口对象 182
8.2定制窗口描绘器 184
8.3窗口对象的属性 185
8.3.1窗口对象的属性 185
8.3.2 PowerBuilder单位 187
8.4窗口对象的事件 188
8.4.1激活窗口的Activate事件 188
8.4.4关闭窗口时的CloseQuery事件 189
8.4.2单击窗口的Clicked事件 189
8.4.3关闭窗口时的Close事件 189
8.4.5用户按键事件Key 190
8.4.6打开窗口事件Open 190
8.4.7单击鼠标右键事件RButtonDown 190
8.4.8时间事件Timer 191
8.4.9窗口的Other事件 193
8.5窗口中的控件 194
8.5.1 向窗口添加控件 195
8.5.2控件数组 195
8.5.3控件选择 195
8.5.4对控件的操作 195
8.5.5设置控件的访问顺序 196
8.5.6定义加速键 197
8.5.7控件的公用属性 197
8.6.1命令按钮(CommandButton) 199
8.6使用窗口控件 199
8.6.2图形命令按钮(PictureButton) 201
8.6.3单选按钮(Radio Button) 201
8.6.4复选框(CheckBox) 205
8.6.5静态文本(static text) 206
8.6.6单行编辑(Single Line Edit) 207
8.6.7多行编辑(MultiLineEdit) 209
8.6.8掩码编辑(Editmask) 210
8.6.9超文本编辑(Rich TextEdit) 211
8.6.10分组框(GroupBox) 213
8.6.11标签(tab) 213
8.6.12列表框(ListBox) 217
8.6.13图形列表框(picturelistbox) 218
8.6.15树视图控件(TreeView) 220
8.6.14下拉式列表框和下拉式图形列表框 220
8.6.16表视图(1istview) 224
8.6.17滚动条(VscrollBar和HscrollBar) 229
8.6.18绘图控件(drawing objects) 231
8.6.19图形控件(Graph) 231
8.7在窗口中使用SELECT语句——制作登录窗口 231
8.8制作带有框架的界面(MDI) 233
8.8.1创建MDI窗口的应用 233
8.8.2在MDI框架中打开一个工作表 234
8.8.3把一个参数传递给一个窗口 237
8.8.4把多个参数传给一个窗口 239
8.8.5访问MDI窗口中某个工作表的方法 239
8.8.6 MDI应用实例 240
9.1 Menu描绘器的主窗口 247
第9章制作菜单 247
9.2创建菜单 248
9.2.1定义下拉菜单项的步骤 248
9.2.2创建菜单时的一些操作 249
9.3定义菜单的属性 250
9.3.1菜单的General属性 250
9.3.2菜单的Style属性 251
9.3.3 Shortcut标签 252
9.3.4 Toolbar标签页 253
9.3.5 Picture标签页 254
9.4保存菜单 254
9.5打印菜单对象 254
9.6为菜单对象编写程序 255
9.6.1 Clicked事件 255
9.7.2在窗口的脚本中引用菜单对象 257
9.7.3使用弹出式菜单 257
9.7使用菜单 257
9.7.1把窗口和菜单联系起来 257
9.8使用继承建立菜单 259
9.8.1在继承菜单对象中可以做的事情 259
9.8.2继承菜单时不能做的事情 259
9.8.3在菜单中插入菜单对象 259
第10章数据窗口对象 260
10.1数据窗口对象的工作原理 260
10.2创建一个数据窗口 261
10.2.1选择数据源 262
10.2.2确定数据窗口的表现风格 269
10.2.4选择Options项 277
10.2.5保存DataWindow对象 277
10.2.3预览数据窗口的选择 277
10.3认识数据窗口的各个区域 278
10.3.1 DataWindow工具栏 279
10.4设置DataWindow工作区的参数 280
10.4.1设置DataWindow工作区的网格和标尺 280
10.4.2显示对象边界 281
10.4.3缩放比例 282
10.4.4设置DataWindow对象的背景颜色、前景颜色和边框类型 282
10.5设置数据窗口对象的属性 282
10.6向数据窗口添加对象 284
10.6.1添加对象 284
10.6.2 PowerBuilder 6.0新增加的数据窗口内部命令按钮 284
10.6.3为对象命名 286
10.6.4添加或删除列对象 286
10.6.6添加计算域 287
10.6.5添加文本对象 287
10.6.7添加其他数据窗口对象 291
10.7设置数据窗口内对象的属性 291
10.8数据窗口预览 294
10.9增加数据窗口的功能 295
10.9.1指定更新属性 295
10.9.2数据排序 297
10.9.3数据分组统计 298
10.9.4设置数据窗口检索参数 300
10.9.5数据过滤 301
10.9.6在数据窗口对象中存储数据 302
10.9.7按数据窗口的大小检索数据 303
11.1.2让窗口动态关联数据窗口对象 304
11.1.1在Window描绘器中建立数据窗口控件与数据窗口对象的联系 304
11.1建立数据窗口控件与数据窗口对象的联系 304
第11章使用数据窗口 304
11.1.3数据窗口控件的其他属性 305
11.2事务对象是数据库与数据窗口对象之间的桥梁 305
11.2.1什么是事务对象 306
11.2.2事务对象的属性 306
11.2.3 Powerbuilder为你创建的事务对象SQLCA 307
11.2.4 自定义的事务对象 307
11.2.5从描述文件中取信息设置事务对象属性 308
11.2.6建立和中断与数据库的连接 310
11.2.7删除自己定义的事务对象 311
11.2.8把事务对象与数据窗口控件关联 311
11.2.9使用数据窗口检索数据库数据的完整过程 311
11.3数据检索 313
11.4 数据窗口控件工作原理 316
11.4.1更新数据窗口控件的数据所触发的事件 316
11.4.2对数据窗口控件内数据的其他操作 317
11.4.3接受数据项的一个特殊函数AcceptText() 318
11.5访问数据窗口对象缓冲区的内容 319
11.5.1使用函数 319
11.5.2使用表达式访问数据窗口对象 325
11.6在程序中访问数据窗口对象的属性 326
11.6.1使用modify函数修改数据窗口的属性 326
11.6.2 设置数据窗口对象本身的属性 329
11.6.3 设置数据窗口对象及其他对象的属性 329
11.6.4数据窗口对象的其他属性 329
11.7在程序中创建数据窗口对象 341
11.8使用数据窗口事件 342
11.8.1 ButtonClicked事件 343
11.8.2 Clicked事件 343
11.8.4 ItemError 344
11.8.3 DoubleClicked事件 344
11.8.5 RowFocusChanged 345
11.8.6 DBError 345
11.8.7 RetrieveStart事件 347
11.8.8 RetrieveEnd事件 347
11.8.9 CloseQuery事件 347
11.8.10 Error事件 348
11.9建立主/从数据窗口的关联 348
11.10共享数据窗口 350
11.11数据存储 355
11.11.1使用数据存储 356
11.11.2数据存储对象的方法和属性 356
11.11.3定制的数据存储对象的使用 359
11.11.4 用数据存储中的数据填写一个树表的实例 359
11.12.1 使用FileSaveRow As保存HTML格式的数据窗口 366
11.12生成HTML 366
11.12.2使用Data.HTML 367
11.12.3调用SaveAs()函数获得HTML格式内容 368
11.13报表生成和打印 368
11.13.1创建一个复合报表的过程 369
11.13.2建立其他风格的报表 370
11.13.3创建相关的嵌套报表 370
11.13.4创建无关的嵌套报表 374
11.13.5打印报表 374
11.13.6报表生成和打印实例 376
第12章用户对象和用户事件 381
12.1用户对象概述 381
12.2 创建和使用标准的可视用户对象 381
12.2.1创建标准的可视用户对象 382
12.2.3标准的可视用户对象实例 383
12.2.2使用标准可视用户对象 383
12.3创建和使用定制的可视用户对象 385
12.3.1创建一个定制的可视用户对象 385
12.3.2使用定制的可视用户对象 385
12.3.3定制的可视用户对象实例 386
12.4创建和使用外部可视用户对象 392
12.4.1创建外部可视用户对象 392
12.4.2使用外部可视用户对象 394
12.5创建和使用标准类用户对象 394
12.5.1创建标准类用户对象 394
12.5.2使用标准类用户对象 395
12.5.3使用标准类用户对象实例 395
12.6创建和使用定制的类用户对象 397
12.6.1创建定制的类用户对象 397
12.6.2在程序中使用定制的类用户对象 397
12.7创建和使用C++类用户对象 398
12.6.3使用定制的类用户对象实例 398
12.8使用继承建立用户对象 400
12.9删除对象 402
12.10用户对象的命名规则 402
12.11 定义和使用用户事件 402
12.11.1定义用户事件 403
12.11.2使用用户事件 405
12.11.3用户事件应用例子 405
第13章OLE应用 411
13.1 OLE应用概述 411
13.2 创建OLE控件 412
13.2.1 在窗口中放置一个OLE控件的步骤 412
13.2.2 OLE控件的属性 413
13.2.4 OLE控件的弹出菜单 416
13.2.3在用户对象中放置一个OLE控件的步骤 416
13.3 OLE控件的主要函数 418
13.3.1激活OLE对象 418
13.3.2清除OLE对象 418
13.3.3拷贝、裁剪OLE对象 418
13.3.4获得OLE控件的数据 419
13.3.5改变OLE控件中的对象 419
13.3.6粘贴函数 421
13.3.7保存OLE控件中的对象 421
13.4 OLE控件的主要事件 422
13.4.1 DataChange事件 422
13.4.2 ExternalException事件和Error事件 422
13.5 OLE自动化 424
13.5.1在脚本中操作OLEObject对象 424
13.5.2用OLEObject变量提高OLE对象的处理效率 426
13.7.3 在数据窗口中使用DB OLE对象 427
13.7.2在数据窗口使用OLE对象 427
13.6 OLE定制控件OCX 427
13.7.1 OLE显示风格的数据窗口 427
13.7在数据窗口中使用OLE对象 427
13.7.4处理Blob类型数据的实例 429
13.8 OLE实例分析 433
13.8.1涉及的对象和数据库表 433
13.8.2对象间关系及功能 433
13.8.3程序运行情况 434
13.8.4 script代码分析 434
第14章生成统计图形 444
14.1综 述 444
14.2创建图形显示风格的数据窗口 444
14.2.1认识图的各个部分 446
14.2.3图的Text属性 447
14.2.2图的Data属性 447
14.2.4图的Graph属性 448
14.2.5图的Value Axis属性 450
14.2.6图的Category Axis属性 451
14.2.7图的SeriesAxis属性 452
14.2.8图的General属性 452
14.2.9图的Print Specifications标签页 453
14.3在数据窗口内使用图形对象 454
14.4在窗口内使用图形控件 456
14.4.1 图形控件的主要属性 457
14.4.2图形控件的主要函数 459
14.5在程序中设置图形属性和使用图形函数 463
14.6图形应用实例 463
14.6.1在运行时添加/取消图形对象的数据 464
14.6.2在运行中改变图形式样 465
14.6.3设置颜色 470
14.6.4在运行中改变图形对象的标题 471
第15章使用Library描绘器组织PBL库 473
15.1认识Library描绘器并浏览PBL库的内容 473
15.2库操作 473
15.2.1创建一个PBL库 473
15.2.2删除一个PBL库 474
15.2.3优化一个PBL库 475
15.2.4建立动态库 475
15.3操作库中的对象 476
15.3.1选择库中的对象 476
15.3.2编辑、复制、移动和删除对象 477
15.3.3导入、导出对象 478
15.3.4重新编译对象 479
15.3.5搜索库 480
15.3.6对象打印和打印设置 482
15.4对象访问控制 483
15.4.1检查取出 484
15.4.2检查调入 486
15.5库的重建 486
15.5.1库的移植 486
15.5.2库的重建 487
15.6连接版本控制系统 487
15.7定制Library描绘器 488
15.7.1一般设置 488
15.7.2定义包含的对象 489
15.7.3 Source Mgmt标签页 489
第16章PowerBuilder 6.0的Internet应用 491
16.1概述 491
16.1.1基于Web.PB的Browser/Server方式 491
16.2 PowerBuilder 6.0的Internet Developer Toolkit 493
16.1.2基于Plugins(插入件)的Client/Server方式 493
16.3 Web Server的设置 494
16.3.1 WebSite 1.1的特点 494
16.3.2 WebSite 1.1的安装 495
16.3.3 WebSite的设置 500
16.4几个INI文件的配置 503
16.5 Window Plug-in 504
16.5.1 Window plug-in的工作方式 505
16.5.2 Window Plug-in的优点 506
16.5.3 Window plug-in实例 506
16.6 DataWindow Plug-in 509
16.6.1 DataWindow的工作方式 509
16.6.2 DataWindow Plug-in的优点 511
16.6.3 DataWindow Plug-in实例 511
16.7 Browser/Server方式 513
16.7.1 Web.PB的工作方式 514
16.7.2 Web.PB的优点 516
16.7.3 Web.PB的类库 516
16.7.4 Web.PB的实例 516
16.8 Wondows ActiveX控件 527
16.9几个容易漏掉的细节 530
第17章生成可执行的PowerBuilder应用程序 531
17.1简单应用生成可执行的EXE文件 531
17.2动态库 533
17.2.1创建动态库的几点建议 534
17.2.2创建动态库 535
17.3资源文件 536
17.3.1创建资源文件 537
17.3.2使用资源文件 537
17.4生成可执行文件 538