《PowerBuilder 应用程序开发指南》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)Kent marsh,(美)Bruce Braunstein著;廖卫东等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1996
  • ISBN:7302021619
  • 页数:648 页
图书介绍:

目录 1

第1部分 入门 1

前言 1

第1章 PowerBuilder开发过程介绍 1

鸣谢 3

1.1 小结 3

第2章 成为有能力的开发人员 4

2.1 聪明的学习方法——边用边学 4

2.2 越过学习曲线 4

作者简介 5

导引 6

2.3 快捷键和热键 6

2.4 合理的设置配备 8

2.5 理想的工作环境 9

2.6 成功的人员组合 9

2.8 降低效率的因素 10

2.7 其他资料 10

2.9 小结 11

第3章 事件驱动程序的设计方法 12

3.1 目标 12

3.2 设计窗口对象 14

3.2.1 窗口属性 19

3.2.2 窗口事件 26

3.2.3 窗口函数 35

3.2.4 多态性 45

3.2.5 窗口控制 46

3.3 编码数据窗口控制 49

3.3.1 编辑框 51

3.3.2 数据窗口属性 53

3.3.3 数据窗口事件 55

3.3.4 数据窗口函数 58

3.4 PowerSoft程序设计 65

3.4.1 保留字 65

3.4.2 变量声明 67

3.4.3 变量辖域 70

3.5 小结 78

第2部分 建立PowerBuilder应用程序 80

第4章 使用应用框架进行面向对象的开发 80

4.1 基础库 80

4.2 接口父类库 81

4.3 具体类库 82

4.4 一个针对应用对象的基础库 82

4.5 接口父类库 84

4.6 具体类库 86

4.7 服务器对象及协作类 88

4.8 面向对象开发的益处 88

4.9 小结 89

第5章 总体设计 90

5.1 MDI与SDI 90

5.2 应用安全性 91

5.2.1 控制应用的访问权限 92

5.2.2 如何控制进程的访问权限 93

5.2.3 控制数据访问 94

5.2.4 协同应用和数据库版本 96

5.3 用户界面标准 99

5.3.1 直观的应用 100

5.3.2 一个安全的应用 104

5.4 报表需求 107

5.4.1 报表分类 108

5.4.2 报表规范表格 110

5.4.3 报表的创建 111

5.4.4 报表展示 111

5.4.5 报表组织 113

5.4.7 报表的权限 113

5.4.6 报表的权限 114

5.5 系统需求 114

5.6 菜单系统设计 115

5.7 企业范围的考虑 116

5.8 小结 117

第6章 命名和编程指南 118

6.1 两字母应用辖域标识(TLASI) 118

6.2 命名数据库对象 119

6.2.1 表和视图 120

6.2.2 字段 121

6.2.3 触发器 122

6.2.4 存储过程 124

6.3 命名PowerBuilder对象 124

6.3.1 库的命名 125

6.3.2 窗口命名 125

6.3.3 数据窗口对象命名 126

6.3.4 菜单命名 127

6.3.5 用户对象命名 128

6.4 PowerScript编程准则 129

6.4.1 变量的命名 129

6.4.2 函数的命名 132

6.4.3 script程序头 133

6.4.4 变量声明 135

6.4.5 变量访问声明 135

6.4.6 编码标准 137

6.5 扩充属性 140

6.6 小结 140

第7章 设计数据库接口 141

7.1 锁定 142

7.1.1 不锁定 142

7.1.2 悲观锁定 142

7.1.3 乐观锁定 142

7.1.4 乐观锁校验字段 143

7.2 事务处理 145

7.3 错误处理 147

7.3.1 乐观锁定错误 147

7.3.4 数据约束错误 148

7.3.3 数据完整性错误 148

7.3.2 悲观锁定错误 148

7.4 触发器的使用 149

7.5 触发器存在的问题 149

7.6 突发性表错误 150

7.7 使用存储过程 150

7.8 实施数据库约束 151

7.9 数据库角色的使用 152

7.10 小结 153

第8章 PowerBuilder中面向对象的构件块 154

8.1 子类 157

8.1.1 实例 157

8.2 搜索窗口 158

8.2.1 选取列表 159

8.2.2 查阅窗口 161

8.2.3 查询窗口 161

8.2.4 向下分级(Drill Down) 163

