VFP课程(8)市公开课特等奖市赛课微课一等奖课件_第1页
VFP课程(8)市公开课特等奖市赛课微课一等奖课件_第2页
VFP课程(8)市公开课特等奖市赛课微课一等奖课件_第3页
VFP课程(8)市公开课特等奖市赛课微课一等奖课件_第4页
VFP课程(8)市公开课特等奖市赛课微课一等奖课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VisualFoxPro

及其应用系统开发(八)南昌工程学院计算机科学与技术系刘东晓1第1页表单和控件表单(Form):是一个容器类,由一个或多个页面组成,每个页面又可包含多个控件对象。表单集(FormSet):一个或多个表单集合。表单集中表单能够统一处理,也可独立处理。控件(Control):是放在表单上用以显示数据、执行操作或使表单更易阅读一个图形对象。表单和控件是可视化编程集中表达所在,是组成应用程序不可缺乏元素。2第2页表单和控件实例3第3页控件VFP主要控件有:标签、文本框、编辑框、微调框、复选框、选项按钮、列表框、组合框、表格、页框、命令按钮、命令按钮组、线条、图象、形状等。参加P186依据控件和数据关系划分,控件分为:绑定型控件(BoundControl):内容与后端表、视图或查询中字段,或内存变量相关联。在该控件中输入、修改或选择值将保留在数据源中。非绑定型控件:内容不与后端表、视图或查询中字段,或内存变量相关联。4第4页选择适当控件选项按钮组、列表框、下拉列表框、复选框等可为用户提供一组预先设定数据选项;文本框、编辑框、组合框等可让用户输入预先不能确定数据;微调框可让用户输入给定范围数值型数据;命令按钮或命令按钮组能够让用户进行特定操作;计时器能够在给定时间间隔内执行指定操作;表格控件能够操作多行数据;标签、文本框、形状、线条、图形、图像等能够显示信息。5第5页设计表单标准使用用户熟悉控件、术语、处理方法来设计表单;表单外观、操作与Windows中常见窗口/对话框尽可能地一致,使表单尽可能地简单、易操作;依据任务不一样,设计不一样表单及表单中控件,方便于用户使用;应用程序中表单界面保持一致;依据表单中控件数量、所表示数据性质等,设计表单中控件布局或表单所包含页面数;含有一定容错能力。6第6页创建表单表单文件:.SCX/.SCT方法:1、表单向导:普通是创建操作数据表单-“数据窗口”(1)“文件”-“新建”-“表单”,“向导”(2)“工具”-“向导”-“表单”表单向导:为单个表创建操作数据表单。一对多表单向导:为两个相关表创建操作数据表单。

两个表之间一定要存在关系,生成表单中统计定位按钮只作用于父表,子表统计可经过窗口操作控制。2、表单设计器:“文件”-“新建”-“表单”,“新建文件”3、快速表单:“表单”-“快速表单”4、编程方法7第7页表单设计器使用“表单设计器”能够可视化地创建、修改表单和表单集。打开表单设计器:命令方式:CREATEFORMMODIFYFORM界面方式打开。表单设计器窗口及相关工具窗口:表单控件工具栏布局工具栏调色板工具栏属性窗口环境设置8第8页表单设计器及相关工具窗口9第9页创建第一个表单——浏览sb.dbf一、创建表单打开表单设计器,VFP自动创建一个默认名为“Form1”表单对象。

在默认情况下,和表单设计器窗口同时打开还有“表单控制”工具栏、“表单设计器”工具栏和“属性”窗口。移动鼠标到工具栏图形按钮上,即可看到说明按钮功效提醒文本。当然,假如愿意话,您还能够经过系统菜单“显示”下菜单项来打开更多工具栏和相关窗口。

参见前页10第10页创建第一个表单在属性窗口来改变表单名字(BrowseSb)、标题(设备情况)和背景色等属性了。注意:表单名字是用于代码中内部名,而标题是在表单顶端出现内容。属性窗口中:Name=BrowseSbCaption=设备情况11第11页12第12页创建第一个表单二、设置数据环境在系统菜单“显示/数据环境”上单击得到数据环境窗口,在同时出现“添加表或视图”对话框中选取“sb”表,按“添加”命令按钮将其加入数据环境后关闭此对话框。13第13页14第14页创建第一个表单三、向表单中添加字段在表单中,被添加表字段总是和某种类型控制对象相关联,这么就能经过控制对象属性、事件和方法来处理和操作字段了。向表单中添加字段方法有各种,下面我们将分别采取不一样方法来添加字段。15第15页创建第一个表单1、添加“编号”字段

