370 likes | 503 Views
授课 -14 图书系统表单的制作. 14.1 制作封面和登录表单 14.2 制作含菜单的主表单 14.3 制作几个功能表单. 14.1 制作封面和登录表单. 【 学习目标 】 用表单设计器制作封面和登录表单 【 关键方法 】 主程序 表单的美化 登录密码的核对方法. 【 具体 任务要求(上机 -E ) 】 1. 封面表单的制作 新建名为 TSFM.SCX 的表单,将表单添加到“项目 TS” 的“表单”中。 按样文 T06A 所示,在 TSFM 表单中添加控件: 3 个标签, 2 个按钮。
E N D
授课-14 图书系统表单的制作 14.1 制作封面和登录表单 14.2 制作含菜单的主表单 14.3 制作几个功能表单
14.1 制作封面和登录表单 • 【学习目标】 • 用表单设计器制作封面和登录表单 • 【关键方法】 • 主程序 • 表单的美化 • 登录密码的核对方法
【具体任务要求(上机-E)】 • 1. 封面表单的制作 • 新建名为TSFM.SCX的表单,将表单添加到“项目TS”的“表单”中。 • 按样文T06A所示,在TSFM表单中添加控件:3个标签,2个按钮。 • 设置对象的属性,使两表单中标签的字体、字号、颜色等,按样文T06A所示。(说明:标签3是用标签2复制,再改变其位置、颜色属性,形成阴影的效果。) • 属性设置: • 设置表单的WindowState属性值为“0 – 普通”, • 设置表单的AutoCenter属性值为“.T. – 真”, • 设置表单的标题为“图书管理封面表单”。 • 为表单添加一幅背景图片。 • 在封面界面中,编写“登录”按钮的事件代码,使点击“登录”按钮能打开登录界面。
2. 登录表单的制作 • 新建一个自由表“用户表”,表结构为:用户名 C(10),密码 C(8)。在表中录入三个用户名及其密码。 • 新建名为TSDL.SCX的表单,将表单添加到“项目TS”的“表单”中。 • 按样文T06A所示,在TSDL表单中添加控件:2个标签, 1个组合框,1个文本框,2个按钮。 • 属性设置: • 设置对象的属性,使表单中标签的字体、字号、颜色等,按样文T06A所示。 • 设置表单的WindowState属性值为“0 – 普通”, • 设置表单的ShowWindow属性值为“2 – 作为顶层表单”, • 设置表单的AutoCenter属性值为“.T. – 真”, • 设置表单的标题为“登 录”。 • 在登录界面中,编写“确定”按钮的事件代码,使点击“确定”按钮能对输入的用户名和密码进行核对,当输入与“用户表”中的一致,可进入主表单。
下图是封面与登录表单的外观。 【样文T06A】
【任务分析】 • 14.1.1进入某应用系统的一般顺序 • 14.1.2主程序(图书主程序.prg) • 主程序是进入系统执行的首个程序。它主要任务是设置系统的工作环境,如:日期格式、默认路径等。主程序的最后一条命令是调用封面表单。 主程序 封面表单 登录表单 主表单
“图书主程序.prg”的程序清单: • SET TALK OFF • SET SAFE OFF • SET DEFA TO SYS(5)+SYS(2003) • && 将主程序所在的磁盘和路径(文件夹)设置为默认路径 • SET ESCA ON • SET CENT ON • SET MARK TO '-' • SET DATE ANSI • SET COLL TO 'PINYIN' • DO FORM TSFM && 调用“封面表单” • READ EVEN && 开始事件处理
14.1.3封面表单制作 • 这个表单只须按要求制作即可。 • 1. 设计概述 • 见样文T60A中的封面表单。表单上设置了3个标签, 1个表明系统的设计者,2个用于表明系统名称(带有阴影的美术效果)。设置了2个命令按钮,用于实现“登录”和“退出”功能。点“登录”按钮后,可以进入系统的登录表单。 • 2. 主要属性设置 • 见操作要求。 • 3. 事件及代码 • “登录”按钮Command1 的 Click 事件代码 • DO FORM TSDL && 调用“登录表单” • thisform.release • read event && 开始事件处理 • “退出”按钮Command2 的 Click 事件代码 • clear events && 关闭事件处理 • thisform. release
14.1.4 登录表单制作 • 1. 设计概述 • 见样文T60A中的登录表单。表单上设置了1个组合框和1个文本框,分别用于选择用户和输入密码;设置2个标签,用于说明;设置2个命令按钮,用于实现“确定”和“取消”功能。组合框的用户选项的数据取自“用户表”。点“确定”按钮后,如该用户输入的密码与“用户表”中所存的一致,可以进入本系统,否则不能进入。 • 2. 表单主要属性设置 • AutoCenter : .T. • Caption : 登 录 • MaxButton : .F. • MinButton : .F. • ShowWinndow :2—作为顶层表单 • WindowState : 0—普通
3. 组合框“用户名”数据源的添加 • 点击“组合框”,击鼠标右键, • 选“生成器”,进入“组合框生成器” • 按下图的示意操作。
4. 事件及代码 • 文本框Text1 的 KeyPress 事件代码 • LPARAMETERS nKeyCode, nShiftAltCtrl • if nkeycode=13 • thisform.text1.setfocus • Endif • “取消”按钮Command2 的 Click 事件代码 • thisform.text1.value='' • thisform.text1.setfocus • thisform.release
“确定”按钮Command1 的 Click 事件代码 • if alltrim(thisform.text1.value)==alltrim(用户表.口令) • do form tszd.scx • thisform.release • read event • else • messagebox("输入有误,请再输入!",16,"密码错误") • thisform.text1.value='' • thisform.text1.setfocus • Endif 返回本课菜单
14.2 制作含菜单的主表单 • 【学习目标】 • 用菜单设计器设计下拉式菜单 • 在主表单中添加菜单 • 【关键概念】 • 下拉式菜单,顶层表单 • 菜单“结果”的四个选项 • 表单调用菜单的事件:Init,Destroy
【任务(上机-E)】 • 3. 主表单的制作 • 新建名为TSZD的表单,将其添加到“项目TS”的“表单”中。 • 按样文T06B所示,在表单中添加控件:4个标签,2个计时器和1个按钮。设置计时器1和计时器2控件的属性并编写代码,使标签1中的字能够平移,标签2能够显示时间。设置标签3和标签4控件的属性,使标签3能够显示日期,标签4能够显示星期。 • 设置属性: • 设置表单的WindowState属性值为“0 – 普通”, • 设置ShowWindow属性值为“2 – 作为顶层表单”, • 设置AutoCenter属性值为“.T. – 真”, • 设置表单的标题为“图书管理系统”。
为表单添加一幅背景图片。 • 新建名为TSMN的菜单,将菜单添加到“项目TS”的“菜单”中。菜单设计时,在“常规选项”对话框中选择“顶层表单”的复选项。菜单栏设置“图书管理”、“读者管理”、“借还管理”、“打印报表”、“系统维护”、“退出”选项,二级子菜单可暂时只设一、二项。菜单设计完毕后,先保存,再生成为可执行的程序文件。 • 在主表单编写Init 和Destroy的事件代码,使主表单运行(释放)时,同时打开(关闭)菜单。
下图是制作好的图书管理系统的主表单的外观。下图是制作好的图书管理系统的主表单的外观。 图2 【样文T06B】
【相关知识】 • 14.2.1菜单结构 • VFP支持两种类型的菜单:条形菜单和弹出式菜单。 • 每一个菜单选项都可以选择地设置一个热键和一个快捷键。 • 典型的菜单系统一般是一个下拉式菜单,即由一个条形菜单和一组弹出式菜单组成。其中条形菜单作为主菜单,弹出式菜单作为子菜单。
14.2.2 系统菜单 • VFP 系统菜单是一个典型的下拉式菜单系统,其主菜单是一个条形菜单,子菜单是一组弹出式菜单。条形菜单中常见选项的名称及内部名字如表所示。
通过SET SYSMENU命令,可以允许或者禁止在程序执行时访问系统菜单,也可以重新配置系统菜单。 • 格式:SET SYEMENU ON/OFF/AUTOMATIC/; • TO <弹出式菜单名表>/TO <条形菜单项名表>/; • TO [DEFAULT]/SAVE/NOSAVE • 说明:ON:允许程序执行时访问系统菜单 • OFF:禁止程序执行时访问系统菜单 • AUTOMATIC:可使系统菜单显示出来,可以访问系统菜单。
14.2.3 下拉式菜单设计的基本过程 • 下拉式菜单是一种最常见的菜单,主要包括:菜单栏(条形菜单)、菜单标题、弹出式菜单、菜单项和子菜单。 • 用VFP提供的菜单设计器可以方便地进行下拉式菜单的设计。
菜单设计的基本过程: • 用菜单设计器设计下拉式菜单的过程如图:
14.2.4 用菜单设计器创建菜单 • 1.打开菜单设计器的方法: • (1)常用工具栏:[新建文件]按钮 • (2)菜单:[文件]/[新建] • (3)项目管理器:[菜单]/[新建] • (4)使用命令: • CREATE MENU <菜单名> • MODIFY MENU <菜单名>
“选项”栏 :可设置菜单的快捷键、跳过条件、说明信息和菜单项内部名称 “结果”栏:包括有命令、填充名称(或菜单项)、子菜单和过程四个选项 【创建】或【编辑】按钮:供用户建立或修改子菜单 “菜单名称”栏 2.“菜单设计器”窗口 “移动”按钮: 拖动该按钮可以调整菜单项之间的位置的顺序 指定当前设计的菜单,返回到上级菜单或主菜单 插入栏:可插入一个VFP系统菜单项命令
打开菜单设计器,“显示”菜单下,有: 3.常规选项: 常规选项用于定义整个下拉式菜单系统的总体属性。实际上我们只需要做“顶层表单”的设置。 选中此复选框,则允许户定义的菜单在顶层表单中使用
4.使用系统菜单的操作: • 进入编辑子菜单页,选择[菜单项#],再点击[插入栏],出现下面的对话框,……。
14.2.5 在应用程序中使用菜单 • 菜单创建好后,可应用于实际应用程序中,也就是用菜单将编制好的应用程序有机地组织起来,形成一个界面友好的应用程序。
为顶层表单添加下拉式菜单的方法和过程: (重点) • (1)菜单设计时,在“常规选项”对话框中选择“顶层表单”复选框; • (2)在“菜单设计器”窗口中设计菜单完成后,先保存,再生成可执行菜单程序文件; • (3)将主表单的 ShowWindow 设置为 2(顶层表单); • 将主表单的 AutoCenter设置为 .T.(真) ; • (4)在主表单的 Init事件代码中添加调用菜单程序命令: • DO <菜单名.MPR> WITH THIS,"<菜单别名>" • (5)在主表单的Destroy 事件代码中添加清除菜单的命令,使得关闭表单时同时清除菜单: • RELE MENU <菜单别名> EXTN
图书系统菜单任务的操作: • (1)条形菜单的菜单项包括:图书管理、读者管理、借书管理、打印报表、系统维护、退出系统。 • (2) “借书管理” 的结果是子菜单:办理借书、办理还书、查看借书、清理还书,它们的结果均为命令,分别执行相应的程序文件或表单。在这些文件尚未制作好的情况下,可以全部都写成调用一个通用表单的命令: DO FORM TSTY。其余参照此项。 • (3) “退出” 的结果是过程,执行一段“退出”程序。 • 注:当系统还处于调试阶段,可将此结果改为子菜单,子菜单设为菜单项#,使用系统内部菜单:关闭(_mfi_close)。 • (4)保存菜单:保存文件名为TSMN.MNX 。 • (5)生成菜单可执行程序:TSMN.MPR 。 • 完成结果见右图。
14.2.6 “标签”与“计时器”控件的使用 • 本表单中,有一个“制作者”的标签可以平移,它是如何制作的呢? 标签1的几个属性: Forecolor : 0,128,192 Fontname : 华文行楷 FontSize : 16 计时器1的属性: Interval : 30 计时器1的“Timer”事件的代码 IF thisform.Label1.left+60>0 thisform.Label1.left=thisform.Label1.left-1 ELSE thisform.Label1.left=780 ENDIF
本表单中,有一个标签可以显示时间,它是如何制作的呢?本表单中,有一个标签可以显示时间,它是如何制作的呢? 计时器2的属性: Interval : 1000 计时器2的“Timer”事件的代码 if thisform.label2.caption <>time() thisform.label2.caption=time() endif 标签2的几个属性: Forecolor : 0,128,192 Fontname : 华文行楷 FontSize : 20 Caption : time() 返回本课菜单
14.3 制作几个功能表单 • 【学习目标】 • “使用说明”表单的制作 • “浏览任一个表”表单的制作 • 【关键概念】 • 表单刷新、数据源确定等方法
【任务(上机-E)】 • 4. “使用说明”表单的制作 • 建立名为TSSM.DBF的表,表内有:“模块名”(C,20)、“使用说明”(M)两个字段,将该表添加到“项目TS”的“自由表”中。 • 使用“表单向导”,用TSSM.DBF为数据源,制作一个表单,命名为TSSM.SCX,添加到“项目TS”的“表单”中。 • 按样文T06C所示,在表单TSSM.SCX中添加一个列表框控件,并设置属性、编制代码,使其具有点击什么,能看到什么的使用说明。
【任务(上机-E)】 • 5. “浏览任意一个表”的表单 • 新建表单,以TSLB为文件名保存在自己文件夹中,添加到“项目1”的“表单”中。 • 按样文T06D所示,在表单中添加控件:2个标签, 1个列表框,1个表格框,1个按钮。 • 设置对象属性、编制代码,使其具有可以随意浏览自己文件夹中的所有表的功能。
这是用表单向导制作的图书管理系统使用说明表单这是用表单向导制作的图书管理系统使用说明表单 【样文T06C】 这是用表单设计器制作的可以浏览任意一个表的表单 【样文T06D】
【制作方法】 • 14.3.1图书系统“使用说明”表单的制作 • 1. 设计概述 • 先按要求,建立名为TSSM.DBF的表,表内有:“模块名”(C,20)、“使用说明”(M)两个字段,并录入若干数据,“使用说明”的数据可以暂不录入。 • 使用“表单向导”,用TSSM.DBF为数据源,制作一个表单,命名为TSSM.SCX。 • 按样文T06C所示,对表单重新布局。在表单中添加一个列表框控件。用列表框生成器将“TSSM.DBF”中的“模块名”添加到列表框中。 • 2. 列表框的代码编制 • 列表框List1的“InteractiveChage”事件的代码: • THISFORM.REFRESH &&刷新表单 • 3. “使用说明”的编辑 • 该表单在运行时,点击“编辑”按钮可以进入编辑状态,输入使用说明的有关文字内容。
【制作方法】 • 14.3.2“浏览任意一个表” 表单的制作 • 1. 设计概述 • 使用“表单设计器”,新建一个表单,命名为TSLB.SCX。 • 按样文T06D所示,在表单内放置:2个标签,1个列表框,1个表格,1个按钮。对表单进行布局。 • 2. 列表框的代码编制 • 在列表框List1的“Init”事件中编写代码: • public arrlist[ 1] • =ADIR(arrlist,"*.dbf") • =ASORT(arrlist) • thisform.list1.Rowsourcetype=5 • thisform.list1.Rowsource="arrlist" • 在列表框List1的“Click”事件中编写代码: • thisform.label2.caption="你选择的表是:"+this.value • thisform.grid1.recordsourcetype=0 • thisform.grid1.recordsource=thisform.list1.value
【小结】 • 1. 表单设计主要步骤: • (1)创建表单; • (2)添加对象(字段、控件),布局; • (3)设置对象属性; • (4)编写事件代码; • (5)保存、运行、调试表单。 • 2. 设计制作主表单(含菜单)的五个要点: • (1) 设置为顶层菜单; • (2) 设计制作菜单,保存,生成; • (3) 设置主表单的 ShowWindow 属性为 2; • (4) 编写主表单的 Init事件代码; • (5) 编写主表单的Destroy 事件代码。 • 【作业】 • 上机E(图书系统的表单制作)。 返回本课菜单