8.3 数据录入窗口 164

8.3.1 基本录入窗口 167

8.3.2 子集录入窗口 169

8.3.3 纲要/明细窗口 169

8.3.4 匹配程序窗口 171

8.3.5 多表录入窗口 171

8.3.6 转换器窗口 173

8.3.7 分布式更新 173

8.4 导航和选项窗口 175

8.4.1 导航窗口 175

8.4.2 用户参数选择 176

8.4.3 选项窗口 176

8.5 特殊窗口 177

8.5.1 Splash窗口 177

8.5.2 About窗口 178

8.5.3 登录窗口 182

8.6 全局函数 183

8.6.1 有效性验证 186

8.6.2 过程 188

8.6.3 计算 189

8.6.4 进程 190

8.7 用户对象 190

8.7.1 标准可视用户对象 191

8.7.2 自定义的可视用户对象 191

8.7.3 标准类 191

8.7.4 自定义类 191

8.8 应用报表 192

8.9 菜单 193

8.10 小结 195

第9章 自底向上创建应用程序 196

9.1 数据库对象 196

9.1.1 开发人员和数据管理员 197

9.1.2 表 198

9.1.3 约束 202

9.2.1 触发器 206

9.2 触发器与存储过程 206

9.2.2 存储过程 207

9.3 索引 207

9.4 优化器(Optimizers) 208

9.4.1 基于规则的优化器 209

9.4.2 基于代价的优化器 209

9.5 扩充属性 210

9.5.1 编辑风格 211

9.5.2 显示格式 213

9.5.3 有效性验证 214

9.6 应用程序的库结构 218

9.6.1 库内对象的命名 219

9.7 小结 221

第10章 辅助数据窗口 223

10.1 下拉数据窗口 223

10.1.1 一个简单的下拉数据窗口对象 224

10.1.2 创建一个下拉数据窗口编辑风格 229

10.1.3 其他更复杂的数据窗口 234

10.2 编码表维护数据窗口 239

10.3 管理表数据窗口 241

10.3.1 建立一个管理数据窗口对象 242

10.4 小结 251

第3部分 应用程序范例 252

第11章 一个公司/名册应用系统 252

11.1 详细设计 253

11.1.1 规格说明分析 254

11.1.2 对象仓库 260

11.1.3 对象索引 260

11.1.4 可提交的详细设计报告 261

11.2 创建阶段的开始 261

11.3 实现进度安排 263

11.4 创建高级对象 264

11.5 应用库/对象/MDI框架/MDI菜单 265

11.7 显示格式 271

11.6 建立扩充属性 271

11.8 编辑风格 272

11.8.1 有效性验证 281

11.9 创建数据窗口对象 283

11.10 创建接口父类对象 285

11.11 状态码录入窗口—— w_state_de 289

11.12 类型码录入窗口——w_type_de 293

11.13 公司数据录入窗口——w_comp_de 295

11.14 名册录入窗口——w_cont_de 304

11.15 把名册录入窗口连接至公司录入窗口——w_comp_de 307

11.16 公司记录查询窗口——w_comp_lu 324

11.17 增加屏幕打印报表 335

11.18 数据窗口屏幕打印报表 336

11.19 合成数据窗口屏幕打印报表 336

11.20 “Print Screen”屏幕打印报表 336

11.21 小结 341

第12章 销售订单录入应用 344

12.1 建立销售订单录入应用的框架 346

12.1.1 设置销售订单录入应用环境 347

12.1.2 建立“应用打开”事件的对象 351

12.2 可选的多表录入窗口 369

12.3 优化子数据窗口 376

12.3.1 bw_DropDowns的函数 377

12.4 雇员数据录入 379

12.5 建立一个用于继承的Master/Detail数据录入窗口 391

12.6 小结 424

第13章 应用报表 427

13.1 创建报表的完整过程 427

13.1.1 建立SQL语句 427

13.1.2 设计报表布局 429

13.1.3 预览(测试)报表 431

13.2 报表的组织 432

13.3 报表命名法 433

13.4 PowerBuilder 4新增的报表性能 434

13.4.1 嵌套报表 435

13.4.2 合成数据窗口报表 440

13.4.3 存储报表文件 443

13.5 提高基于SQL的报表的效率 446

13.5.1 如何管理系统代价高的报表 446