在“表单控制”工具栏上单击“文本框”图形按钮,移动鼠标指针到表单上,这时鼠标指针变成十字形,在适当位置按下鼠标左键,则一个名为“Text1”文本框对象被创建。注意这时文本框对象还是独立对象,并没有和编号字段发生关联,现在我们设置它和编号字段关联:在属性窗口“数据”选项卡中,选取“ControlSource”属性,单击属性设置框右边下箭头按钮,能够看到包含在数据环境中sb表字段显示在设置框中,选择“sb.编号”,则此时Text1已与编号字段相关联。接着,我们为Text1对象增加说明文字。在“表单控制”工具栏上单击“标签”图形按钮,采取与前面相同方法在表单Text1对象前建立一个名为“Label1”标签对象。在属性窗口“布局”选项卡中,修改它“Caption”属性为“编号”,在“AutoSize”上双击以设定这个属性为.T.,修改“FontSizes”属性值为14(字体大小)。16第16页17第17页创建第一个表单2、添加“名称”字段在数据环境窗口中“名称”字段上按下鼠标左键不放,将其拖动到表单上Text1对象下方,释放鼠标按钮,则在表单上创建了一个文本框对象“txt名称”和一个显示为“名称”标签对象。查看“txt名称”“Controlsource”属性,它自动设置为“sb.名称”。这种方式设置对象将自动与字段相关联。将“数据环境”窗口中“sb”表里剩下字段全都以这种方式拖到表单上去。然后修改其控件大小和字体大小。一样方法能够设置控件大小(Width和Height)和位置(Left和Top)。18第18页19第19页创建第一个表单四.向表单添加控制仅有字段表单还不完善,要使表单能很好地运行,还必须添加一些控制,实现诸如关闭表单、移动统计指针等功效。1.添加命令按钮我们先添加一个命令按钮来关闭表单。在“表单控制”工具栏上选择“命令按钮”,然后在表单上创建一个命令按钮对象,对象名缺省为Command1。改变其“Caption”属性为“退出”。鼠标双击该按钮,打开代码窗口。在Click事件中输入以下关闭表单代码:Thisform.Release&&调用表单Release方法来关闭表单20第20页21第21页2.添加命令按钮组

为了实现移动统计指针功效,我们再向表单上添加一个命令按钮组对象,该对象缺省名为CommandGroup1,包含两个命令按钮Command1和Command2。将两个命令按钮Caption分别改为“上一统计”和“下一统计”。激活代码窗口,为命令按钮组CommandGroup1对象Click事件输入以下代码:(点右键,选“代码”,出当代码窗口,过程选“Click”)DOCASECASETHIS.Value=1

&&Value属性指明单击了哪个按钮Skip-1&&统计指针向前移动一个统计IfBof()&&统计指针在表头,则Bof()返回.T.,不然返回.F.GoTop&&统计指针移动到第一个统计EndifThisform.RefreshCASETHIS.Value=2Skip1&&统计指针向后移动一个统计IfEof()&&统计指针在表尾,则Eof()返回.T.,不然返回.F.GoBottom

