就象报表可以简化表和查询的打印工作一样,表单为数据库信息的显示、输入和编辑提供了非常简便的方法。可以用过去常用的纸面表单的形式来创建表单,以此来提供一个人们所熟悉的数据输入环境。
本章介绍了用表单向导、生成器以及“表单设计器”在表和视图中创建交互式表单的方法。有关以表单为基础建立应用程序的详细内容,请参阅《程序员指南》中的第九章“创建表单”。
本章要点:
表单显示了表和视图中的字段和记录,而且通常包含有定位控件,以帮助您从一个记录移到另一个记录。
在 Visual FoxPro 中,可以用以下任意一种方法生成表单:
每当您要新建一个表单时,都可以用表单向导来开始工作。向导会根据您对一系列问题的回答来生成一个表单。您可以在几种不同的类型选项中进行选择,并在创建之前预览表单。
若要利用向导创建表单
有两种表单向导可用来创建表单
通过在“工具”菜单上选择“向导”命令并选中“表单”,也可以从菜单上访问表单向导。
Visual FoxPro 提供了两个不同的表单向导来帮助您创建表单:
用表单向导创建的表单含有一组标准的定位按钮,用以在表单中显示不同的记录、编辑记录及搜索记录等。如果创建数据库中的表单,则“表单向导”可以使用存储在数据库中的输入掩码和格式设置。
如果不想用向导创建表单,还可以使用“表单设计器”。借助“表单设计器”,可以把字段和控件添加到表单中,并且通过调整和对齐这些控件来定制表单。
提供“快速表单”命令是为了使创建表单的工作变得更简单。此命令可以启动“表单生成器”,用它可以把表或视图中选定的字段添加到表单中。
若要创建一个新的表单
此时会显示“表单设计器”窗口,可以开始创建您的表单。
“表单设计器”窗口
若想把表或视图中的字段迅速放到表单中,可以选择“表单”菜单中的“快速表单”。“快速表单”将启动“表单生成器”,它用您选择的字段样式把表或视图中选定的字段添加到表单中。
“表单生成器”可以帮助您从表或视图中迅速创建表单。
若要应用“表单生成器”把字段添加到表单中
“表单生成器”创建的表单没有定位控件,因此您可以加入自己的定位控件。可以利用“控件生成器”向表单中添加定位控件,或者在 Visual FoxPro 提供的预定义定位控件库中选取。有关详细内容,请参阅本章稍后的“向表单中添加控件”部分。
完成表单的设计工作后,可以将其保存起来供以后使用。
若要保存表单
表单保存为具有 .scx 扩展名的文件。
保存表单后,可以运行该表单,看它是如何工作的。
若要运行表单
– 或者 –
也可以在“常用”工具栏上选择“运行”按钮。
提示 运行表单时,可快速切换到设计模式,方法是单击“常用”工具烂上的“修改表单”按钮。
通过在表单控件工具栏上选择控件可以添加新的控件,并把它们放在“表单设计器”窗口中。例如,您可能想在表单上为字段添加新的标签,以及添加诸如按钮、编辑框、列表框等新控件,或者添加图片、线条和形状来改善表单的外观。
若要向表单中添加控件
新的控件就出现在您设定的位置上,其后可以在表单中把它移动到最终位置上,也可以根据需要调整它的大小。
如果在添加控件时需要帮助,可以使用生成器添加控件并使它们与表单协同工作,也可以用“表单控件”工具栏和“属性”窗口来添加控件。
正象向导可以用来快速构造表单一样,生成器可以用来把控件添加到表单上。对于要添加到表单上的控件,生成器会询问一系列问题,并设置合适的属性,以使这些控件按照所希望的那样工作。
例如,如果想在表单上添加一个新的文本框,生成器会询问您喜欢哪种样式的文本框以及它显示哪个表的字段。
可以用两种方法访问生成器:从“表单设计器”快捷菜单,或者当向表单中添加控件时,激活表单控件工具栏上的“生成器锁定”按钮。
若要用生成器添加控件
使用“表单生成器”是向表单中添加新字段的一种快速方法。如果在表单中已经有了字段,则可以按已有字段的样式向表单中添加新的字段。也可以为要加进表单的字段选择不同的源,这样能很方便地把其它表或视图中的字段加进表单中。
若要向表单中添加字段
设置好表单控件工具栏上的“生成器锁定”按钮后,每次向表单中添加控件时都将自动使用“控件生成器”。
若要打开生成器锁定
可以使用组件管理库向表单中快速地添加自定义的控件和对象。组件管理库中包含了几十个自定义的控件和对象,使用这些控件和对象可以大大减少创建特定表单所需的代码数量。
若要打开组件管理库
当组件管理库打开时,可以从组件管理库中将自定义的控件和对象拖至表单中。
如果用表单向导创建了一个表单,然后又想向表单中添加控件,则可以使用向导控件库 — Wizstyle.vcx 中的控件来匹配已有控件的样式。
打开向导控件库后,即可使用表单控件工具栏中的向导型控件(如 chiselfield
,embossedmemo
等)。要找出所需控件,可选择一个已有的控件并指明它的类和类库。例如,一个标准的向导字段可以在 Wizstyle.vcx 的 Standardfield
类中找到。
提示 使用“表单控件”工具栏上的工具提示,可帮助识别类名。
若要在用向导生成的表单中匹配控件
注释 如果把一个表单移到一个新的目录或另一个系统中,应该把与表单相关的控件库同表单一起移走。
如果不想用生成器向表单中添加新控件,可以从表单控件工具栏中选择所需的控件,并把它放在表单中。
某些控件,例如标签、形状、线条,并不显示表或视图中的数据,也不执行操作,但其它大部分控件则不然。因此,需要告诉 Visual FoxPro 要用这些控件显示哪个字段,或者想让它们执行什么操作。例如,让一个文本框显示字段的值,或者用一个按钮执行一个命令。
要使新控件在表单中正确运行,需将其与要显示的表和字段连接或数据绑定在一起。将控件链接到控件源(即要显示的数据或要键入并存储数据的字段)的方法是,在“属性”窗口中设置 ControlSource 属性。
例如,如果往表单中添加一个新文本框,应该设置 ControlSource 属性来指向表或视图中的字段,告诉 Visual FoxPro 从何处得到该文本框的值。此后可设置其它属性来控制该控件的外观。
“数据环境设计器”可以方便地给表单添加新字段并且为字段设置 ControlSource 属性。
通过把与表单相关的表或视图放进表单的数据环境中,可以容易地把新控件与表或视图中的字段关联在一起。
完成数据环境的设置后,ControlSource 属性就会显示“数据环境设计器”中可用的字段,可以从中选择与控件相关联的字段。
如果正编辑一个用向导创建的表单,则将发现表单的数据环境中已经包含了用“表单向导”生成表单时用到的表或视图。
若要显示数据环境
数据环境设计器
若要向数据环境中添加表或视图
注释 如果数据环境为空,则系统会自动显示“添加表或视图”对话框。
注释 若要向“数据环境设计器”中添加视图,必须先打开数据库。
使用表单控件工具栏很容易向表单中添加新控件,以便显示表或视图中的字段。您可能需要选择与所显示字段的类型相符的控件类型。例如,用文本框控件显示单行字段或用编辑框控件显示备注。
“属性”窗口显示了添加到表单中的控件所具有的全部属性。可以用“属性”窗口中的 ControlSource 属性把添加到表单中的控件与指定字段关联起来,这些字段来自“数据环境设计器”中的表或视图。
若要显示“属性”窗口
注释 如果要用“属性”窗口设置控件属性,请确认“生成器锁定”的状态为关闭。
若要向表单中添加新字段
– 或者 –
从可用字段列表中选择一个字段。
对于控件的 ControlSource 属性可用的字段
选择了“按钮锁定”按钮时,可同时添加多个同类型的控件而无需在工具栏上多次单击控件按钮。例如,如果想向表单中添加 5 个文本框,确认已选定“按钮锁定”按钮,然后在表单控件工具栏上的文本框控件按钮上单击一下,就可以把 5 个文本框加到表单中。
如果在“表单控件”工具栏上双击控件按钮,按钮锁定功能会自动生效。为关闭按钮锁定,可再次单击“按钮锁定”按钮或者单击“表单控件”工具栏上的“选定对象”按钮。
可以快速创建一个或多个控件,方法是单击字段或表,然后直接将其拖至表单。您可从下列任何数据源中拖动字段或表,然后将其放置到正在设计的表单或容器类中:
当将字段或表拖至表单时,Visual FoxPro 根据您设置的选项决定要创建的控件类型。
当将字段或表拖至表单时,可指定控件的类型。例如,在任何时候将字符字段拖至表单,都可创建文本框控件。
若要建立字段类型到类的映象
若要设置拖动表或多个字段时创建的类,请从“字段类型”列表中选择“多用途型”。
若要... | 请选择... |
当将字段或表拖至表单或容器时,创建一个除绑定控件以外的标签。 | 拖放字段标题 |
将绑定型控件的 Comment 属性设置为“表设计器”中“字段”选项卡上“字段注释”框中指定的文本。 | 复制字段备注 |
将绑定型控件的 InputMask 属性设置为“表设计器”中“字段”选项卡指定的掩码。 | 复制字段输入掩码 |
将绑定型控件的 Format 属性设置为“表设计器”中“字段”选项卡指定的格式。 | 复制字段格式 |
注释 还可以在“表设计器”的“字段”选项卡“显示类”框中指定拖放的类。“表设计器”中的设置将覆盖此处的设置。
可以根据“选项”对话框中“字段映象”选项卡上指定的字段类型映象来快速创建单个控件。也可忽略默认映象而创建不同类型的类。
若要创建单个控件
注释 这个新创建控件的 ControlSource 属性被设置为字段的“Name”属性。
若要创建单个控件而忽略当前的字段映象
可以将整个表拖至表单上。默认情况下,将表拖至表单时会创建网格控件。可忽略默认设置而创建多重控件,使其与表中每个字段指定的默认字段类型映象一致。
若要创建网格控件
若要创建多重控件
如果用向导或生成器创建的表单不完全符合要求,则可以用“表单设计器”进行修改。利用“表单设计器”,很容易地就能移动和调整控件的大小,或者复制或删除控件、对齐控件以及修改 Tab 键次序。
若要修改一个已生成的表单
表单设计器工具栏提供了对常用命令和布局、对齐方式以及颜色控件的快速访问方法,这些是在设计或修改表单时要用到的。有关各工具栏上每一按钮用途的详细内容,可以利用工具提示功能或搜索“工具栏”以进一步了解。
“表单设计器”工具栏
创建表单之后,可能需要调整表单上控件的位置和大小。例如,要移动一个备注字段,或让一个文本框更长一些。
若要选择一个控件
若要选择相邻的控件。
若要移动控件
– 或者 –
选定控件然后用箭头键重新调整其大小。
若要调整控件的大小
当设计或修改表单时,可能需要复制一个已在表单上的控件。可以复制已有的控件并把它粘贴到表单上。
若要复制控件
如果创建了一个控件,后来又不需要了,或不想使用某个用向导创建的控件,则可以将其删除。
若要删除控件
利用布局工具栏上的按钮,很容易精确排列表单上的控件。例如,可能想使一组控件水平对齐或垂直对齐,或使一组相关控件具有相同的宽度或高度。要对齐控件,可先选定一组控件,然后在“布局”工作栏上选择一个布局按钮。
有关的详细内容,请参阅第七章“设计报表和标签”以及布局工具栏主题。
如果想在屏幕上精确地定位控件,可以使用“显示”菜单中的“显示位置”命令。如果选中该命令,则在“表单设计器”窗口底部的状态栏上会显示选定控件的坐标和度量单位。
状态栏中显示的控件坐标和度量单位
网格显示可以帮助在表单上对齐控件。用“格式”菜单中的“设置网格刻度”可以调整表格的尺寸,使用“选项”对话框“表单”选项卡中的“表格线”复选框可以打开或关闭表格显示。
还可以用“格式”菜单上的“对齐格线”命令,调整控件相对于表格的大小或位置。当选定“格式”菜单中的“对齐格线”时,放置在表单上的控件将自动与表格线对齐。用以下方法可以取消表格的作用:
当用户按下 Tab 键在表单上移动时,表单的 Tab 键次序决定了选定控件的顺序。
可以用两种不同的方法设置 Tab 键次序:交互方式,按照使用表单时选取控件的顺序单击控件;或在对话框中重排列表。
若要选择设置 Tab 键次序的方法
通过交互方式中,通过用指针单击控件可以设置 Tab 键次序,单击的顺序即为表单中选定控件时的顺序。
若要交互地改变 Tab 键次序
在列表方式中,可以通过在“Tab 键次序”对话框中重新排列控件的名字来设置 Tab 键次序。可以按行(在表单中由上向下)或按列(在表单中由左向右)设置 Tab 键次序。
通过重排列表中的控件来设置 Tab 键次序
若要用列表设置 Tab 键次序
可以改善表单,使之看起来更有趣且更易于使用。例如,可以画一个方框把一组相似的控件框在一起,或者用位图使表单看起来更专业化。
使用“表单设计器”,可以这样定制表单:
使用“属性”窗口中的字体属性,可以更改表单中所加控件上显示文字的样式和大小。可以从系统所支持的可用字体样式和大小中进行选择。若要改变表单中的文本,可改变字体属性,例如 FontName、FontSize 和 FontBold,这些属性均列在“属性”窗口中。
若要改变表单中的文本
可以向表单中添加形状和线条以定制表单。例如,把几组控件用分隔线分离开,或为隔离它们而把框中的一组相关控件包围起来。
若要向表单中添加线条
可以象处理其它控件一样移动线条或调整它的大小,也可以用“属性”窗口中的 LineSlant 属性改变线条的倾斜度。
若要向表单中添加形状
用“属性”窗口中的 Curvature 属性,可以改变所画的形状。
可以把图形添加到表单的背景中,或把图片添加到表单内的方框中。
若要向表单中添加图形
– 或者 –
可以控制表单的颜色,方法是根据存在的配色方案,使用 ColorSource 属性,还可以使用调色板工具栏改变表单和其中控件的前景或背景颜色。
若要用 ColorSource 属性设置表单颜色
若要设置表单或控件的前景色或背景色
若要创建自定义颜色
Visual FoxPro 的当前选项即可应用自定义颜色。
设定表单的设计区域可定制表单,确保其在特定的分辨率下正确显示。例如,如果知道用户使用的是 640 x 480 的分辨率来运行您设计的表单,则不能选择 1024 x 768 作为最大设计区域。
若要设置最大的表单设计区域
提示 如果选择“无”,“表单设计器”将不限制表单的设计大小。