13.5.2 一个高效率的数据库环境 447

13.5.3 优化程序的使用 447

13.5.4 优化连接操作 448

13.5.5 优化“并”操作 448

13.6 如何把报表结合进应用程序 450

13.6.1 报表选择 450

13.6.2 报表检索参数录入 453

13.6.3 报表“展示”选项 455

13.7 PSR浏览程序 455

13.8 应用报表实例 456

13.9 标准报表标题对象 456

13.10 小结 458

第4部分 高级话题 460

第14章 DBMS事务管理 460

14.1 DBMS事务对象 460

14.1.1 DBMS连接 460

14.1.2 SQL执行的返回数据 461

14.2 PowerScript的事务管理语句 463

14.2.1 COMMIT和ROLLBACK 464

14.2.2 CONNECT和DISCONNECT 465

14.3 多个事务对象的处理 465

14.3.1 数据窗口的事务函数 467

14.4 逻辑事务 474

14.4.1 更新多个数据窗口 475

14.5 并发控制 477

14.5.1 乐观锁与悲观锁的比较 477

14.5.2 使用一个乐观锁定字段 478

14.6.4 嵌套的响应窗口 480

14.6.3 共享的数据窗口 480

14.7 小结 480

14.6.1 多数据窗口 480

14.6.2 子窗口和弹出式窗口 480

14.6 多窗口事务 480

第15章 客户机/服务器计算模式 482

15.1 经济因素 482

15.2 技术因素 482

15.3 企业方面的要求 483

15.4 数据处理方面的要求 483

15.5 可用性方面的要求 484

15.6 客户机/服务器程序设计 484

15.6.1 减少数据库请求的次数 485

15.6.2 尽可能减少返回结果 485

15.6.3 利用存储过程来优化性能 486

15.6.4 集中实施企业规则 486

15.7 独立于数据库的应用程序 489

15.8 小结 491

第16章 数据有效性验证 492

16.1 利用控制来限制选择 492

16.2 编辑风格 494

16.2.1 键入式编辑风格 494

16.3 数据窗口字段的有效性验证 495

16.3.1 在输入时验证数据的有效性 495

16.3.2 在更新前验证数据的有效性 496

16.3.3 必备域 496

16.3.4 自定义有效性验证函数 497

16.4 数据库有效性验证 499

16.5 小结 501

第17章 数据窗口编码的高级技术 502

17.1 SQL预览 502

17.2 仅取所需 503

17.3 数据窗口缓冲区 504

17.4 记录/字段的状态 506

17.5 使用子数据窗口 507

17.6 动态数据窗口 509

17.6.1 创建动态数据窗口 509

17.6.2 动态数据窗口的缺省设置 511

17.7 Modify()和Describe()函数 512

17.7.1 多个Modify()和Describe()语句的组合 512

17.7.2 描述字段的数据类型 513

17.7.3 动态地创建并撤消数据窗口里的对象 513

17.7.4 数据窗口标题颜色 515

17.7.5 改变正文属性 515

17.7.6 隐藏/显示字段和标号 516

17.7.7 修改字段的制表键顺序 517

17.7.8 改变数据窗口的SQL语句 519

17.8 把数据源由SQL SELECT改变为存储过程 522

17.9 查询模式 523

17.9.3 关闭查询模式 525

17.9.2 显示查询结果 525

17.9.1 查询模式编辑风格 525

17.9.4 在别的数据窗口里显示结果 526

17.9.5 查询模式下的QuerySort选项 526

17.10 数据窗口层次 526

17.11 将Enter键用作Tab键 528

17.12 属性的条件表达式 529

17.13 两个数据窗口之间的多记录拖放 530

17.14 小结 533

第18章 高级子数据窗口 534

18.1 获取子数据窗口引用——GetChild() 536

18.2 共享子数据窗口 536

18.3 从属子数据窗口 537

18.4 筛选并排序子数据窗口 538

18.5 小结 539

第19章 面向对象的术语 540

19.1 对象(Objects) 541

19.2 类(Classes) 542

19.3 实例 544

19.4 方法、函数和属性 545

19.5 封装 546

19.6 多态性 546

19.6.1 函数重载 546

19.7 指针 547

19.8 对象类型 547

19.9 使用的其他术语 548

19.9.1 传植及引用 549

19.9.2 消息 549

