1、PowerBuilder 实例化指导教程(第二版)余建国 主编郑州航空工业管理学院2第一版前言我国高校经过连续几年的大规模扩招,在校生人数急剧增加,毕业生就业压力随之增大。对于各高校来说,如何真正落实素质教育进而提高学生的就业竞争力已成为当前面临的重大课题。具体到计算机领域,随着 IT 产业的高速发展,计算机在社会各领域的广泛应用,社会越来越需要大量的高级应用型软件人才,如何培养学生的动手能力、实践能力、创新能力就成为当前素质教育的一个重要体现。面向对象的软件开发技术以其高质量、高速度、可重用、适于编写大规模程序等特点,已成为当代程序设计的主流。各高校计算机专业纷纷开设了相应课程(如面向对象技
2、术、C+、Delphi、PowerBuilder 等) 。然而,受传统教学思想、教学模式的影响,无论是教材的编撰,还是教学方式的组织仍习惯于过去重理论、轻实践,重讲解、轻启发与创新的思维上。在教学过程中只讲不练或多讲少练,导致学生很难将面向对象的软件开发技术应用于软件系统开发当中。动手能力和创新意识差,已经无法适应新世纪对应用型软件人才的要求。经过数年的教学、课题研究与软件开发实践,我们领悟到,如果以一个现实世界的应用系统实例开发过程为主线,并在其中贯穿基于面向对象开发技术的概念、思想、方法与技巧,引导学生将面向对象技术融入应用系统开发的全过程中,能够实现讲与练、理论与实践的协调统一,将素质教
3、育落到实处。基于此思路,结合我们具体教授面向对象开发技术课程和相关研究课题的一些感受,我们编著了这本PowerBuilder 实例化指导教程 ,旨在为我院计算机科学与技术专业相似课程的教学改革提供一种新的思路,为学生学习本类课程提供一种新的方法。教程从整体上可分为三大部分:第一部分包括第一、第二两章内容,分别从宿舍管理信息系统的系统分析与设计,以及掌握 PowerBuilder 的集成开发环境诸方面为整个系统的实现做准备。第二部分内容涉及面向对象技术在应用系统实现中的应用,涵盖第三章至第十三章,其内容按照系统开发的步骤并结合 PowerBuilder 的主要知识点逐章展开,引导学生系统地掌握面
4、向对象技术。第十四章构成该教程的第三部分,其中提供了数个有一定难度的系统设计题目,目的在于为不同层次的学生提供一个思考问题的空间。该教程有以下特点:1、 注重 PowerBuilder 的主要知识点的覆盖教程中宿舍管理信息系统的设计充分考虑了 PowerBuilder 的各主要知识点,涉及数据库的创建与连接、窗口和常用控件的设计,以及数据窗口对象的创建与使用。2、 体现基于 PowerBuilder 的面向对象应用系统开发的一般过程该教程的整体结构体现用 PowerBuilder 开发一个完整的中小规模应用系统的具体过程。学生仿照宿舍管理系统的开发过程,再开发其它实际应用系统时就变得容易多了。
5、3、 体现一般数据库管理软件结构设计的共性教程中提及的宿舍管理系统虽然是一个小规模的数据库管理应用系统,但却涵盖了一般数据库管理软件结构设计的共同特征。例如,软件封面的设计,密码验证窗口的设计,主窗口的II设计,菜单权限的设计,数据管理窗口的设计,查询统计的设计,帮助系统的设计等等,在其它数据库管理应用系统的设计中同样也会遇到。4、 强调举一反三、启发创新在培养学生基本能力的基础上,该教程注重发挥学生的主观能动性,采用启发引导的方式,在学生完成每一个实验内容的基础上,以思考和练习的方式引导学生进一步拓宽开发思维和视野,充分挖掘学生的创新思维和创新能力。这也是本教程的最大特点。作者对教程中的实验
6、作了精心地设计。每一个实验包括五部分:目的和要求、上机准备、界面外观及功能要求、上机步骤、思考和练习。其中,目的和要求简要概述了本实验需要掌握的 PowerBuilder 知识点和系统开发的方法和内容;上机准备介绍了上机前学生应该具备的知识、素材和软件等;界面外观及功能要求则以形象直观的界面和精炼的文字,说明在本实验中应采用的方法、达到的效果以及实现的功能;上机步骤说明如何具体实现界面外观及功能要求规定的内容;实验中列出的思考和练习其目的在于,从不同角度检查学生掌握知识的广度和深度,进一步启发学生的创新思维和创新能力。为了使学生更好地掌握面向对象技术在数据库管理软件开发中的应用,下面简要介绍教
7、程各章节的内容。第一章宿舍管理信息系统,介绍了贯穿整个教程的一个小规模宿舍管理信息系统的需求描述、总体功能设计、数据库结构设计等。设计原则是在保证软件实用性的基础上充分注重体现数据库管理软件结构共性的涵盖和 PowerBuilder 的主要知识点。第二章 PowerBuilder 的集成开发环境,从全局观的高度出发,指导学生熟悉掌握PowerBuilder 的集成开发环境,强调最基本内容的掌握。第三章应用程序的创建,通过示范创建并运行一个简单的完整的“加法计算器” 应用程序的全过程,使学生初步建立起用 PowerBuilder 开发应用程序整个过程的全局观念,并要求学生模仿创建宿舍管理系统的“
8、应用” 。第四章数据库的创建与连接,在指导学生如何进行应用系统数据库设计与实现的基础上,在 PowerBuilder 集成开发环境中实现宿舍管理系统数据库的设计与实现。第五章窗口以及简单控件编程,在掌握应用系统软件封面、密码验证窗口、主窗口的设计与实现的基础上,使学生进一步掌握 PowerBuilder 窗口对象创建和简单控件编程的方法。第六章为应用程序添加菜单,在介绍应用系统常用菜单种类、菜单设计原则与方法的基础上,创建基于 PowerBuilder 环境的宿舍管理信息系统的主菜单、主窗口的弹出式菜单。第七章常用控件编程,熟练运用静态文本、单行编辑框、编辑掩码、复选框、单选钮、下拉列表框等常
9、用控件的属性和方法是运用面向对象类程序设计语言实现应用系统界面设计的基础。本章通过使用常用控件设计实现学生基本信息录入窗口,使学生深刻掌握 PowerBuilder中各种常用控件的特点、用途和使用方法。第八章数据窗口编程(一) ,数据窗口对象是 PowerBuilder 中集成化程度最高、功能最强的一个对象,是 PowerBuilder 面向对象程序设计的最重要特征体现,是 PowerBuilder 提供给开发人员快速建立应用系统的强有力的工具,具有强大的数据操纵能力和丰富的数据表现形式。灵活运用数据窗口对象可以使学生深刻理解面向对象设计的本质,用数据窗口对象的Freeform 显示风格实现学
10、生基本信息管理窗口并体现其特点。第九章数据窗口编程(二) ,用数据窗口控件函数实现学生信息录入窗口中数据录入、删除等功能,进一步加深对 PowerBuilder 中数据窗口对象的理解。第十章数据窗口编程(三) ,查询统计和报表生成是数据库管理软件的必备功能,熟练掌III握其设计方法可以极大地缩短应用系统的开发周期,丰富的查询方式又是衡量一个应用系统可用性的重要标志之一。用 PowerBuilder 可以快速实现指定记录查询、模糊查询、多表组合查询、多条件组合查询等。本章分别用按学号查询、按姓名查询、按院系号查询、按出生日期查询来说明其实现方法。第十一章数据窗口编程(四) ,数据库管理软件通常具
11、有复杂的逻辑关系,熟练掌握各种程序设计语言的特点,可以在处理这些关系时达到事半功倍的效果。本章运用数据窗口控件函数、事件、属性的编程或访问方法以及数据窗口控件关联的方法实现宿舍管理信息系统中宿舍资源的管理。第十二章用户自定义函数、事件和对象,面向对象的程序设计的最大优点在于代码的可重用性高。在 PowerBuilder 中可通过创建用户自定义函数、事件和对象等来实现。本章分别通过创建窗口自动居中函数,在数据窗口控件中用 Enter 键代替 Tab 键实现跳转功能,包括录入、删除等按钮的可视用户对象进行说明。第十三章游标的应用,在进行数据库应用系统开发时,涉及大量的数据库操作,运用PowerBu
12、ilder 提供的 SQL 语句可丰富操作数据的手段。本章用游标实现按班号查询下拉列表框中选中的班号。第十四章实习题目选编,要想真正掌握一门数据库管理软件的开发,仅仅依葫芦画瓢做一个实例显然是不够的。由本人亲自设计并完成一个完整的应用系统的开发才能真正体会其中的一些本质问题,加深对系统开发的认识。本章提供了数个有一定难度的系统设计题目,目的在于为不同层次的学生提供一个思考问题的空间。教程内容的组织和设计是编者在课题研究和教学过程中提炼出来的,各章内容是PowerBuilder 程序设计的核心基础知识,每章列出的思考和练习是对本章内容的进一步拓展与延伸,应用系统未完成部分能够较好的体现程序设计时
13、较为复杂的逻辑关系。完整的学习此教程并完成各章的思考和练习及应用系统的未完成部分后,能够掌握 PowerBuilder 程序设计的基本原理并能够独立用 PowerBuilder 开发数据库管理软件。教程内已完成的宿舍管理信息系统的所有实例的源代码同学们可以向任课教师索取,其余源代码请同学们根据第一章要求结合各章内容自己完成。本教程可作为PowerBuilder 程序设计课程的辅助教材或实验指导教材,也可作为相关课程课程设计或毕业设计的辅助指导教材。由于尚无同类教程参考、时间仓促、作者水平有限等原因,该教程中难免存在错误和缺点,恳切希望广大读者批评指正!编著者2003 年 8 月IV目 录第一章
14、 宿舍管理信息系统 1第二章 PowerBuilder 的集成开发环境 7第三章 应用程序的创建 .10第四章 数据库的创建与连接 .15第五章 窗口以及简单控件编程 .18第六章 给应用程序添加菜单 .22第七章 常用控件编程 .28第八章 数据窗口编程(一) .36第九章 数据窗口编程(二) .40第十章 数据窗口编程(三) .45第十一章 数据窗口编程(四) .52第十二章 用户自定义函数、事件和对象 .56第十三章 游标的应用 .62第十四章 实习题目选编 .65第十五章 PowerBuilder 调试技术 .671第一章 宿舍管理信息系统一、 概述近年来,随着高校大规模的扩招,学生人
15、数急剧增加,高校宿舍管理的难度也越来越大。原始的手工或半手工管理模式已远远不能满足实际工作的需要。为了能够合理,有效的安排学生的住宿问题,对宿舍资源进行合理有效的管理,开发一套能够帮助学校相关部门更好地管理宿舍的计算机系统就成为当务之急。二、总体功能设计宿舍管理信息系统的功能模块如图 1.1 所示。图 1.1 宿舍管理信息系统的功能模块示意图1、基本数据管理管理包括学生基本信息、楼资源、宿舍资源等基本数据的管理。学生基本信息管理:完成对学生学号、姓名、性别、班级、政治面貌等学生基本信息的录入、删除、修改等功能。楼资源管理:完成对楼号、宿舍数、所在校区、值班室、楼管员、值班电话等楼信息的录入、删
16、除、修改等功能。宿舍资源管理:完成对楼号、宿舍号、床位数、现住人数、宿舍电话等宿舍信息的录入、删除、修改等功能。2、宿舍管理宿舍管理信息系统基本数据管理宿舍管理查询统计系统维护帮助学生信息管理楼资源管理宿舍资源管理宿舍分配学生信息查询宿舍信息查询空床空房查询评比情况查询权限设置数据备份系统帮助关于退房处理宿舍评比数据恢复字典维护2包括宿舍分配、退房处理、宿舍评比等宿舍工作管理。宿舍分配:完成对学校现有宿舍资源的合理分配。如新生入校时,根据宿舍的类别(男或女) 、学生性别、院系号、班号、学号等信息自动完成按性别、按院系、按班级、按个人的新生入住功能(新生宿舍自动分配功能) ;其它的临时宿舍分配工
17、作等。退房处理:完成退房的处理工作。如学生提前退学或毕业生离校时,可按宿舍号、班级号、院系号、个人等完成宿舍退还的处理工作。宿舍评比:根据输入的地面得分、门窗得分、床铺得分等信息自动完成对宿舍的卫生评定。3、查询统计包括学生信息查询、宿舍信息查询、空房空床查询、宿舍评定信息查询等日常查询统计工作。学生信息查询:主要完成的查询功能有:按学生的学号查找到某个学生的基本信息;按姓名查找到某个或某几个学生的基本信息;按班级号查找到某班所有学生的信息;按院系号查找到某院系所有学生的信息;按出生日期查找到某个出生日期范围内的所有学生信息;等等。宿舍信息查询:主要完成的查询功能有:按学生的学号查找到所住宿舍
18、及宿舍信息;按姓名查找到某个或某几个学生所住宿舍及宿舍信息;按宿舍类别(学生性别)查找到该类别的宿舍分布信息;按班级号查找到某班所有学生所住宿舍的分布信息;按院系号查找到某院系所有学生所住宿舍的分布信息;按楼号查找到某楼所有的宿舍信息;按楼号宿舍号查找到某宿舍的宿舍信息和所住学生的信息;等等。空房空床查询:主要完成的查询功能有:按楼号查找到某楼所有空房、空床位的信息;或直接查找到全校所有空房、空床位的信息;等等。宿舍评定信息查询:主要完成的查询功能有:完成宿舍评定结果的查询。按班级号查找到某班所有学生所住宿舍的评定信息;按院系号查找到某院系所有学生所住宿舍的评定信息;按楼号查找到某楼所有宿舍的
19、评定信息;按楼号宿舍号查找到某宿舍的评定信息;按评定等级查找到某等级的所有宿舍评定信息;等等。4、系统维护3包括字典维护、权限管理、数据备份、数据恢复等辅助管理功能。字典维护:完成对系统的字典信息的管理。如对政治面貌等系统中要用到的字典信息的管理。还包括对院系信息、班级信息的维护。权限管理:完成对使用本系统用户的用户信息和权限信息维护。数据备份:完成对学生基本信息、楼资源信息、宿舍资源信息、退房信息等信息的备份。数据恢复:完成对学生基本信息、楼资源信息、宿舍资源信息、退房信息等信息的恢复。5、帮助包括帮助主题、关于功能。帮助主题:对如何使用本系统和使用过程中出现的问题提供必要的帮助信息。关于:
20、有关本系统的一些开发信息、技术支持信息、版权信息等。三、 数据库结构设计1、 基本信息表(JBXXB)字段名 意义 类型 宽度 NULL PrimaryKeyXH 学号 Char 8 no XM 姓名 Char 10 noBH 班号 Char 6 noLH 楼号 Char 2 yesSSH 宿舍号 Char 4 yesXB 性别 Char 2 yesCSRQ 出生日期 Date yesZZMM 政治面貌 Char 1 yesJTZZ 家庭住址 VarChar 50 yesJTDH 家庭电话 Char 20 yesGRJL 个人简历 VarChar 200 yesZP 照片 Long binar
21、y yesSSZ 宿舍长 Char 1 yesBZ 备注 Long binary yes2、 楼表(LB)字段名 意义 类型 宽度 NULL PrimaryKeyLH 楼号 Char 2 no SSS 宿舍数 integer yesSZXQ 所在校区 Char 20 yesZBS 值班室 Char 6 yesLGY 楼管员 Char 10 yes4ZBDH 值班电话 Char 20 yes3、 院系表(YXB)字段名 意义 类型 宽度 NULL PrimaryKeyYXH 院系号 Char 2 no YXM 院系名 char 20 no4、 宿舍评比表(SSPBB)字段名 意义 类型 宽度 N
22、ULL PrimaryKeyLH 楼号 Char 2 no SSH 宿舍号 Char 4 no DMDF 地面得分 Integer yesMCDF 门窗得分 integer yesCPDF 床铺得分 Integer yesSNBSDF 室内摆设得分 Integer yesPBRQ 评比日期 Date yesPBR 评比人 char 10 yes5、 退房表(TFB)字段名 意义 类型 宽度 NULL PrimaryKeyXH 学号 Char 8 no XM 姓名 Char 10 noBH 班号 Char 6 noLH 楼号 Char 2 yesSSH 宿舍号 Char 4 yesXB 性别 C
23、har 2 yesCSRQ 出生日期 Date yesZZMM 政治面貌 Char 1 yesJTZZ 家庭住址 varChar 50 yesJTDH 家庭电话 Char 20 yesGRJL 个人简历 varChar 200 yesZP 照片 Long binary yesSSZ 宿舍长 Char 1 yesTFRQ 退房日期 Date yes5JBR 经办人 char 10 yesBZ 备注 Long binary yes6、 宿舍表(SSB)字段名 意义 类型 宽度 NULL PrimaryKeyLH 楼号 Char 2 no SSH 宿舍号 Char 4 no SSLB 宿舍类别 Ch
24、ar 1 noCWS 床位数 Integer yesXZRS 现住人数 Integer yesSSDH 宿舍电话 Char 20 yes7、 班级表(BJB)字段名 意义 类型 宽度 NULL PrimaryKeyBH 班号 Char 6 no YXH 院系号 char 2 noRXNF 入学年份 Char 4 noXZ 学制 integer yes8、 用户表(YHB)字段名 意义 类型 宽度 NULL PrimaryKeyYHM 用户名 char 10 no MM 密码 Char 8 noQX 权限 Char 1 noDJRQ 登记日期 date no9、 字典表(ZDB)字段名 意义 类
25、型 宽度 NULL PrimaryKeyLBH 类别号 Char 2 no LBM 类别名 Char 20 yesXH 序号 char 2 no NR 内容 varchar 50 no610、各表的主键、索引、外键设置如图 1.2 所示。图 1.2 各表的主键、索引、外键设置示意图7第二章 PowerBuilder 的集成开发环境【目的和要求】1、 掌握 PowerBuilder 11.0 启动和退出的方法;2、 熟悉 PowerBuilder 11.0 的集成开发环境界面;3、 熟悉 PowerBuilder 11.0 工具栏上的图标对应的菜单条及其基本操作;4、 熟悉 PowerBuild
26、er 11.0 中的主要画板及其功能; 5、 掌握 PowerBuilder 11.0 联机帮助的使用方法;6、 掌握 PowerBuilder 11.0 提供的集成示例程序 Code Examples 的使用方法。【上机准备】1、 安装 PowerBuilder 11.0 系统;2、 安装 SQLAnywhere10 数据库。【上机步骤】1、 PowerBuilder 11.0 的启动步骤:单击“开始|Sybase| PowerBuilder 11.0| PowerBuilder 11.0”2、 PowerBuilder 11.0 工具栏上的图标对应的菜单条及其基本操作步骤:熟悉各菜单下的菜
27、单项和工具栏上的图标以及它们各自的功能。3、 PowerBuilder 11.0 中的主要画板及其功能例如:打开 Database 画板并熟悉其界面、功能步骤:单击“Tools|Database Painter”或单击工具栏上的“Database”图标。4、 联机帮助的使用PowerBuilder 提供了多项帮助,但最常用的是系统内的帮助。首先单击“Help| Contents”或按“F1”键,打开 PowerBuilder 帮助主题。查找帮助信息可以通过以下两种方式:(1)通过目录查照帮助信息;可以使用 PowerBuilder Help 对话框中的“目录”标签。例如,要查找 PowerBu
28、ilder 的基本数据类型,在 PowerBuilder Help 目录标签中,双击“PowerScript Reference| PowerScript Topics|Data Types|Standard data types”,即可8查到 PowerBuilder 的基本数据类型。(2)通过索引查找帮助信息;可以使用 PowerBuilder Help 对话框中的“索引”标签。例如,要查找“Database Painter”的功能,在“键入要查找的单词的前几个字母”一栏中键入“Database Painter”,观察下面索引列表框中的变化;单击“显示”按钮,如果找到了多个相关主题,会弹出
29、选择主题对话框,选择需要查找的主题,确定后就会调出相应的帮助。在帮助中,绿色带下划线的单词表示有链接关系,单击该单词可以自动跳转到链接的地方。帮助中“Examples”按钮可以打开例子对话框;“See also”可以打开相关内容的索引,迅速转到相关的内容上去。练习使用帮助查找 Messagebox 函数的使用方法。5、 集成示例程序 Code Examples 的使用(1)打开 Code Examples 应用步骤:单击“File|Open Workspace”菜单项,在弹出的“Open Workspace”对话框中选择工作空间 pbexamples.pbw(这里完整的路径名和文件名为 C:P
30、rogram FilesSybasePowerBuilder 11.0Code ExamplesExample Apppbexamples.pbw) 。(2)运行 Code Examples 应用步骤:单击 Run!图标按钮。(3)查找和了解实例在实例分类列表区中,将所有应用实例按类型的树形结构展示出来,用于选择具体应用实例;功能说明区和技术说明对选中的应用实例进行说明;单击 Relatied Objects 页,可以见到选中实例的对象列表;双击需要查看的函数或事件,可以看到具体的脚本。(4)运行实例双击分类列表区中选中的实例,或选中实例后单击 Run!图标按钮就可以运行该实例。6、 退出 P
31、owerBuilder 11.0步骤:方法一:单击“File|Exit”菜单项;方法二:单击工具栏上的“Exit”图标按钮;方法三:单击主窗口右上角的“X”图标;方法四:按 Alt 和 F4 组合键。9【思考和练习】1、 使用帮助查找 Isnumber( )函数的使用方法。2、 根据个人爱好定制自己的开发环境(如自定义工具栏) 。3、 PowerBuilder 11.0 的集成开发环境和你接触过其它开发环境相比,有什么异同点?10第三章 应用程序的创建【目的和要求】1、 掌握新建、打开应用的方法;2、 熟悉用 PowerBuilder 11.0 进行应用开发的过程。【上机准备】1、 复习第一章
32、“宿舍管理信息系统”的内容;2、 结合 1 考虑要创建一个简单的“计算器”的开发过程。【界面外观及功能要求】“计算器”的界面外观如图 3.1 所示。图 3.1 “计算器”的界面外观功能要求:(1)分别在两个编辑框中输入数值,单击“计算”按钮能得出正确的结果;(2)单击“复位”按钮能清空编辑框中的输入值和结果。【上机步骤】1、 新建一个工作区间步骤:创建新的 “Workspace(工作空间)”,单击 New 图标按钮(或单击菜单项“File|New”) ,打开 new 对话框,选择 “Workspace”页,如图 3.2 所示;单击 “OK”按钮,弹出 “New Workspace”保存文件对话
33、框,新建工作空间文件名为 jsq.pbw,如图 3.3 所示。11图 3.2 “New”对话框中“Workspace” 页图 3.3 “NewWorkspace”保存文件对话框2、 新建一个应用计算器(1) 创建计算器应用步骤:再次打开“new” 对话框,选择“Target”标签页,如图 3.4 所示;12图 3.4 new 对话框 双击“Application”图标,弹出“Specify New Application and Library”对话框,如图 3.5 所示;图 3.5 “Specify New Application and Library”对话框 在 Application
34、Name 栏中输入应用的名称: jsq,单击 Library 或 Target 下面的文本框,即自动显示应用库文件和目标文件默认的路径及文件名;如需修改,则单击“Liarary”或“Target”栏右边的“”按钮,在弹出的“Select New Application Library”对话框中选择要保存的文件夹并输入新的文件名,单击 Finish 键,即可完成新应用13的创建。(2) 创建窗口并设置其属性窗口名称:w_calculatortitle:“加法计算器”Controlmenu : truemaxbox : falseminbox : falsewindowtype : mainX :
35、 1500Y : 800(3) 添加控件 在窗口中放置三个单行编辑控件: sle_1 、sle_2、sle_3,分别用来作为加数、被加数的输入控件与两数之和的显示控件。 分别设置它们的属性。如把其中默认的显示文本“none”删除,再如显示结果一般仅用于显示,可设置其显示结果不能修改,则 sle_3.enabled=false。 在窗口中放置两个静态文本框,作为“”和“”的显示控件,并设置其属性。 在窗口中放置两个命令按钮:cb_1、cb_2,并设置其属性: cb_1.text=“计算” ;cb_2.text=“复位 ”。 调整窗口的大小和所有的控件的位置。 调整其“TAB”顺序。(4) 编写脚
36、本 在 cb_1 的 clicked 事件中加入以下代码:if sle_1.text=“ then messagebox(“系统提示 “,“请输入加数!“)sle_1.setfocus()returnelseif not isnumber(sle_1.text) then messagebox(“系统提示 “,“请检查加数是否是一个合法的数值型数据!“)sle_1.setfocus()return14end ifif sle_2.text=“ thenmessagebox(“系统提示 “,“请输入被加数!“)sle_2.setfocus()returnelseif not isnumber(s
37、le_2.text) thenmessagebox(“系统提示 “,“请检查被加数是否是一个合法的数值型数据!“)sle_2.setfocus()returnend ifsle_3.text=string(dec(sle_1.text)+dec(sle_2.text) 在 cb_2 的 clicked 事件中加入以下代码:sle_3.text=“sle_1.text=“sle_2.text=“(5) 和应用关联双击应用“jsq”并在其 open 事件中加入以下代码:open(w_calculator)保存并关闭应用程序画板。加法计算器已经制作完毕,单击“RUN”图标按钮就可以运行计算器程序了。
38、2、创建我们后面要用到的贯穿整个实验的应用实例程序所需要的工作空间:ssgl (D:ssglssgl.pbw)、相应的应用库文件(D:ssglssgl.pbl) 和相应的应用程序文件(D:ssglssgl.pbt)。【思考和练习】1、如果要分别改为减法器、乘法器、除法器应作哪些修改。2、如果要改为一个同时能进行加、减、乘、除的计算器应作哪些修改。3、本实例并未涉及到数据库的应用,但其实现过程基本是一致的。15第四章 数据库的创建与连接【目的和要求】1、掌握 PowerBuilder11.0 开发过程中数据库的创建、配置与连接的方法。2、联系具体实例,创建一个 ASA 数据库(Adaptive
39、Server anywhere) ,为其配置 ODBC数据源和 DB Profile,然后在 PowerBuilder 环境中连接数据库。3、创建实例数据库中的表并按具体要求做相应的表操作,如创建主键、索引、外键等。4、掌握数据表中数据的录入、删除、保存等操作方法。【上机准备】1、打开 Workspace(工作空间)ssgl.pbw(D:ssglssgl.pbw);2、复习参考书中 Powerbuilder 11.0 创建数据库的内容;3、熟悉第一章中数据库结构设计相关内容。【上机步骤】1、创建数据库ssgl.db(Adaptive Server AnyWhere)步骤:(1)单击工具栏上的
40、Database 图标按钮,在弹出的 Database 画板中,展开 ODBC 项下的Utilities 目录,并双击该目录下的 Create ASA Database 项,弹出“Create Adaptive Server AnyWhere Database”对话框;(2)单击对话框中的“Browse”按钮,弹出“Create Local Database”对话框;(3)在对话框中选择 D:ssgl 目录,并在“文件名”一栏中输入要创建的数据库名字“ssgl.db”,单击“保存”返回“Create Adaptive Server AnyWhere Database”对话框;(4)使用缺省的用
41、户 UserID 项“dba”和缺省的口令 Password 项“sql” ,单击“OK”按钮,即在 D:ssgl 目录下创建了一个 ASA 数据库 ssgl.db。2、配置 ODBC 数据源ssgl步骤:(1)在 Database 画板中,双击 ODBC 项下 Utilities 项的“ODBC Administrator”项,弹出“ODBC 数据源管理器”对话框;(2)选择“用户 DSN”页,单击“添加”按钮,弹出“创建新数据源”对话框;16(3)选择 SQL Anywhere 10,单击“完成”按钮,弹出“SQL Anywhere 10 的 ODBC 配置”对话框;(4)选择“Datab
42、ase”页,在 数据库文件 栏中输入“D:ssglssgl.db”或单击“Browse”按钮选择该目录,并在 数据库名 栏中输入 “ssgl”,然后选择“ODBC”页,在 数据源名 栏中输入数据源的名称“ssgl” ,单击“确定”按钮,返回“ODBC 数据源管理器”对话框;(5)可看到 ssgl 已经加入到数据源列表中,单击“确定”按钮,完成 ODBC 数据源的配置。3、配置 DB Profilessgl步骤:(1)在 Database 画板中,选择“ODBC”项,右键单击,选择“New Profile”项,弹出“Database Profile Setup-ODBC”对话框;(2)选择“Co
43、nnection”页,在“Profile Name”栏中,输入 DB Profile 名,这里为ssgl;在“Data Source”下拉列表框中,选择 ssgl;选中 UserID 和 Password,并在右边对应栏中输入“dba”和“sql” ;(3)单击“OK”按钮,完成“DB Profile”的配置。4、在 Powerbuilder 11.0 环境中连接数据库步骤:在 Database 画板中,选择“ODBC”项下要连接的 DB Profile 名,这里为 ssgl,右键单击,在弹出菜单中选择“Connect”连接数据库或直接双击要连接的 DB Profile 名:ssgl。5、按第
44、一章章要求在数据库中创建各数据表6、按第一章要求为各数据表指定关键字7、按第一章要求为各数据表创建外键8、自己分析为各数据表创建必要的索引9、在各数据表中输入部分数据,并练习删除、保存等操作【思考与练习】1、如何修改和删除已经存在的数据源?2、如何修改和删除已经存在的 DB Profile?3、如何断开已经连接的数据库?174、什么是主键?什么是外键?两者有何区别?各有什么用途?5、ODBC 是什么?有什么作用?6、ODBC 数据源的名字必须和 DB Profile 的名字相同吗?7、对于已经建立起主从关系的两个数据表,可以在主表中无任何数据的情况下向从表中录入数据吗?8、如果你想用 Orac
45、le 或 SQL Server 作为后台数据库,请问应该怎样在 PowerBuilder 11.0 的集成开发环境中进行配置和连接?有几种方式?请同学实现。18第五章 窗口以及简单控件编程【目的和要求】1、 掌握窗口的创建和窗口属性的调整方法;2、 加深对窗口类型、各种类型窗口的特点以及应用范围的认识;3、 掌握文本控件、图片框控件、单行编辑框控件、命令按钮控件以及图像按钮的使用方法;4、 掌握应用程序开发过程中软件封面、密码验证窗口、主窗口的设计与实现的方法。【上机准备】1、打开 Workspace(工作空间)ssgl.pbw(D:ssglssgl.pbw);2、在 D:ssgl 目录下创建
46、一个子目录 res,把准备作为背景的图片文件和作为图像按钮的文件拷贝到该目录下;3、复习参考书中窗口和常用窗口控件的内容。【界面外观及功能要求】1、密码验证窗口、主窗口的界面如图 5.1、图 5.2 所示。图 5.1 密码验证窗口19图 5.2 主窗口2、功能要求程序启动时,首先进入密码验证窗口,只有在密码验证窗口中正确输入用户名和口令才能进入系统主界面,否则,不能进入。【上机步骤】1、 创建密码验证窗口并设置其标题、大小、位置等属性窗口名称:w_logintitle:“欢迎使用宿舍管理系统”Controlmenu : truewindowtype : response调整窗口大小、位置在窗口
47、上添加两个静态文本框控件:St_1、St_2,其 text 属性分别设为:“用户名” 、“口令” ;添加两个单行编辑框控件:Sle_1、Sle_2,并把 Sle_2 的 Password 属性设为“True”;添加两个按钮控件:Cb_1、Cb_2,其 text 属性分别设为:“确定” 、 “取消” ;添加三个分组框控件:Gb_1、Gb_2、Gb_3;各控件的大小、位置等属性按界面外观要求调整至合适位置。2、 创建系统主界面并设置其标题、大小、位置等属性窗口名称:w_mainframetitle:“宿舍管理系统”windowtype : main调整窗口大小、位置20添加一个图像控件:P_1,其
48、 OriginalSize 属性设为 False、PictureName 属性设为“D:ssglresbackground.JPG”,其中 background.jpg 是我们事先拷贝到 D:ssglres 目录下作为背景的图像文件。调整其大小直到和主窗口大小重合为止。3、 在应用 ssgl 的 open 事件中写入以下代码:open(w_login)4、 在 W_login 窗口 Cb_1 控件的 Clicked 事件中录入以下代码:string ls_user,ls_passwordinteger li_messls_user=trim(sle_1.text)ls_password=tri
49、m(sle_2.text)if (ls_user= “dba“ and ls_password=“123“) thenopen(w_mainframe)close(parent)elsemessagebox(“系统提示“,“用户名或密码错误,请重新输入!“)sle_2.text=“sle_1.text=“sle_1.setfocus()end if5、 在 W_login 窗口 Cb_2 控件的 Clicked 事件中录入以下代码:HALT6、 运行程序,观察效果【思考练习】1、 如果用户有多个、且具有不同的权限,则密码验证窗口应该如何设计?2、 如何在不通过调整窗口坐标的情况下使窗口自动居中?3、 窗口具有不同的类型,请根据系统开发的实际情况,简要概述各种窗口的主要特性和应用范围。4、 在本实验中的主窗口没有菜单,如何制作一个具有工具栏、菜单栏的主窗口?直接设置本实验窗口中的 MenuName 属性,能实现我们的要求吗?为什么?215、 修改程序,使软件启动时出现一个类似于 Word 等应用程序的软件封面如图 5.3 所示,几秒钟后消失,并出现密码验证窗口。图 5.3 软件封面22第六章 给应用程序添加菜单【目的和要求】1、