1、目 录1 引言 .12 需求分析 .22.1 数据需求 22.2 功能需求 33 总体设计 .53.1 系统目标设计 53.2 开发设计思想 53.3 系统功能结构图 53.4 数据流程分析 73.5 数据概念结构设计 73.6 系统的 开发工具和运行环境选择 .84 详细设计 .94.1 数据表的逻辑结构设计 94.2 系统功能的设计 115 系 统实现 .135.1 创建项目及项目文件 135.2 航班管理数据库 135.3 系统界面设计 145.4 航空售票管理系统主程序设置 .226 结束语 .24参考文献 25Abstract26致谢 272航空售票模拟系统的设计与实现摘 要:售票/
2、订票是民航业务 中的一个最基本的业务,从表面上来看,它只是民航业务的一个简单的部分,但是它涉及到资金管理与客户服务等多方面,因此,过去传统的售票已经不能满足现代航空业务流量剧增的客观要求,本毕业设计便是利用开发工具 Visual FoxPro 6.0 开发的一个民航售票管理系统,它具有售票、退票、查询、 维护等功能,能根据任意身份证号快速定位到某一客户,能打印各种客 户资料报表。因此它能方便快捷地运用在民航业务的营运之中。 关键词:售票; 数据关联; 多表系统 ;查询; 系统初始化; 数据统计结算1 引言机票预定系统的总目标是:在计算机网络、数据库和先进的开发平台上,利用现有的软件,配置一定的
3、硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。在开发大型软件的漫长过程中 1,面对极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。因此,在软件生命周期的每个阶段都不可避免地会产生差错。尤其是航空售票系统的某个阶段出现差错会影响人们生活。财产的工程软件,必须尽量减少差错,以免造成严重的损失。航空售票管理系统 2,能用于所有航空售票处的客户资料和送票情况管理,能对客户累计购票情况进行统计分析,具有
4、自动编号、快速查询、客户购票统计、送票员管理、密码设置等功能,能根据任意身份证号快速定位到某一客户,并录入购票明细情况。能打印各种客户资料报表,能制作表格,具有较强的可扩充性。经过运行使用后,效果良好。通过使用该软件,有利于提高工作效率,加强与客户之间的沟通和了解,增强客户的信任感,从而达到提高机票销售量的目的。本科毕业设计(论文)32 需求分析随着经济的不断发展,航空售票和订票的信息管理日异复杂。过去传统的售票已经不能满足现代航空业务流量剧增的客观要求,决定建立一个“航空售票管理系统”开发的目的如下:1.能对航空售票的各类数据进行输入、修改与查询。2.能够进行系统初始化和系统维护。3.对航班
5、售票情况进行收入结算。4.打印各种航班信息报表。用户提出开发应用系统的要求后,就通过调查归纳出目标系统的数据需求和功能需求。 2.1 数据 需求用户的需求具体体现在各种信息的提供、保存、更新和查询 3,这就要求数据库结构能充分满足各种信息的输出和输入、收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。经过收集资料和需求总结,考虑到将来功能上的扩展,设计如下面所示的数据项和数据结构:航班信息(航班号,发出城市,到达城市,发出时间,到达时间)乘客信息(航班号,座位号,飞行日期,订购票人,身份证号,座位等级, 票价)航班座位等级分配与座位占用信息(航班号,座
6、位号,座位等级,票价,占用标记) 密码信息(用户密码,用户姓名)4以上括号外的字符串是表名,括号内为字段名表,有下划线的字段为关联关键字。其中: “航班信息数据表”用于对航空公司的航班的编号、发出城市、到达城市、发出时间与到达时间进行设置与管理,并在航班售票系统中加以自动使用。“乘客信息数据表”用于对指定航班的乘客的信息进行记录和查询,并进行收入统计。“航班座位等级分配与座位占用表”用于在系统使用前或系统使用中对航班的飞机座位的等级进行设定,并在售票时自动标记占用符号。“密码表”用于对系统权限的管理与认证。2.2 功能需求功能分析任务 4,是弄清用户对目标系统的数据处理功能所提出的需求,根据系
7、统目标和数据需求并与用户充分讨论后,本系统包括如下六个方面的功能需求:售票系统、查询与退票系统、飞行时刻表综合查询系统、系统维护、收入结算、报表打印。具体功能如下:2.2.1 售票系统售票系统至少要包括每一航班的乘客乘坐飞机的起点、终点、日期和可以使用的座位等基本信息;自动显示符合乘客要求的航班及座位是否存在(是否还有空位) ;新乘客订购完票后可以进行保存乘客记录、修改订票情况、取消修改等。2.2.2 查询与退票能查询每一航班的售票/订票情况、乘客信息及售票收入金额;能够根据身份证号准确查询到某一乘客;乘客办理完相关手续后还可以进行退票。2.2.3 飞行时刻表综合查询一个飞机时刻表会给乘客在进
8、行航班信息查询时带来极大的方便,航班飞行时刻表的综合查询功能比较强大,以尽量满足乘客的需要;它可以按五种方式查询航班公司的航班时刻表信息。2.2.4 系统维护本科毕业设计(论文)5一个系统需要进行系统初始化、数据整理和用户权限的维护。系统初始化在系统使用初期,用户需要对航班公司的每一个航班的每一个座位进行编号、设置等级并确认标价。用户权限的维护就是用户可以进行用户的增加、删除、修改原用户的密码等。数据整理就是在一个航班管理系统中,随着航班售票业务的开展,系统中存在大量的数据,因此对于系统中的数据,往往需要定期进行清理,即删除一些过时的数据。2.2.5 收入结算一个系统中有很多的航班,不可能用手
9、工的方式来统计这么多航班的售票收入,因此需要一个系统能自动进行统计结算。2.2.6 报表打印在数据库应用系统中,常常将数据处理结果以报表形式打印出来。用户就需要系统能够进行报表打印,这样就比较方便的浏览信息。63 总体设计3.1 系统目标设计在当今社会 5,随着经济的不断发展,航空售票和订票的信息管理日异复杂, 传统的手工登记和集中管理已经难以满足快节奏、高效率的现代生活需求, 有时乘客由于不了解航空公司机票销售的信息,而不能在相应的时间内购到理想的机票。从而浪费了大量的人力和物力资源,然而乘客与航空公司联系, 把相应的信息反馈给乘客。 让乘客选择适合自己的理想的机票,从而大大节省了人力和物力
10、, 因此开发这样一个航空售票系统就显得十分必要了。3.2 开发设计思想本系统开发设计思想:1.尽量采用本系统现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用本系统现有资源,提高系统开发水平和应用效果的目的 6。2.系统应符合售票的规定,满足日常管理的需要,并达到操作过程中的直观、方便、实用、安全等要求。本科毕业设计(论文)73. 系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便没有参与开发的技术维护员补充、维护。4. 系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改等操作。3.3 系统功能结构图 从功能描述的内容可以看到,本设计可以实现六个完整的功能
11、,根据这些功能,设计出系统的功能模块如图 3.1 所示:系统启动画面权限认证画面售票管理系统主界面售票系统查询与售票系统收入结算系统时刻表综合查询系统维护用权限维护航班座位等级系统数据清理报表打印8图 3.1 系统功能结构图在功能模块示意图的树形结构中,每一个叶结点都是一个最小的功能模块。每一个功能模块都需要对不同的表完成相同的数据库操作。即添加记录、修改记录、删除记录以及查询显示记录信息。3.4 数据流程分析了解系统的功能模块划分以及各模块之间的关系 7,这是系统总体设计的重要组成部分。如果要对系统形成一个完整而全面的认识,还需要进行系统流程分析。所谓系统流程就是用户在使用系统时的工作过程。
12、本系统的流程分析如图 3.2 所示:用户管理员航空售票管理系统订购票人员注册信息用户设置系统维护订票退票查询要求统计要求查询结果统计结果本科毕业设计(论文)9图 3.2 数据流程图3.5 数据概念结构设计有了数据流图,我们在需求分析的基础上,设计出能够满足用户需求和各种实体,以及确定它们之间的关系,为后面的逻辑结构打下基础。3.3 概念结构图航班信息乘客信息对应对应航班座位等级分配与座位占用对应n1111n103.6 系统的开发工具和运行环境选择1.开发工具:中文版 Visual FoxPro 6.0系统是采用 Visual FoxPro 6.0 制作的 8。它是当今比较流行的可视化工具它不像
13、 Visual Basic 6.0 一样需要借助其他的数据库来完成某个软件开发。它有自带的数据库,不仅可以简化数据库管理,而且能使应用程序的开发流程更为合理。Visual FoxPro 6.0 使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。利用可视化的设计工具和向导,用户可以快速创建表单、查询、和打印报表。Visual FoxPro 6.0 还提供了一个集成化的系统开发环境。它不仅支持过程式编程技术,而且在语言方面作了强大的扩充,支持面向对象可视化编程技术,并拥有功能强大的可视化程序设计工具。目前,Visual FoxPro 6.0 是用户收集信息、查询数据、创建集成数据库系统,
14、进行实用系统开发较为理想的工具软件。2. 运行环境:Windows 9x, Windows NT 或 Windows 2000 操作系统。4 详细设计4.1 数据表的逻辑结构设计航班售票管理系统是一个典型的数据库应用系统,因此它自然离不开数据库的数据表。下面我们来定义数据表的逻辑结构。4.1.1“航班信息数据表”的逻辑结构定义在“航班信息数据表”的逻辑结构定义中,把“航班号”字段定为主索引字段,因为一个航班公司的每一个航班号应该是唯一的,而且该字段是用于与“乘客信息数据表”建立关键字段。在一个售票窗口中,只要选择一个航班号,则该航班号下的乘客记录会全部显示出来,也可以在该航班号下增加新的乘客的
15、记录。 “航班信息数据表”的逻辑结构定义如表 1 所示:表 1 “航班信息数据库表”的逻辑结构本科毕业设计(论文)11字段名称 字段类型 字段大小 小数位数 索引 是否可以为空 航班号 字符型 16 主索引 No发出城市 字符型 10 普通索引 No到达城市 字符型 10 普通索引 No发出时间 字符型 10 普通索引 No 到达时间 字符型 10 普通索引 No同时,把其它几个字段定义为普通索引字段,这样便于建立查询,如乘客在售票或订票之前需要查询航班的发出城市、到达城市、发出时间、到达时间等等。在数据表的结构定义中,我们将“发出时间”和“到达时间”字段定义为字符型,而并不按日期或时间格式加
16、以定义,往往会由于输入的格式不同而经常发生错误;同时,字符型字段在查询时比日期型字段的查询方便得多,因此在设置“发出时间”和“到达时间”字段为字符型字段后,用户用统一的时间格式输入即可。4.1.2“乘客信息数据表 ”的逻辑结构定义乘客管理是航班管理中的另一个重要的方面,首先需要对乘客进行记录,乘客信息是相对于一个具体航班的,因此在系统开发中往往需要建立数据的关联。根据乘客在购票、订票和乘客信息等方面的管理特点,我们特设计“乘客信息数据表”的逻辑结构如表 2 所示:表 2 “乘客信息数据表“的逻辑结构字段名称 字段类型 字段大小 小数位数 索引 是否可以为空 航班号 字符型 16 普通索引 No
17、座位号 字符型 19 No飞行日期 字符型 12 No订购票人 字符型 10 No身份证号 字符型 15 关键索引 No12座位等级 字符型 4 No票价 字符型 默认 No同样,在“乘客信息数据表”中,我们将“飞行日期”字段定义为字符型,而不定义为标准的日期型;同时,我们为“航班号”字段建立普通索引,这样便于与“航班信息数据表”中的“航班号”字段建立关联;将“身份证号”字段定义为关键索引字段,因为通常每一乘客的身份证号是唯一的。4.1.3“航班座位等级分配与座位占用表”的逻辑结构定义在订票、售票时,乘客需要指定相关的座位等级,系统为它分配一个座位,在该座位售出之后,需要为该座位作上已经“占用
18、”的标记。根据这些特点,特创建“航班座位等级分配与座位占用表”的逻辑结构。如表 3 所示:表 3 “航班座位等级分配与座位占用表“的逻辑结构字段名称 字段类型 字段大小 小数位数 索引 是否可以为空 航班号 字符型 16 主索引 No座位号 字符型 19 No座位等级 字符型 4 No票价 字符型 默认 2 No占用标记 字符型 1 Yes在“航班座位等级分配与座位占用表”中,我们将“座位号”字段定义为关联字段,它在数据处理中是唯一的。为不造成各航班的座位号的数据发生冲突,我们在进行座位的初始化设置或人工编辑过程中,需要在座位号前面附加上航班号。由于航班号不重复,所以每座位号也不重复。 “座位
19、号”字段大小应该为“航班号”字段大小再加上实际的座位号的大小。“占用标记”的字段允许为空,因为在该座位售出之前,它无占用标记。另外,可以为“航班号”字段创建普通索引,这可以在创建查询时使用。4.1.4 “密码表” 的逻辑结构一个密码表的结构往往比较简单,它主要用于对用户名称与用户密码进行本科毕业设计(论文)13记录和编辑修改,因此定义“密码表”的结构如表 4 所示:表 4 “密码表“的逻辑结构字段名称 字段类型 字段大小 小数位数 索引 是否可以为空 用户密码 字符型 6 主索引 No用户姓名 字符型 10 No4.2 系统功能的设计1.系统启动界面特作一个具有一定特色的系统启动界面,插入一个
20、具有航班飞机的图片,使用户一看到图片就能想到是一个航空公司的系统。这个界面有两个重要的按钮:系统登录和退出登录。2.系统的权限认证设置每一个人的权限,每个系统人员都有自己的用户姓名和用户密码,只有在用户姓名和用户密码输入正确后,才能进入该用户的功能模块,否则将不再做任何操作。3.系统主窗口系统主窗口有六大选择模块,它的作用是调用其他表单或执行其他的程序,这六大模块分别是乘客订购票窗口、查询与退票窗口、飞行时刻表综合查询窗口、收入结算窗口、系统维护窗口和报表打印窗口。4.乘客订购票窗口在这个窗口中,用户选择所要订的航班号,下面就会出现这个航班号的订票具体情况。新乘客就能有选择的订票。如果有不满足
21、订票信息的或有输入错误还可以修改订票。5.飞行时刻表综合查询这个窗口中有五种查询方式,按航班号查询、按发出城市查询、按到达城市查询、按发出时间查询、按到达时间查询。只要任意选中一种查询,输入查询内容,点击执行查询,左边表格是就会出现所有的查询记录。6.收入结算可以按两种方式收入结算,按航班号统计和按日期统计。用户输入收入结算方式,点击执行统计,左边表格中会显示乘客的详细信息。下面会显示它们14的收入为多少。这样一个系统给操作员带来很大的方便,减少了手工操作带来的麻烦。7.系统维护用户权限维护:操作员均有自己的密码,只要是操作员密码确认权限后,就可以进行用户的增加、删除和修改。初始化:输入操作员
22、密码,如果通过权限认证后,在左边的表格中就可以标记哪些座位被占用,哪些没有被占用。数据清理:按条件删除一些过时或不用的数据以备重新查询、统计、更新等操作。8.报表打印在数据库应用系统中,常常将数据处理结果以报表的形式打印出来。用户就需要系统能够进行报表打印,这样就比较方便的浏览信息。5 系统实现本科毕业设计(论文)155.1 创建项目及项目文件实现数据库的逻辑结构的方式是直接使用 Visual FoxPro 6.0 的项目管理器来实现的。在 Visual FoxPro 6.0 的主菜单中单击“文件/新建”菜单项,在弹出的“新建”对话框中选择“项目”选项,单击“新建文件”按钮,此时弹出存储目录,
23、请将项目名设为:航班售票管理系统,保存在磁盘中。在为项目创建的目录结构中,系统已经为项目创建了数据文件夹、表单文件夹、图像文件夹、菜单文件夹以及程度文件夹等涉及系统制作和文档管理所需要的文件夹,这些文件夹将在系统制作的过程中保存相关类型的文档时所使用。5.2 航班管理数据库在创建航班售票管理系统之前,我们首先创建一个“航班管理数据库” 。步骤如下:1.打开已经创建的项目。2.将项目管理器的选项卡页面切换到“数据”页面。3.在“数据”页面中选中“数据库”节点。如图 5.1 所示:图 5.1 创建航班数据库图164.单击“新建”按钮并保存。5.3 系统界面设计1.创建特色化系统软件封面任何应用系统
24、均是通过表单来实现其系统功能的 9。表单是一个容器对像,它有自己的特性、方法、和过程,但表单更多的作用是,它可以用于包括其他的对像,从而执行系统所需要的各种各样的功能。这个表单主要包括两个标签控件:“系统登录”和“退出登录” 。系统登录的过程代码如下:set path to D:航空formsdo form “权限认证表单.scx“release thisform2.制作系统的权限认证表单用户权限认证的核心是“确认权限”标签控件的过程代码,它是用于判断用户是否存在的关键。对于存在的用户,通过权限认证之后,将会进入该用户所执行的功能模块,否则将不再作任何操作。布局效果如图 5.2 所示:本科毕业
25、设计(论文)17图 5.2 权限认证图确认权限的标签控件的过程代码:locate all for alltrim (密码表.用户姓名)=alltrim(bo1.value)if found()if alltrim(thisform.text1.value)=alltrim(密码表.用户密码)thisform.releasedo form 系统主表单.scxelsethisform.spinner1.value=thisform.spinner1.value+1if thisform.spinner1.value=3messagebox(“口令不正确!“+chr(13)+“对不起,你无权使用!“
26、,48,“登录信息“)release thisformelsemessagebox(“口令不正确 !请重新输入!“,48,“登录信息“)bo1.setfocusthisform.text1.value=“thisform.refreshendifendifendif3.系统主表单 系统主窗口有两种风格,一种风格是用命令按钮调用其他窗口或执行其他程序,另一种风格是用主菜单的方式调用其他窗口或执行其他程序。每一风格都有特点。在这里,我们采用在主窗口中用选项按钮调用其他窗口的风格,同时,这些选项按钮在系统主窗口出现时呈动态运行状态,由右向左逐渐推出,最后稳定显示在用户面前,形成非常友好的用户界面,布
27、局效果如图 5.318所示:。图 3图 5.3 系统主表单图在表单中插入了一个计时器控件 Timer1,用于控件选项按钮的动态推出,并设置它的 Interval 属性值为 60。(4)乘客订票购票表单航班售票订票窗口是一具有专门用途的窗口,它中涉及到了数据表之间的关联操作。如图 5.4 所示:图 5.4 数据关联图将数据环境中的“乘客信息数据表”中的全部字段选中,并一次性地本科毕业设计(论文)19全部拖到表单中,形成一个表格控件“grd 乘客信息数据表” 。然后插入几个标签和两个命令按钮组控件 commandgroup,组合框控件的主要作用是通过对“航班信息数据表”中可用的航班号进行选择,并存
28、储到“乘客信息数据表”的“航班号”字段之中。这样,表单的完整的布局效果如图 5.5 所示:图 5.5 订票购票表单图其中“新乘客订票”命令按钮的过程代码如下:sele 乘客信息数据表if this.caption=“新乘客订票“this.caption=“保存新乘客记录“this.parent.tag=str(recno()this.parent.grd 乘客信息数据表.setfocusappend blankelsethis.caption=“新乘客订票“mand2.caption=“修改订票记录“20endifsele 航班座位等级分配与座位占用表locate all for alltri
29、m(航班座位等级分配与座位占用表.座位号)=alltrim(thisform.grd 乘客信息数据表.column2.text1.value)this.parent.text1.value=“*“this.parent.refresh“修改订票记录”命令按钮的过程代码如下:if this.caption=“修改订票记录“this.caption=“取消修改“mand1.caption=“保存修改“this.parent.tag=str(recno()elsethis.caption=“修改订票记录“mand1.caption=“新乘客订票“tablerevert()this.parent.re
30、freshendifgo val(this.parent.tag)this.parent.refresh(5)乘客查询和退票表单在航班售票管理系统中,乘客售票或订票就是进行数据记录,数据记录一经形成,往往存在数据查询的问题。有乘客订票,就有乘客退票,因此我们需要创建一个乘客查询与退票管理的表单。整体布局如图 5.6 所示:本科毕业设计(论文)21图 5.6 乘客查询和退票表单图“查询乘客”命令按钮的过程代码如下:thisform.grd 乘客信息数据表.setfocuslocate all for alltrim(乘客信息数据表.身份证号)=alltrim(this.parent.parent
31、.text2.value)if found()y=recno()go ymessagebox(“乘客已经找到,提示乘客先办理完相关手续,否则不能退票!“)elsemessagebox(“未能找到该乘客,请确认!“)endif“确认退票”命令按钮的过程代码:locate all for alltrim (乘客信息数据表.身份证号)=alltrim(this.parent.parent.text2.value)if found()22if messagebox(“当前乘客确实要退票吗?!“,32+4+256,“开户确认“)=6y=recno()go ythis.parent.parent.refr
32、eshsele 航班座位等级分配与座位占用表locate all for alltrim(航班座位等级分配与座位占用表 .座位号)=alltrim(this.parent.parent.text3.value)x=recno()go xthis.parent.parent.text4.value=“release xsele 乘客信息数据表this.tag=this.parent.parent.grd 乘客信息数据表.recordsourcedelete next 1packthis.parent.parent.grd 乘客信息数据表.recordsource=this.tagrelease
33、ythisform.refreshelsemessagebox(“该乘客未退票,座位仍被占用!“)thisform.refreshendifelsemessagebox(“对不起,该乘客未找到,请确认身份证号码!“)endif本科毕业设计(论文)23(6)飞行时刻表综合查询表单一个飞行时刻表会给乘客在进行航班信息查询时带来极大的方便,航班飞行时刻表的综合查询功能应该比较强大,以尽量满足乘客的需要,因此,这里我们将制作的表单可以实现按 5 个方面对航班的信息进行查询,如按航班号查询、按发出城市进行查询、按到达城市进行查询、按发出时间进行查询、按到达时间进行查询。“执行查询”命令按钮的过程代码如下
34、:sele 航班信息数据表do casecase thisform.optiongroup1.value=1set filter to 航班号=alltrim(thisform.text1.value)thisform.refreshcase thisform.optiongroup1.value=2set filter to 发出城市=alltrim(thisform.text1.value)thisform.refreshcase thisform.optiongroup1.value=3set filter to 到达城市=alltrim(thisform.text1.value)thi
35、sform.refreshcase thisform.optiongroup1.value=4set filter to 发出时间=alltrim(thisform.text1.value)thisform.refreshcase thisform.optiongroup1.value=5set filter to 到达时间=alltrim(thisform.text1.value)thisform.refreshendcase24整体布局如图 5.7 所示:图 5.7 飞行时刻表综合查询表单图(7)制作系统维护选择表单一个系统需要进行设置、数据整理和用户权限的维护等,因此我们需制作一个系统维
36、护选择表单。系统维护选择是通过三个选项按钮来执行的,整体布局如图 5.8 所示:图 5.8 系统维护选择表单图在用户权限维护的操作中,首先需要用户选择操作,如添加新用户、删除旧用户或修改原用户的密码等,无论哪一种操作,均需要输入操作者的密码,在操作者的密码通过后才能进行相关的操作。本科毕业设计(论文)25在系统使用初期,用户需要对航空公司的每一个航班的每一个座位进行编号、设置等级并确认标价,这一过程称为系统的初始化过程,因此,我们需要制作一个表单(即窗口),来执行系统的初始化过程。在一个航班管理系统中,随着航班售票业务的开展,系统中存在大量的数据,因此,对于系统中的数据,往往需要定期地进行清理
37、,即删除一些过时的数据。对于一些数据的删除,往往需要按条件进行,因此,我们制作一个按条件删除的数据清理表单。(8)报表打印的窗口在对数据库进行操作时,数据和文档的输出通常有两种方式:屏幕显示和打印机打印。屏幕显示因受其尺寸和不能永久性保存的限制而不能广泛使用, 因而通过打印机打印就成为数据库数据及文档输出不可替代的手段。报表就是用户使用打印机输出数据库数据及文档的一种实用的方式。下面是一个航班数据信息表的报表,如图 5.9 所示:26.图 5.9 报表打印图创建报表可以有几种方法,例如报表设计器、报表向导。使用报表设计器创建报表,可以充分发挥设计者的想象力,使报表的设计具有实用性、美观性、但要
38、掌握控件的使用;使用报表向导创建报表方便快捷,但是很难避免“向导”的约束。这个报表就是用报表向导做的。5.4 航空售票管理系统主程序设置系统主程序是数据库应用系统的总控部分,是系统首先要执行的程序。它是最高一级的程序,具体用来设计全局变量、系统标题、系统目标、调用“系统主页”表单。具体在“航空售票管理系统”中的主程序“.prg”具有的主程序代码如下:*-设置系统环境CLEARCLEAR ALLSET CENTURY ON data related; a series of chart system; to inquire about; initial system; settle accouts of data statistic