19.9.3 触发与邮寄 550

19.9.4 全局,私有,受保护和公共 550

19.10 小结 551

第20章 PowerBuilder的面向对象特征 553

20.1 PowerObject的层次 553

20.1.1 类浏览器 555

20.2.1 属性的继承 557

20.2 继承 557

20.2.2 函数的继承 560

20.2.3 事件的继承 560

20.3 多态性 563

20.4 封装性 564

20.4.1 窗口 565

20.4.2 菜单 566

20.4.3 用户对象 568

20.4.4 可视用户对象 569

20.4.5 非可视用户对象 570

20.5 小结 573

第21章 面向对象技术——可重用软件设计 574

第22章 管理PowerBuilder开发项目 582

22.1 小组角色 582

22.1.1 计划人员/进度安排人员 582

22.1.2 应用开发人员 584

22.1.4 测试人员 585

22.1.3 数据库管理员 585

22.1.5 用户代表 586

22.1.6 培训人员 587

22.1.7 文档专家 588

22.1.8 图象设计人员 588

22.1.9 网络管理员 588

22.2 PowerBuilder项目的技术需求 588

22.2.1 PC 588

22.2.2 服务器 589

22.2.3 网络 589

22.3 项目阶段 589

22.3.1 瀑布型与螺旋型 589

22.3.2 设计 590

22.3.3 规格说明 590

22.3.4 建立 590

22.3.5 数据转换 591

22.3.6 实现 591

22.3.7 后实现阶段 592

22.3.8 编制文档 593

22.3.9 首次从事PowerBuilder应用开发时的注意事项 593

22.3.10 培训 593

22.3.11 顾问 594

22.3.12 类库 594

22.3.13 管理层的支持 595

22.3.14 系统属于用户 595

22.4 小结 595

第5部分 附录 596

附录A PowerBuilder版本4中的新特性 596

A.1 性能 596

A.2 PowerTips 596

A.3 数据管道 596

A.4 增强报表 597

A.4.1 合成报表 597

A.5.3 针对Intersolv的PVCS源代码管理系统的增强接口 598

A.5.2 对象链接和嵌入(OLE)2.0支持 598

A.5.4 多应用开发 598

A.5 对象特性 598

A.5.1 面向对象 598

A.4.2 嵌套报表 598

A.5.5 PVCS报表 599

A.5.6 删除源代码存档 599

A.6 有关数据库方面的增强措施 599

A.6.1 Oracle存储过程和数据窗口 599

A.6.2 增加的Oracle 7数组取出大小 600

A.6.3 Bind变量 600

A.6.4 开放数据库连接(ODBC)2.0支持 600

A.6.5 Watcom存储过程支持 600

A.7 数据窗口对象 600

A.7.1 改进的SQL SELECT界面 601

A.7.2 有条件地设置属性 601

A.7.3 新的数据窗口属性 601

A.7.7 多列报表 602

A.7.6 New Print对话框 602

A.7.4 新的数据窗口对象属性 602

A.7.5 Preview RetainData 602

A.7.8 打印预览的附加功能 603

A.7.9 引用聚合字段和检索参数 603

A.7.10 压缩重复执行 603

A.7.11 滑动字段属性 603

A.8 应用程序Painter 603

A.8.1 Quick App 603

A.8.2 新属性 604

A.8.3 缺省全局变量类型 604

A.8.4 Create Executable对话框 604

A.9 WATCOM 4.0 604

A.10 数据库Painter 605

A.10.3 Database Administrator——Watcom SQL 605

A.10.2 表的列表缓存 605

A.10.1 表/字段显示 605

A.9.3 数据库触发器 605

A.9.4 向后兼容 605

A.9.2 存储过程 605

A.9.1 Cascade删除 605

A.11 菜单Painter 606

A.11.1 菜单栏项 606

A.11.2 菜单项 606

A.12 用户对象 606

A.12.1 标准类对象 606

A.12.2 运行时创建的可视对象 606

A.12.3 Change Menu功能 606

A.13.4 用于SingleLine Edit和MultiLine控件的HideSelection属性 607

A.13.3 ArrangeSheets函数TileHorizontal!枚举数据类型值 607

A.13.5 列表框控制属性 607

A.14 应用程序提交 607

A.13.1 TriggerEvent和PostEvent 607

