第1章 PowerBuilder9.0概述 1
1.1PowerBuilder的发展历程 1
1.2PowerBuilder功能简介 1
1.2.1事件驱动的应用程序 1
1.2.2功能强大的开发技术 1
1.2.3面向对象编程 3
1.2.4强大的Web以及分布式开发能力 3
1.2.5对事务的支持 3
1.3PowerBuilder9.0的新功能 3
1.4本章小结 4
第2章 PowerBuilder9.0的开发环境 5
2.1安装和卸载PowerBuilder9.0 5
2.1.1安装PowerBuilder9.0 5
2.1.2卸载PowerBuilder 13
2.2集成开发环境 14
2.2.1运行PowerBuilder9.0 14
2.2.2菜单栏 16
2.2.3工作区 19
2.2.4工具栏 19
2.2.5画板 20
2.2.6获得帮助 20
2.3一个简单数据库应用程序示例 21
2.3.1快速生成一个应用程序 21
2.3.2创建数据窗口 23
2.3.3连接数据窗口 24
2.3.4运行应用程序 26
2.4本章小结 27
3.1.1标识符、注释、代词 28
第3章 PowerBuilder9.0编程基础 28
3.1PowerScript语言基础 28
3.1.2数据类型 29
3.1.3变量与常量 31
3.1.4数组 32
3.1.5运算符 33
3.1.6表达式 34
3.2控制结构 35
3.2.1条件分支结构 35
3.2.2循环结构 36
3.2.3返回和终止 38
3.3函数结构 39
3.3.1使用系统函数 39
3.3.2创建自定义函数(Fuction) 41
3.3.3函数调用 43
3.3.4函数的重载和超越 43
3.3.5结构的创建和使用 43
3.3.6常用函数 45
3.4使用SQL语句 47
3.4.1常用SQL语句 47
3.4.2SQL语句的执行结果检查 50
3.4.3游标的使用 51
3.4.4动态SQL语句 52
3.4.5SQL查询示例 56
3.5编程规范 60
4.2.2应用库 62
4.2.1应用对象 62
4.1应用对象概述 62
4.2应用对象和应用对象画板 62
第4章 应用对象和事务对象 62
4.2.3应用对象画板 63
4.3应用对象的事件 68
4.3.1Open(打开)事件 68
4.3.2Close(关闭)事件 69
4.3.3Idle(空闲)事件 69
4.3.4SystemError(系统出错)事件 69
4.3.5ConnectBegin(连接开始)事件 69
4.3.6ConnectEnd(连接结束)事件 70
4.3.7编写应用对象的事件 70
4.4使用代码编辑器 70
4.4.1代码编辑器 70
4.4.2编辑代码 71
4.4.3粘贴函数 72
4.4.4粘贴语句 73
4.4.5代码编辑器的键盘操作 73
4.5事务对象 74
4.5.1事务对象概述 74
4.5.2创建自定义事务对象 75
4.6本章小结 76
第5章 对象的属性、事件和函数 77
5.1公共对象函数 77
5.1.1ClassName() 77
5.1.2Drag() 77
5.1.3GetContextService() 78
5.1.5Hide() 79
5.1.4GetParent() 79
5.1.6Move() 80
5.1.7PointerX() 81
5.1.8PointerY() 81
5.1.9PostEvent() 81
5.1.10Print() 82
5.1.11Resize() 83
5.1.12SetFocus() 84
5.1.13SetPosition() 84
5.1.14SetRedraw() 85
5.1.15Show() 86
5.1.16TriggerEvent() 86
5.1.17TypeOf() 88
5.2.1应用对象的属性 89
5.2应用对象 89
5.2.2应用对象的事件 90
5.2.3应用对象的函数 90
5.3数组边界对象 92
5.3.1数组边界对象的属性 92
5.3.2数组边界对象的函数 92
5.4类定义对象 93
5.4.1类定义对象的属性 93
5.4.2类定义对象的函数 94
5.5上下文信息对象 95
5.5.1上下文信息对象的属性 95
5.5.2上下文信息对象的事件 95
5.5.3上下文信息对象的函数 96
5.6.1上下文关键字对象的属性 100
5.6.2上下文关键字对象的事件 100
5.6.3上下文关键字对象的函数 100
5.6上下文关键字对象 100
5.7C++对象 101
5.7.1C++对象的属性 101
5.7.2C++对象的事件 101
5.7.3C++对象的函数 102
5.8数据存储对象 102
5.8.1数据存储对象的属性 102
5.8.2数据存储对象的事件 102
5.8.3数据存储对象的函数 103
5.9子数据窗口对象 106
5.10.1动态描述区对象的属性 109
5.10动态描述区对象 109
5.10.2动态描述区对象的事件 110
5.10.3动态描述区对象的函数 110
5.11DynamicStagingArea对象 115
5.11.1DynamicStagingArea对象的事件 115
5.11.2DynamicStagingArea对象的函数 115
5.12枚举定义对象 115
5.12.1枚举定义对象的属性 115
5.12.2枚举定义对象的函数 116
5.13枚举项定义对象 116
5.13.1枚举项定义对象的属性 116
5.14.2环境对象的函数 117
5.14.1环境对象的属性 117
5.14环境对象 117
5.13.2枚举项定义对象的函数 117
5.15出错对象 118
5.15.1出错对象的属性 118
5.15.2出错对象的事件 118
5.15.3出错对象的函数 118
5.16grAxis对象 119
5.16.1grAxis对象的属性 119
5.16.2grAxis对象的函数 120
5.17grDispAttr对象 120
5.17.1grDispAttr对象的属性 121
5.17.2grDispAttr对象的函数 121
5.18.2Inet对象的事件 122
5.18.3Inet对象的函数 122
5.18.1Inet对象的属性 122
5.18Inet对象 122
5.19InternetResult对象 124
5.19.1InternetResult对象的属性 124
5.19.2InternetResult对象的事件 124
5.19.3InternetResult对象的函数 125
5.20ListViewItem对象 125
5.20.1ListViewItem对象的属性 125
5.20.2ListViewItem对象的函数 126
5.21mailFileDescription对象 126
5.21.1mailFileDescription对象的属性 126
5.21.2mailFileDescription对象的函数 126
5.22.2邮件消息对象的函数 127
5.22.1邮件消息对象的属性 127
5.22邮件消息对象 127
5.23邮件接收者对象 128
5.23.1邮件接收者对象的属性 128
5.23.2邮件接收者对象的函数 128
5.24邮件会话对象 128
5.24.1邮件会话对象的属性 128
5.24.2邮件会话对象的事件 128
5.24.3邮件会话对象的函数 129
5.25MDIClient对象 138
5.25.1MDIClient对象的属性 139
5.25.2MDIClient对象的函数 139
5.26菜单对象 139
5.26.2菜单对象的事件 140
5.26.1菜单对象的属性 140
5.26.3菜单对象的函数 141
5.27MenuCascade对象 144
5.27.1MenuCascade对象的属性 144
5.27.2MenuCascade对象的事件 145
5.27.3MenuCascade对象的函数 145
5.28消息对象 146
5.28.1消息对象的属性 146
5.28.2消息对象的事件 146
5.28.3消息对象的函数 147
5.29本章小结 147
6.1.2弹出式窗体(PopupWindow) 148
6.1.1主窗体(MainWindow) 148
6.1窗体概述 148
第6章 窗体与菜单 148
6.1.3子窗体(ChildWindow) 149
6.1.4响应窗体(ResponseWindow) 149
6.1.5MDI框架窗体和带微帮助的MDI框架窗体 149
6.2窗体操作 149
6.2.1窗体画板概述 149
6.2.2创建新窗体 150
6.2.3创建继承窗体 151
6.2.4设计窗体属性 152
6.2.5保存、预览、打印窗体 155
6.3窗体事件和函数 156
6.3.1窗体事件 156
6.3.2窗体函数 158
6.4窗体变量和窗体数组 161
6.4.1窗体变量 161
6.4.2窗体数组 161
6.5制作身份验证窗体实例 162
6.5.1在数据库中创建管理员信息表 162
6.5.2建立窗体 162
6.5.3设置、排列各个控件 163
6.5.4编写窗体和各个控件的事件脚本 164
6.6菜单概述 165
6.7菜单操作 167
6.7.1创建新菜单 167
6.7.2修改菜单 168
6.7.3设置菜单属性 170
6.9制作弹出式菜单 172
6.8.2编写菜单事件处理程序 172
6.9.1弹出窗体上的菜单 172
6.8.1菜单事件触发时机 172
6.8菜单事件 172
6.9.2弹出其他菜单 173
6.10本章小结 173
第7章 控件 174
7.1控件概述 174
7.1.1控件的命名 175
7.1.2控件的基本操作 177
7.1.3控件的焦点与Tab次序 181
7.1.4控件的标题和访问键 183
7.2按钮控件 185
7.2.1命令按钮 185
7.3显示与编辑文本 186
7.2.2图形按钮 186
7.3.1静态文本(StaticText)控件 187
7.3.2单行编辑框(SingleLineEdit) 187
7.3.3多行编辑框(MultiLineEdit) 188
7.3.4掩码编辑框(EditMask) 189
7.3.5超文本编辑框(RichTextEdit) 190
7.4单选钮、复选框与组框 191
7.4.1单选钮(RadioButton) 191
7.4.2复选框(CheckBox) 192
7.4.3组框(GroupBox) 193
7.5列表选择 194
7.5.1列表框(ListBox) 194
7.5.2图片列表框(PictureListBox) 196
7.5.3下拉列表框(DropDownListBox) 197
7.6显示图像 198
7.5.4下拉图片列表框 198
7.7使用树形视图控件 200
7.7.1属性 201
7.7.2添加与删除列表项 202
7.7.3事件 205
7.8使用列表视图控件 206
7.8.1列表视图的属性 206
7.8.2增加与删除列表项 208
7.8.3事件 211
7.9使用标签控件 212
7.9.1相关概念 212
7.9.2建立标签控件 212
7.9.3属性 214
7.9.4事件 217
7.10.1放入OLE控件 218
7.10集成其他应用 218
7.10.2设置OLE控件 220
7.10.3激活OLE对象的方法 221
7.10.4使用BLOB类型 222
7.10.5访问Excel数据 223
7.10.6访问Word数据 226
7.11本章小结 229
第8章 报表 230
8.1报表概述 230
8.1.1选择表现风格和数据源 230
8.1.2设置结果集和修改属性 231
8.1.3在服务器和客户机间共享 232
8.1.5数据窗口画板选项 233
8.1.4数据窗口和报表区 233
8.2打印报表 234
8.2.1控制打印规范 234
8.2.2与打印相关的函数 235
8.2.3与打印相关的事件 236
8.3制作打印报表单 237
8.3.1数据窗口数据项的选择与设置 237
8.3.2调整控件大小 237
8.3.3利用系统控件强化报表的统计显示功能 238
8.4选择并打印报表 239
8.4.1建立数据窗口 240
8.4.2建立窗体 241
8.4.4编写控件脚本 242
8.4.3设置控件及其属性 242
第9章 程序调试与发布 244
9.1程序调试 244
9.1.1查看脚本窗口 244
9.1.2资源浏览窗口 244
9.1.3查看变量窗口 244
9.1.4断点查看窗口 245
9.2断点操作 245
9.2.1调试应用程序的切换 245
9.2.2设置断点 246
9.3调试方法 248
9.3.1调试的开始、继续和停止 248
9.3.2其他调试方法 248
9.4.2查看其他信息 249
9.4.1查看各种变量值 249
9.4查看信息 249
9.4.3运行错误解释 251
9.5发布应用程序 252
9.5.1概述 252
9.5.2建立工程对象 253
9.5.3编译生成各类对象 254
9.5.4编译生成可执行应用程序 254
9.6制作安装盘 259
9.6.1找出软件发布的所有必需文件 259
9.6.2确保软件的目录结构同软件一致 259
9.6.3在注册表里的设置 259
9.6.4确定要生成的程序包的名字和目标 260
9.7本章小结 260
10.1.1生成应用程序需要的DLL文件 261
10.1.2应用程序脱离开发环境运行 261
第10章 应用程序开发常见问题与技巧 261
10.1环境配置 261
10.1.3安装AdaptiveServerAnywhere后如何创建数据库 262
10.1.4在File菜单中显示CreateDatabase选项 262
10.1.5编程优化数据库查询 262
10.1.6动态调用函数 264
10.1.7对应用程序进行代码维护 265
10.2窗体与菜单设计 268
10.2.1创建图标栏应用 268
10.2.2创建美观的状态条 270
10.2.3在Response窗口中使用Menu 270
10.2.6将可视控件放置于其他的控件上 271
10.2.5捕获控制菜单中的Close事件 271
10.2.4移动窗口中的控件 271
10.2.7实现动态显示控件 272
10.2.8动态创建可视控件 272
10.2.9使用多窗口实例 273
10.2.10在实例窗口中引用控件 274
10.2.11向窗口传递多个参数 275
10.2.12设计实时帮助条 275
10.2.13实现“跑马灯” 276
10.2.14实现右键菜单 276
10.3事务管理 276
10.3.1如何设置数据窗口控件的事务对象 276
10.3.2进行内部事务管理 277
10.3.3使用一个独立的事务对象进行事务管理 278
10.3.4为数据库连接参数赋值 279
10.3.5用数据库的事务管理指令实现完全控制 281
10.3.6消除内存漏洞 281
10.3.7进行数据访问 281
10.3.8同时连到多个RDBMS 282
10.3.9使用事务对象进行数据库检索和更新 282
10.4操作OCX控件 283
10.4.1在PowerBuilder中实现对有关串口的编程 283
10.4.2在PowerBuilder中使用OCX控件 284
10.4.3实现动态的Splash封面文件 285
10.4.4用PowerBuilder开发多媒体播放器 286
10.4.5利用OCX控件制作状态条 287
10.4.6利用OCX控件制作日历 288
10.4.7利用OCX控件制作动态按钮或动态图片 288
10.5.2调用Windows的输入法 289
10.5控制应用程序 289
10.5.1触发另一个应用程序中用户事件 289
10.5.3使用游标 290
10.5.4用PowerBuilder调用Windows的API函数 291
10.5.5调用API函数从串口通信中获取程控交换机计费数据 291
10.5.6调用外部程序及判断其完成 293
10.5.7播放声音文件 294
10.5.8动态监控资源 295
10.5.9控制由Run运行的程序 296
10.5.10只运行一次应用程序 297
10.5.11在应用程序中启动控制面板 297
10.6操作Windows系统 298
10.6.1利用API函数建立Windows风格的About对话框 298
10.5.12在循环中途实现退出 298
10.6.2在程序中切换中英文输入法 299
10.6.3获取驱动器类型 299
10.6.4获取键盘类型 300
10.6.5获取硬盘容量 300
10.6.6制作闪动标题栏 300
10.6.7获取用户登记标识ID 301
10.6.8将指定的窗口带至窗口列表顶部 301
10.6.9取得驱动器的卷标 302
10.6.10调用HTML格式的帮助文件 302
10.6.11关闭/打开DOS窗口 303
10.6.12获得Windows系统目录 303
10.6.13利用左右键及回车键转移列的焦点 304
10.6.14使PowerBuilder窗口总在最上层 304
10.6.15隐藏/显示Windows的任务栏 305
10.6.16把长文件名转换为短文件名 306
10.6.17获取目录信息 306
10.7本章小结 308
第11章 数据库管理基础 309
11.1数据库的基本概念 309
11.1.1列(Column) 309
11.1.2行(Row) 309
11.1.3数据类型(Type) 309
11.1.4主键(PrimaryKey) 310
11.1.5外键(ForeignKey) 310
11.2PowerBulider的数据库接口 310
11.2.1标准数据库接口 310
11.3.1数据库画板窗口 311
11.3数据库画板 311
11.2.2专用数据库接口 311
11.3.2数据库画板功能 312
11.3.3修改数据库选项 313
11.4创建和删除数据库 313
11.4.1创建数据库 314
11.4.2删除数据库 314
11.5操作数据库表 315
11.5.1表的创建与删除 315
11.5.2定义表的属性、列的属性和扩展属性 316
11.5.3表的索引 318
11.5.4表的主键、外键 318
11.5.5操作数据 320
11.6本章小结 321
12.1数据窗口设计 322
第12章 数据窗口设计 322
12.2.1列表(Tabular) 325
12.2数据窗口显示 325
12.2.2交叉列表(Crosstab) 326
12.2.3自由格式(Freeform) 326
12.2.4统计图(Graph) 326
12.2.5表格(Grid) 327
12.2.6分组(Group) 327
12.2.7标签(Label) 327
12.2.11复合(Composite) 328
12.3数据窗口数据源 328
12.3.1QuickSelect数据源 328
12.2.10超文本(RichText) 328
12.2.9外部文本(OLE2.0) 328
12.2.8分栏(N-Up) 328
12.3.2SQLSelect数据源 329
12.3.3Query数据源 329
12.3.4External数据源 330
12.3.5StoredProcedure数据源 331
12.4操作数据窗口对象 332
12.4.1划分区域 332
12.4.2添加和删除列 332
12.4.3计算字段 333
12.4.4过滤数据 335
12.4.5数据排序 336
12.4.6指定检索数据方式 337
12.4.7增加数据窗口数据 337
12.5.1数据窗口控件的属性 341
12.5数据窗口控件的属性、事件和函数 341
12.5.2数据窗口控件的事件 342
12.5.3数据窗口控件的常用函数 344
12.6本章小结 347
第13章 数据窗口事件 348
13.1连接数据库 348
13.2数据窗口画板 349
13.2.1设计视图 349
13.2.2属性视图 350
13.2.3控件列表视图 350
13.2.4预览视图 351
13.2.6列定义视图 352
13.2.5数据视图 352
13.3使用事务对象 353
13.3.1事务对象概念及属性 353
13.3.2操作事务对象 353
13.3.3全局事务对象——SQLCA 354
13.4读取数据窗口缓冲区内容 357
13.4.1数据窗口缓冲区 357
13.4.2在数据窗口控件中读取数据 360
13.4.3利用数据列更新事件实现数据库修改 363
13.5存取数据窗口对象的属性 369
13.5.1数据窗口对象属性 369
13.5.2使用函数存取对象属性 369
13.6.1共享概述 370
13.6.2共享条件 370
13.5.3使用表达式存取对象属性 370
13.6共享数据窗口缓冲区 370
13.6.3数据共享应用 371
13.6.4数据窗口函数对共享的影响 371
13.7本章小结 372
第14章 连接数据库 373
14.1概述 373
14.1.1软件安装 373
14.1.2连接到ODBC数据库 374
14.1.3专用接口的一般连接步骤 376
14.2使用数据库维护画板 378
14.2.1编写和执行SQL语句 378
14.3PowerBuilder资源库 379
14.4创建与编辑显示格式 379
14.2.2保存与读入SQL语句 379
14.4.1数值型显示格式 380
14.4.2字符串显示格式 381
14.4.3日期显示格式 382
14.4.4时间显示格式 383
14.5创建编辑风格 383
14.5.1编辑框风格(EditBox) 384
14.5.2编辑掩码风格(EditMask) 385
14.5.3复选框风格(CheckBox) 385
14.5.4单选钮风格(RadioButton) 385
14.5.5下拉列表框风格(DropDownListBox) 386
14.5.6下拉数据窗口风格(DropDownDataWindow) 386
14.6创建有效性规则 386
14.7数据库配置连接 388
14.7.2数据库设计 389
14.7.3配置数据库并连接 389
14.7.1选择数据库管理系统 389
14.8本章小结 394
第15章 数据窗口控件的属性、事件和函数 395
15.1数据窗口控件的属性 395
15.2数据窗口控件的事件 396
15.3数据窗口控件的函数 398
15.3.1AcceptText() 402
153.2CanUndo() 403
15.3.3CategoryCount() 403
15.3.4CategoryName() 404
15.3.5Clear() 404
15.3.8Copy() 405
15.3.7Clipboard() 405
15.3.6ClearValues() 405
15.3.9CopyRTF() 406
15.3.10Create() 406
15.3.11CrosstabDialog() 408
153.12Cut() 409
15.3.13DataCount() 409
15.3.14DBCancel() 410
15.3.15DBErrorCode() 411
15.3.16DBErrorMessage() 411
15.3.17DeletedCount() 411
15.3.18DeleteRow() 411
15.3.19Describe() 412
15.3.20Filter() 415
15.3.22Find() 416
15.3.21FilteredCount() 416
15.3.23FindCategory() 418
15.3.24FindGroupChange() 418
15.3.25FindNext() 419
15.3.26FindRequired() 419
15.3.27FindSeries() 420
15.3.28GenerateHTMLForm() 420
15.3.29GetBandAtPointer() 421
15.3.30GetBorderStyle() 422
15.3.31GetChild() 423
15.3.32GetClickedColumn() 424
15.3.33GetColumn() 424
15.3.34GetColumnName() 425
15.3.35GetData() 425
15.3.37GetDataStyle() 426
15.3.36GetDataPieExplode() 426
15.3.38GetDataValue() 429
15.3.39GetFormat() 430
15.340GetItemDate() 430
15.3.41GetItemDateTime() 432
15.3.42GetItemDecimal() 433
15.3.43GetItemNumber() 434
15.3.44GetItemStatus() 436
15.3.45GetItemString() 437
15.3.46GetItemTime() 438
15.3.47GetMessageText() 439
15.3.48GetNextModified() 439
15.3.49GetObjectAtPointer() 440
15.3.51GetSelectedRow() 441
15.3.50GetRow() 441
15.3.52GetSeriesStyle() 442
15.3.53GetSQLPreview() 444
15.3.54GetSQLSelect() 445
15.3.55GetText() 445
15.3.56GetTrans() 446
15.3.57GetUpdateStatus() 447
15.3.58GetValidate() 447
15.3.59GetValue() 447
15.3.60GroupCalc() 448
15.3.61ImportClipboard() 449
15.3.62ImportFile() 449
15.3.63ImportString() 450
15.3.64InsertDocument() 451
15.3.65InsertRow() 452
15.3.66IsSelected() 452
15.3.67LineCount() 453
15.3.68ModifiedCount() 454
15.3.69Modify() 454
15.3.70ObjectAtPointer() 462
15.3.71OLEActivate() 463
15.3.72Paste() 464
15.3.73PasteRTF() 464
15.3.74Position() 464
15.3.75Print() 465
15.3.77ReplaceText() 467
15.3.78ReselectRow() 467
15.3.76PrintCancel() 467
15.3.79Reset() 468
15.3.80ResetDataColors() 469
15.3.81ResetTransObject() 469
15.3.82ResetUpdate() 470
15.3.83Retrieve() 470
15.3.84RowCount() 472
15.3.85RowsCopy() 473
15.3.86RowsDiscard() 474
15.3.87RowsMove() 475
15.3.88SaveAs() 476
15.3.89Scroll() 478
15.3.90ScrollNextPage() 478
15.3.92ScrollPriorPage() 479
15.3.91ScrollNextRow() 479
15.3.93ScrollPriorRow() 480
15.3.94ScrollToRow() 480
15.3.95SelectedLength() 481
15.3.96SelectedLine() 481
15.3.97SelectedStart() 481
15.3.98SelectedText() 482
15.3.99SelectRow() 482
15.3.100SelectText() 483
15.3.101SelectTextAll() 484
15.3.102SelectTextLine() 484
15.3.103SelectTextWord() 484
15.3.104SeriesCount() 484
15.3.107SetBorderStyle() 485
15.3.106SetActionCode() 485
15.3.105SeriesName() 485
15.3.108SetColumn() 486
15.3.109SetDataPieExplode() 487
15.3.110SetDataStyle() 487
15.3.111SetDetailHeight() 489
15.3.112SetFilter() 490
15.3.113SetFormat() 491
15.3.114SetItem() 492
15.3.115SetItemStatus() 492
15.3.116SetRow() 494
15.3.117SetRowFocusIndicator() 494
15.3.118SetSeriesStyle() 495
15.3.119SetSort() 497
15.3.120SetSQLPreview() 498
15.3.121SetSQLSelect() 499
15.3.122SetTabOrder() 500
15.3.123SetText() 500
15.3.124SetTrans() 501
15.3.125SetTransObject() 502
15.3.126SetValidate() 504
15.3.127SetValue() 505
15.3.128ShareData() 506
15.3.129ShareDataOff() 508
15.3.130ShowHeadFoot() 508
15.3.131Sort() 509
15.3.132TextLine() 509
15.3.134Update() 510
15.3.133Undo() 510
15.4本章小结 511
第16章 数据窗口对象的属性、方法和函数 512
16.1数据窗口对象的属性 512
16.1.1位图(Bitmap)对象的属性 512
16.1.2按钮(Button)对象的属性 513
16.1.3列(Column)对象的属性 514
16.1.4计算域(Computedfield)对象的属性 518
16.1.5DataWindow对象的属性 520
16.1.6组框(GroupBox)对象的属性 524
16.1.7直线(Line)对象的属性 525
16.1.8椭圆(Oval)、矩形(Rectangle)、圆角矩形(RoundRectangle)对象的属性 526
16.1.9报表(Report)对象的属性 526
16.1.10表(TableBlob)对象的属性 527
16.1.11文本(Text)对象的属性 528
16.2数据窗口对象属性的访问方法 529
16.2.1数据窗口属性表达式 529
16.2.2数据窗口画板表达式 531
16.2.3数据窗口对象属性的取值及其类型 532
16.2.4数据窗口对象属性表达式的出错处理 532
16.3数据窗口画板函数 533
16.3.1聚合函数 533
16.3.2数据类型检查与转换函数 546
16.3.3数据窗口信息函数 550
16.3.4日期、时间函数 554
16.3.5数值运算函数 560
16.3.6字符串操作函数 560
16.3.7交叉表函数 561
16.3.8其他画板函数 563
16.4本章小结 564
第17章 数据管道 565
17.1数据管道概述 565
17.2创建对象 565
17.2.1创建管道对象 565
17.2.2创建支撑用户对象 567
17.2.3创建窗口 568
17.3初始化操作 568
17.4启动数据管道 569
17.4.1启动管道 569
17.4.2显示管道操作的统计数据 569
17.4.4向数据库提交更新操作 570
17.4.3终止管道运行 570
17.5处理行错误 571
17.5.1使用管道错误数据窗口 571
17.5.2修复错误行 571
17.5.3放弃错误行 571
17.6结束操作 572
17.7数据库之间的数据传递 572
17.8派生数据管道子对象 575
17.9系统集成 578
17.10本章小结 581
第18章 数据存储与图表处理 582
18.1数据存储 582
18.1.1数据存储概述 582
18.1.2使用数据存储 583
18.1.3使用定制的数据存储对象 584
18.1.4在数据存储中存取并操纵数据 586
18.1.5信息共享 587
18.2使用图表 588
18.2.1改变图表属性 589
18.2.2访问数据属性 590
18.2.3ObjectAtPointer函数 592
18.2.4使用图表控件 593
18.3绘制图形 595
18.3.1绘制基于DataWindow的图形 595
18.3.2绘制基于Windows.SDK的图形 597
18.3.3绘制基于图形组件的图形 601
18.4本章小结 603
第19章 数据库开发常见问题与技巧 604
19.1数据窗口设计 604
19.1.1在数据窗口中任意角度显示文本 604
19.1.2在数据窗口中调整列顺序 604
19.1.3使数据窗口中的被选中行具有更好的外观 604
19.1.4在DataWindow中多行显示Footer 605
19.1.5单击数据窗口的列时标题的边框由3Draise改为3Dlower 605
19.1.6在程序中为数据窗口添加计算域或line 606
19.1.7高亮显示分组条 606
19.1.8在程序中随意修改数据窗口对象的各个带区、标题或格式等 606
19.1.9在改变列的字体颜色时提醒用户此列已做修改 607
19.1.10用PowerBuilder数据窗口特征制作进度条 607
19.1.12动态地改变数据窗口中的图形样式 609
19.1.13在数据窗口中调出定时器实现动画 609
19.1.11美化数据窗口的显示效果 609
19.1.14刷新下拉式数据窗口 610
19.1.15实现在下拉列表控件中增加数据窗口中header部分的内容 610
19.1.16在数据窗口中直接嵌入数据 611
19.1.17在选择下拉数据窗口后动态保存 611
19.1.18取得一个嵌套的数据窗口句柄 611
19.1.19取得数据窗口中下拉数据窗口的显示值 611
19.1.20实现图片按钮的Mousemove事件 612
19.1.21表的定义发生改变后同步数据窗口列 612
19.1.22在一个数据窗口中修改多个表 613
19.1.23在数据窗口中限定某列不可编辑 614
19.1.26检测数据窗口中数据是否被修改 615
19.1.25在数据窗口中快速删除多行 615
19.1.24在窗口退出时检测数据是否被修改 615
19.1.27构造数据窗口源代码 616
19.1.28创建一个动态的数据窗口对象 616
19.1.29数据窗口如何自动匹配多个Retrieve参数 617
19.1.30动态改变Grid数据窗口的字段显示顺序 618
19.1.31终止Retreive 619
19.1.32使用querymode 619
19.1.33得到Crosstab中的列名 620
19.1.34在PowerBuilder的数据窗口中捕捉dropdowndw列的上下键事件 621
19.1.35给Grid样式添加一标题 622
19.1.36在数据窗口中用左箭头实现shift+tab 622
19.1.39设置数据窗口Boolean型属性 623
19.1.40解决“双消息框”问题 623
19.1.37设置数据窗口自动折行 623
19.1.38使可编辑的数据窗口只读 623
19.1.41编写行选择函数 624
19.1.42生成可重用的数据窗口 627
19.2配置连接数据库 629
19.2.1将运行后的SQLAnywhere7.0的窗口放到状态栏右下方的输入法旁边 629
19.2.2备份和恢复Sybase和MSSQLServer数据库 629
19.2.3PowerBuilder连接SybaseSQLServer时需要注意的问题 631
19.2.4在PowerBuilder中向Excel传递数据 632
19.2.5PowerBuilder中实现对Excel的操作 634
19.2.6使用PowerBuilder同时访问多个数据库 635
19.3数据窗口打印操作 636
19.3.1分页打印数据窗口 636
19.3.2在数据窗口每页打印固定行 636
19.3.5将数据窗口打印到文件中 637
19.3.6动态实现打印不固定的数据列 637
19.3.3使能控件在数据窗体中显示但不打印 637
19.3.4在嵌套报表类型中实现连续页号打印多个数据窗口 637
19.4使用OLE控件 638
19.4.1PowerBuilder与外界有的交互方式 638
19.4.2在应用程序中放置一个OLE控件 640
19.4.3设置OLE控件的属性 642
19.4.4激活OLE对象 643
19.4.5在PowerBuilder数据窗口中实现OLE 644
19.5本章小结 645
第20章 高级窗体设计 646
20.1主窗体菜单 646
20.1.1制作菜单 646
20.1.2建立主窗体并加载菜单 647
20.2.1MDI窗口 648
20.2MDI应用程序设计 648
20.2.2建立MDI窗口 650
20.2.3在MDI窗口中打开工作窗口 650
20.2.4MDI窗口示例 652
20.3Tab标签设计 654
20.3.1Tab标签概述 654
20.3.2定义并管理标签页 655
20.3.3定制标签控件 656
20.3.4设计自动缩放窗口控件 658
20.4使用TreeView技术 666
20.4.1TreeView概述 666
20.4.2生成TreeView项 668
20.4.3管理TreeView项 670
20.4.4管理TreeView图标 672
20.4.5利用数据窗口生成TreeView 673
20.4.6设计Treeview 673
20.5本章小结 678
第21章 用户对象和用户事件 679
21.1用户对象概述 679
21.1.1面向对象编程 679
21.1.2用户对象的分类 680
21.2创建用户对象 682
21.2.1创建标准可视用户对象 682
21.2.2创建定制可视用户对象 684
21.2.3创建外部可视用户对象 685
21.2.4创建定制类用户对象 686
21.2.5创建标准类用户对象 687
21.2.6继承创建 688
21.3.1插入不可视用户对象 689
21.3定制用户对象 689
21.3.2插入结构 691
21.3.3插入函数 691
21.3.4插入事件 694
21.4使用用户对象 694
21.4.1使用可视用户对象 694
21.4.2使用类用户对象 696
21.5窗口与用户对象间的通信 701
21.5.1直接引用用户对象属性 701
21.5.2使用函数 702
21.5.3使用用户事件 703
21.6使用用户对象制作通用对话框 704
21.6.3建立客户类 705
21.6.1建立应用 705
21.6.2建立函数 705
21.6.4建立窗体 712
21.6.5设置控件及其属性 712
21.6.6编写窗体和各个控件的脚本 712
21.7本章小结 715
第22章 管理库文件 716
22.1库文件概述 716
22.1.1库文件 716
22.1.2库画板 717
22.2管理PBL库 719
22.2.1创建和删除库 719
22.2.2创建动态库 720
22.2.4设置搜索路径 721
22.2.3优化库文件 721
22.2.5重建与移植库 723
22.3操作库与维护库及其对象 723
22.3.1打开和预览对象 723
22.3.2复制、移动、粘贴和删除对象 723
22.3.3搜索目标程序、库和对象 724
22.3.4导入和导出对象 725
22.3.5生成库内容报告 726
22.4根据已有的库文件创建目标 727
22.5本章小结 729
第23章 PowerBuilder的Internet开发 730
23.1PowerBuilder9.0的Internet特性 730
23.1.1DataWindow插件 730
23.1.4从数据窗口到HTML 731
23.1.3WindowActiveX插件 731
23.1.2Window插件 731
23.2PowerBuilder的邮件功能 732
23.2.1MailSession对象 733
23.2.2MailMessage对象 733
23.2.3MailAddess()函数 733
23.2.4MailDeleteMessage()函数 734
23.2.5MailGetMessages()函数 734
23.2.6MailHandle()函数 735
23.2.7MailLogOn()函数 735
23.2.8MailLogOff()函数 736
23.2.9MailRecipientDetails()函数 736
23.2.10MailReadMessage()函数 736
23.2.11MailResolveRecipient()函数 737
23.3在IE中显示PowerBuilder报表 738
23.2.12MailSaveMessage()函数 738
23.2.13MailSend()函数 738
23.3.1编程思路 739
23.3.2编程步骤 739
23.4在IE中显示PowerBuilder的Child类型的窗口对象 744
23.5使用WindowActiveX显示PowerBuilder窗口对象 750
23.6本章小结 753
第24章 PowerBuilder自动服务器 754
24.1自动化服务器概述 754
24.2使用用户对象作为自动化服务器 755
24.2.1创建类用户对象 755
24.2.2建立对象的运行库 755
24.2.4编写客户代码 756
24.2.3注册对象 756
24.3PowerBuider作为自动化服务器 757
24.3.1定义所需访问的对象 757
24.3.2生成运行库 758
24.3.3编写客户代码 758
24.4创建并使用命名服务器 760
24.5通过自动化访问远程对象 761
24.6用户对象及注册表 762
24.6.1GUID、CLSID和ProgID标识 762
24.6.2对象信息存储地点 762
24.6.3创建注册信息 764
24.6.4分发自动化服务器应用 765
24.6.5PowerBuilder.Application服务器对象 766
24.7本章小结 767