&&统计指针移动到末一个统计EndifThisform.RefreshENDCASE使用SKIP命令移动了统计指针,并不会改变表单上字段值显示,所以最终一行语句作用是调用表单Refresh方法来更新字段显示,使它们显示移动统计指针后当前统计值。22第22页23第23页创建第一个表单五、运行表单保留表单为“数据库\sbbrw.scx”,单击VFP惯用工具栏上运行按钮。运行情况以下:24第24页表单数据环境表单(集)数据环境包含了与表单交互作用表和视图,以及表单要求表之间关系。数据环境是表单一部分,并没有自己独立存放空间。引入数据环境目标:打开或运行表单时它自动地打开表单所基于表或视图;将表单属性窗口中ControlSource属性与数据环境中全部字段相连;关闭或释放表单时自动地关闭表和视图。在创建表单时,首先要设置表单数据环境,以确定表单所用到表和视图。25第25页设置表单数据环境打开数据环境设计器:在表单设计器标题栏点右键—选“数据环境”向数据环境中添加表或视图:在数据环境设计器标题栏点右键—“添加”-选数据库及相关表点添加,或点“其它”选相关表。从数据环境中移去表或视图:在数据环境设计器中已存在表标题上点右键-“移去”在数据环境中设置关系假如添加进数据环境设计器表有永久关系,这些关系将自动地加到数据环境中;假如没相关系,能够在数据环境中设置这些关系。(拖动字段即可)26第26页设置表单数据环境演示27第27页向表单中添加对象表单中能够添加对象类型有:容器对象控件对象用户自定义对象OLE对象经过“表单控件”工具栏添加对象经过“数据环境”添加对象28第28页容器对象集合属性和计数属性集合属性:是数组,用以引用每个包含在其中对象。计数属性:表明容器所包含对象数目。容器集合属性计数属性备注_SCREEN、表单集FormsFormCount只读表单、页面、列、工具栏、容器ControlsControlCount页框PagesPageCount可读写表格ColumnsColumnCount命令组、选项组ButtonsButtonCount29第29页给表单(集)添加属性和方法程序用户能够依据需要为表单(集)添加任意个数属性和方法程序。创建新属性:在“表单设计器”中,表单新建属性。新建属性默认值为逻辑值.F.。新建属性能够为数组。如:ABC[4,7]创建新方法程序:表单新建方法程序调用自定义方法程序与调用基类方法程序一样。30第30页设置表单与所包含对象属性在“属性”窗口中设置属性,属性值更改后以粗体显示。普通步骤:选定对象在“属性”窗口中选择属性在“属性”设置框中设置属性值或利用函数按钮设置。注意点:部分属性值是只读。(斜体显示)字符型属性值无须用引号括起来。若用表示式赋值,则要在表示式前加上“=”。技巧:能够为一组对象设置同一属性值。31第31页表单惯用属性AlwaysOnTop:表单是否总处于其它打开窗口之上。AutoCenter:初始化时自动居中。BackColor:表单窗口颜色。BorderStyle:表单边框类型。Caption:标题。Closable:能否经过关闭按钮或控制菜单关闭。ControlBox:是否显示控制菜单。DataSession:控制表单(集)中表是在当前工作期打开还是私有工作期打开。32第32页表单惯用属性MaxButton:是否有最大化按钮。MinButton:是否有最小化按钮。Movable:控制表单能否被拖动。Name:对象名称。ScaleMode:度量单位。WindowState:控制表单最大化、最小化还是正常态。WindowType:控制表单是模式还是非模式。模式表单:用户必须先关闭此表单才能访问应用程序中其它界面。33第33页编辑事件和方法代码事件既能够是用户行为,也能够是系统行为。方法只能经过程序以特定方式激活。代码编辑窗口显示代码从“属性”窗口打开双击对象34第34页表单保留和运行表单保留表单文件:.SCX/.SCT本质上是表文件表单能够另存为类表单运行“项目管理器”中运行“表单设计器”中运行命令:DOFORM表单文件名35第35页VFP常见属性和事件参见P191和P192这些属性和事件将是今后编程中经常使用到。36第36页对象引用通惯用以下关键字开头:

THISFORMSET当前表单集THISFORM当前表单THIS当前对象引用格式:

THISFORMSET.属性名/事件名/方法名/对象名THISFORM.属性名/事件名/方法名/对象名THIS.属性名/事件名/方法名/对象名对象名.属性名/事件名/方法名/对象名逐层引用——绝对路径如:THISFORM.某对象名.属性名/事件名/方法名/对象名THISFORM.Text1.Value=DATE()引用容器(父级容器)——相对路径Control.Parent.属性名/事件名/方法名/对象名如:THIS.Parent.Text1.Value=DATE()37第37页举例例1:参见P195例2:习题61、建表单2、在表单上建立文本框Text1和命令按钮Command13、双击Command1,进入代码窗口4、过程选MouseDown,输入以下代码LPARAMETERSnButton,nShift,nXCoord,nYCoord&&这行自动生成了

DOCASECASEnButton=1&&左键ThisForm.Text1.Value=DATE()CASEnButton=2&&右键,能够不要CASEnButton=4&&中键,能够不要ENDCASE5、过程再选MouseUp,输入以下代码LPARAMETERSnButton,nShift,nXCoord,nYCoord&&这行自动生成了

IFnButton=1THEN

This.Parent.Text1.Value=TIME()ENDIF38第38页惯用控件介绍标签(Label)用以显示文本图形控件。其中文本能被用户直接修改,通惯用于显示提醒信息。Caption:标题,最多256个字符。BackStyle:设置标签背景是否透明。AutoSize:确定是否能够自动地调整标签大小。WordWrap:确定标签上文本能否换行。