A.13 窗口对象 607

A.13.2 窗口对象的ToolbarMoved事件 607

A.14.1 项目Painter 608

A.14.2 Installation Diskette Builder——PBSETUP.EXE 608

A.15 函数 608

A.15.1 GetApplication 608

A.15.2 GetEnvironment 608

A.15.5 数据窗口函数 609

A.15.3 PrintScreen 609

A.15.4 SetLibraryList 609

A.15.6 更名函数 610

附录B 基础对象 612

B.1 模板对象 614

附录C 基础对象参考 616

C.1 函数 616

C.1.1 bf_centersheet 616

C.1.3 bf_Edit 617

C.1.2 bf_checkdatestr 617

C.1.4 bf_GetDateRange 618

C.1.5 bf_GetMessage 618

C.1.6 bf_GetTransObject 618

C.1.7 bf_InitBGA 619

C.1.8 bf_IsEntered 619

C.1.9 bf_LoadCodeTable 619

C.1.10 bf_Login 620

C.1.11 bf_MessageBox 620

C.1.12 bf_OpenHelp 620

C.1.13 bf_OpenMultiValueSelector 621

C.1.14 bf_OpenMultiValueSelectorName 621

C.1.15 bf_OpenSheet 622

C.1.16 bf_OpenResp 622

C.1.17 bf_OpenSheetMulti 623

C.1.18 bf_RefreshCodeTables 623

C.1.20 bf_SetSheet 624

C.1.21 bf_Share_DDW 624

C.1.19 bf_RegainLocks 624

C.1.22 bf_Show TimeStamp 625

C.1.23 bf_ValidateDateStr 625

C.2 菜单 626

C.2.1 bm_mdi 626

C.3 窗口 627

C.3.1 bw_about 627

C.3.2 bw_child 627

C.3.3 bw_daterange 627

C.3.4 bw_dropdowns 628

C.3.5 bw_login 628

C.3.6 bw_main,bw_resp 629

C.3.7 bw_main_maint,bw_resp_maint 632

C.3.8 bw_main_maint_codetable,bw_resp_maint_codetable 633

C.3.9 bw_mdiframe 633

C.3.11 bw_multivalueselector 634

C.3.10 bw_messagebox 634

C.3.12 bw_optimisticlockerror 635

C.3.13 bw_popup 635

C.3.14 bw_resp_multiselector 636

C.3.15 bw_resp_multiseletorname 636

C.3.16 bw_resp_shared 637

C.3.17 bw_splash 637

C.3.19 bw_pbase 638

C.3.18 bw_sql_preview 638

附录D PowerBase对象事件样例 639

D.1 bw_main 639

D.1.1 be_Initialize 639

D.1.2 Activate 639

D.2 bw_main_maint 639

D.2.1 be_AfterDelete 639

D.2.2 be_Approval 640

D.2.3 be_BeforeDelete 640

D.2.4 be_BeforeUpdate 641

D.2.5 be_GlobalInit 642

D.2.5 be_GlobalInit 642

D.2.6 be_Initialize 643

D.2.7 be_LockForUpdate 643

D.2.7 be_LockForUpdate 643

D.2.6 be_Initialize 643

D.2.8 be_LookUp 644

D.2.9 be_Message 644

D.2.9 be_Message 644

D.2.8 be_LookUp 644

D.2.10 be_Retrieve 645

D.2.11 be_Save 645

D.2.11 be_Save 645

D.2.10 be_Retrieve 645

D.2.13 be_Validate 646

D.2.12 be_UpdateMode 646

D.2.14 be_ValidateRelatedItems 646

D.3 BUO_MAINT 646

D.3.1 be_ValidateColumn 646

D.2.15 be_SelectMode 646

D.3.1 be_ValidateColumn 646

D.3 BUO_MAINT 646

D.2.15 be_SelectMode 646

D.2.14 be_ValidateRelatedItems 646

D.2.13 be_Validate 646

D.2.12 be_UpdateMode 646

D.4 全局函数 647

D.4.2 bf_CenterSheet() 647

D.4.1 bf_Login() 647

D.4.3 bf_CheckDateStr() 647

D.4.3 bf_CheckDateStr() 647

D.4.2 bf_CenterSheet() 647

D.4.1 bf_Login() 647

D.4 全局函数 647