39第39页惯用控件介绍图像(Image)能够显示图像,可显示图像格式有:.BMP、.ICO、.GIF、.JPGPicture:指定显示图像文件名。可在事件过程中设置,如:THISFORM.Image1.Picture=“c:\vfp\fox.bmp”40第40页惯用控件介绍线条用于创建一个水平、垂直或对角线条。Left:容器左边界与控件左边界之间距离。Top:容器上边界与控件上边界之间距离。Height:控件高度。=0,则为水平线Width:控件宽度。=0,则为垂直线BorderWidth:指定线条线宽。(0~8192像素点)BorderStyle:指定线型。LineSlant:指定线条倾斜方向。(\(默认):从左上到右下;/:从左下到右上。)41第41页惯用控件介绍形状用于创建各种形状图形。Curvature:决定显示会么样图形。范围:0~99。0表示无曲率,用来创建矩形;1~98指定圆角,数字越大,曲率越大;99表示最大曲率,用来创建圆和椭圆(Hight和Width值相同时为圆)。FillStyle:指定用来填充形状图案。SpecialEffect:指定控件样式(三维或平面)。42第42页举例创建“汽车修理管理系统”封面

参见P203将“汽车修理管理系统”封面与主菜单联接起来43第43页44第44页惯用控件介绍文本框(TextBox)能够显示、输入、编辑非备注型字段数据。ControlSource:指定与文本框绑定数据源。Value:指定文本框当前选定值。InputMask:指定数据输入格式和显示方式。Format:指定Value属性输入和输出格式。PasswordChar:显示口令字符。能够使用文本框生成器来设置文本框相关属性。若文本框取得焦点时选中全部文本,则可在其GotFocus事件中加入以下代码:textbox::gotfocusthis.selstart=0this.sellength=len(this.value)45第45页惯用控件介绍编辑框(EditBox)编辑框与文本框用途相同;编辑框能够输入或编辑长字段或备注型字段;编辑框允许自动换行并能用光标移动键、操作滚动条来浏览文本;ScrollBars:决定编辑框是否有垂直滚动条。在实际操作时向表单中添加文本框与编辑框时能够利用对应生成器。许多控件都有生成器。46第46页惯用控件介绍列表框(ListBox)与组合框(ComboBox)用于显示一组预定值并能够经过滚动条来操作浏览列表信息,用户可从列表中选择需要数据。RowSource:决定列表框数据源(行源)。RowSourceType:列表框数据源类型。ControlSource:指定从列表中选择值保留在何处。组合框类似列表框和文本框组合,可在其中输入值或从列表中选择条目。Style:决定组合框类型。47第47页列表框与组合框使用RowSourceType属性值为0或者1时,可用Sorted属性指定列表部分名项是否按字母排序。RowSourceType值为3或4时,Requery方法重新查询列表框或组合框控件所基于行源。使用Requery方法可确保控件中数据最新。48第48页列表框与组合框使用在使用列表框时,有时需要依据列表框中选择查看或编辑对应统计,可有各种方法做到:当RowSourceType属性值为2、6时,在列表中选择一个值后,统计指针将自动移到所选统计上,然后在列表框InteractiveChange事件中加入Refresh方法。当RowSourceType属性值为0、1、3、4、5时,在InteractiveChange事件中选择包含所需统计表,然后搜索想要值。49第49页一对多表单中使用利用当地表和视图都能够实现:当地表:RowSourceType属性值为2、6时,且RowSource属性是当地表,该当地表在数据环境中具相关系设置,则当用户选择新值时,可使用THISFORM.REFRESH方法。一对多中“多”方自动显示与关系中父表表示式相匹配统计。视图:在视图设计器中创建视图时,将SELECT语句中参数设置为列表Value属性,即:

SELECT*FROMkcWHERErkjsgh=?_screen.activeform.gh.value50第50页惯用控件介绍命令按钮与命令按钮组命令按钮(CommandButton)惯用来开启一个事件以完成某种功效。Caption:指定按钮标题。Picture:指定按钮图片。Default:取“真”时,可按“回车”键选择此按钮。Cancel:取“真”时,可按“Esc”键选择此按钮。Enabled:指定能否响应用户引发事件。ButtonCount:指定命令按追钮组中按钮数目对命令按钮组能够单个或作为一组操作其中按钮。51第51页举例“汽车修理”表单“零件订货”表单52第52页惯用控件介绍选项按钮组(OptionGroup)包含选项按钮容器控件。有时也叫单项选择按钮。选项按钮组允许用户从中选择一个按钮,选定某个按钮后将释放先前选择,选项按钮旁圆点指示当前选择。ButtonCount:设置选项按钮组中选项按钮数目。Caption:标题属性。ControlSource:约定数据源。Value:表示选定是第几个按钮。53第53页惯用控件介绍复选框(CheckBox)指定或显示一个逻辑状态:真/假、开/关、是/否。复选框有三种可能状态:0或F、1或T、2或NULL。ControlSource:设置为表中逻辑型字段。当前统计值为“真”时,选中;“假”时,未选中;当前统计为空值时复选框显示为灰色。54第54页惯用控件介绍表格(Grid)表格是一个按行和列显示数据容器对象。表格包含列除了包含标头(Header)和控件外,每列还有自己一组属性、事件和方法。表格惯用于显示一对多关系中子表。假如表单数据环境包含两表之间一对多关系,要在表单中显示这个一对多关系,只需要把父表字段和子表拖到表单中即可。表格RecordSource等属性自动设置。55第55页表格惯用属性RecordSource:指定表格数据源。RecordSourceType:指定表格数据源类型。ColumnCount:设置表格列数。(默认值为-1)DeleteMark:指定表格控制中是否出现删除标识列。DynamicFontName:确定列中显示文本所用字体名。DynamicFontSize:确定列对象汉字本字体大小。DynamicForeColor:确定列对象前景色。

56第56页惯用控件介绍微调框(Spinner)经过单击微调框上、下箭头或在微调框中直接输入一个数值可实现微调控件在一个数值范围内进行选择。ControlSource:指定数据源。Value:指定当前值。KeyBoardHighValue:指定从键盘输入微调框最大值。SpinnerHighValue:指定经过单击微调框可输入最大值。KeyBoardLowValue:指定从键盘输入微调框最小值。SpinnerLowValue:指定经过单击微调框可输入最小值。Increment:指定步长值。(默认1.00)57第57页惯用控件介绍计时器(Timer)计时器是在应用程序中用来处理重复发生事件控件。该控件在运行时不可见,用于后台处理。Enabled:取值为“.T.”时,计时器在表单加载时就开始工作。Interval:指定控件Timer事件时间间隔,单位为毫秒。决定事件发生频率。Reset方法可重置计时器控件,让它从0开始。58第58页惯用控件介绍页框(PageFrame)页框是包含页面容器对象。对页面所在表单使用Refresh方法时,只刷当前活动页面。PageCount:指定页框包含页面数(默认为2)。Tabs:页框该属性确定页面“选项卡”是否可见(默认为.T.)。TabStyle:用于指定选项卡都是相同大小且都与页框宽度相同。59第59页页框管理选项卡长标题假如选项卡标题太长,不能在给定页框宽度和页面数选项卡上显示出来,则能够:TabStretch属性设置为1-剪裁:只显示放入选项卡中字符(默认)TabStretch属性设置为0-堆积:选项卡层叠起来,方便全部选项卡中整个标题都能显示出来。在程序中换页面不论页框是否含有选项卡,都能够从程序中使用ActivePage属性来激活一个页面。60第60页OLEOLE是一个协议。依据该协议,一个OLE对象(如电子表格、WORD文档等)能够链接或嵌入表单中或表通用字段中。嵌入用于将一个对象副本从一个应用程序插入另一个应用程序。对象副本嵌入后,不再与原来对象有任何关联。假如原来对象有所改变,嵌入对象不受影响。链接表示在源文档与目标文档之间一个连接。链接对象保留了来自源文档信息,并对两文档之间连接进行维护。当源文档中信息发生改变时,这种改变将在目标文档中表达出来。61第61页OLE容器控件和OLE绑定型控件

OLE容器控件中对象没有自己事件集合。OLE容器控件与OLE绑定型控件也不一样,它不与VFP表一个通用字段相连接。OLE绑定型控件允许用表中通用字段显示一个OLE对象内容。62第62页增强控件易用性设置访问键设置访问键能在表单任何地方经过按Alt和访问键来选择一个控件。设置方法:在Caption属性中,把作为访问键字母前加上“\<”。若要为文本框指定访问键,则:首先创建一个标签,在标签Caption属性中设置包含有访问键值,然后确保标签TAB键次序在文本框之前,且要相邻。63第63页增强控件易用性设置控件“Tab键次序”TAB键次序是指在表单上按下TAB键时,焦点从一个对象移到另一个对象次序。表单TAB键次序决定了控件选择次序。系统默认TAB键次序是控件添加到表单上次序。设置TAB键次序64第64页增强控件易用性设置工具提醒文本ToolTipText:当用户鼠标指针在控件上停留时将显示该属性指定文本。表单ShowTips属性决

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论