第八章:用表单管理数据

就象报表可以简化表和查询的打印工作一样,表单为数据库信息的显示、输入和编辑提供了非常简便的方法。可以用过去常用的纸面表单的形式来创建表单,以此来提供一个人们所熟悉的数据输入环境。

本章介绍了用表单向导、生成器以及“表单设计器”在表和视图中创建交互式表单的方法。有关以表单为基础建立应用程序的详细内容,请参阅《程序员指南》中的第九章“创建表单”

本章要点:

创建表单

表单显示了表和视图中的字段和记录,而且通常包含有定位控件,以帮助您从一个记录移到另一个记录。

在 Visual FoxPro 中,可以用以下任意一种方法生成表单:

用表单向导创建表单

每当您要新建一个表单时,都可以用表单向导来开始工作。向导会根据您对一系列问题的回答来生成一个表单。您可以在几种不同的类型选项中进行选择,并在创建之前预览表单。

若要利用向导创建表单

  1. "项目管理器"窗口中选择“文档”选项卡,然后选择“表单”。

  2. 选择“新建”。

  3. 选择“表单向导”。

  4. 选择要创建的表单类型。

  5. 按照向导屏幕上的指令操作。

    有两种表单向导可用来创建表单

通过在“工具”菜单上选择“向导”命令并选中“表单”,也可以从菜单上访问表单向导。

Visual FoxPro 提供了两个不同的表单向导来帮助您创建表单:

用表单向导创建的表单含有一组标准的定位按钮,用以在表单中显示不同的记录、编辑记录及搜索记录等。如果创建数据库中的表单,则“表单向导”可以使用存储在数据库中的输入掩码和格式设置。

用“表单设计器”创建表单

如果不想用向导创建表单,还可以使用“表单设计器”。借助“表单设计器”,可以把字段和控件添加到表单中,并且通过调整和对齐这些控件来定制表单。

提供“快速表单”命令是为了使创建表单的工作变得更简单。此命令可以启动“表单生成器”,用它可以把表或视图中选定的字段添加到表单中。

若要创建一个新的表单

  1. "项目管理器"窗口中选择“文档”选项卡。

  2. 选择“表单”图标。

  3. 选择“新建”。

  4. 选择“新建表单”。

此时会显示“表单设计器”窗口,可以开始创建您的表单。

“表单设计器”窗口

用“快速表单”命令添加字段

若想把表或视图中的字段迅速放到表单中,可以选择“表单”菜单中的“快速表单”。“快速表单”将启动“表单生成器”,它用您选择的字段样式把表或视图中选定的字段添加到表单中。

“表单生成器”可以帮助您从表或视图中迅速创建表单。

若要应用“表单生成器”把字段添加到表单中

  1. “表单设计器”中,选择“表单”菜单中的“快速表单”。

  2. 在“表单生成器”中选择字段和样式,然后选择“确定”按钮以生成表单。

“表单生成器”创建的表单没有定位控件,因此您可以加入自己的定位控件。可以利用“控件生成器”向表单中添加定位控件,或者在 Visual FoxPro 提供的预定义定位控件库中选取。有关详细内容,请参阅本章稍后的“向表单中添加控件”部分。

保存表单

完成表单的设计工作后,可以将其保存起来供以后使用。

若要保存表单

表单保存为具有 .scx 扩展名的文件。

运行表单

保存表单后,可以运行该表单,看它是如何工作的。

若要运行表单

也可以在“常用”工具栏上选择“运行”按钮。

提示 运行表单时,可快速切换到设计模式,方法是单击“常用”工具烂上的“修改表单”按钮。

向表单中添加控件

通过在表单控件工具栏上选择控件可以添加新的控件,并把它们放在“表单设计器”窗口中。例如,您可能想在表单上为字段添加新的标签,以及添加诸如按钮、编辑框、列表框等新控件,或者添加图片、线条和形状来改善表单的外观。

若要向表单中添加控件

  1. 表单控件工具栏上单击一个控件。

  2. 在“表单设计器”窗口中,在要放置控件的地方拖动鼠标创建一个矩形框。

新的控件就出现在您设定的位置上,其后可以在表单中把它移动到最终位置上,也可以根据需要调整它的大小。

如果在添加控件时需要帮助,可以使用生成器添加控件并使它们与表单协同工作,也可以用“表单控件”工具栏和“属性”窗口来添加控件。

用生成器向表单中添加控件

正象向导可以用来快速构造表单一样,生成器可以用来把控件添加到表单上。对于要添加到表单上的控件,生成器会询问一系列问题,并设置合适的属性,以使这些控件按照所希望的那样工作。

例如,如果想在表单上添加一个新的文本框,生成器会询问您喜欢哪种样式的文本框以及它显示哪个表的字段。

可以用两种方法访问生成器:从“表单设计器”快捷菜单,或者当向表单中添加控件时,激活表单控件工具栏上的“生成器锁定”按钮。

若要用生成器添加控件

  1. 表单控件工具栏上选择“生成器锁定”按钮。

  2. 从“表单控件”工具栏上选择所需的控件,并把它放在表单上。

  3. 在生成器内的选项卡中填写有关信息。

使用控件生成器向表单中添加控件。

使用“表单生成器”是向表单中添加新字段的一种快速方法。如果在表单中已经有了字段,则可以按已有字段的样式向表单中添加新的字段。也可以为要加进表单的字段选择不同的源,这样能很方便地把其它表或视图中的字段加进表单中。

若要向表单中添加字段

  1. "项目管理器"窗口中打开表单。

  2. 在“表单”菜单中选择“快速表单”。

  3. 在“样式”选项卡中,选择所需新控件的样式。

  4. 在“字段选取”选项卡中,选择字段的源以及想要添加的字段。

  5. 选择“确定”。

对所有控件使用生成器

设置好表单控件工具栏上的“生成器锁定”按钮后,每次向表单中添加控件时都将自动使用“控件生成器”。

若要打开生成器锁定

使用组件管理库向表单中添加控件

可以使用组件管理库向表单中快速地添加自定义的控件和对象。组件管理库中包含了几十个自定义的控件和对象,使用这些控件和对象可以大大减少创建特定表单所需的代码数量。

若要打开组件管理库

当组件管理库打开时,可以从组件管理库中将自定义的控件和对象拖至表单中。

向一个由向导生成的表单中添加控件

如果用表单向导创建了一个表单,然后又想向表单中添加控件,则可以使用向导控件库 — Wizstyle.vcx 中的控件来匹配已有控件的样式。

打开向导控件库后,即可使用表单控件工具栏中的向导型控件(如 chiselfieldembossedmemo 等)。要找出所需控件,可选择一个已有的控件并指明它的类和类库。例如,一个标准的向导字段可以在 Wizstyle.vcx 的 Standardfield 类中找到。

提示 使用“表单控件”工具栏上的工具提示,可帮助识别类名。

若要在用向导生成的表单中匹配控件

  1. “表单设计器”中打开表单。

  2. 从“表单控件”工具栏中选择“查看类”按钮,然后选择“添加”。

  3. 在“打开”对话框中,在 Wizards 子目录中选中 Wizstyle.vcx 并选择“确定”。

  4. 在“表单控件”工具栏中,选择对应于表单中已有控件的控件,并把它拖到表单中。

    注释 如果把一个表单移到一个新的目录或另一个系统中,应该把与表单相关的控件库同表单一起移走。

添加控件和设置控件属性

如果不想用生成器向表单中添加新控件,可以从表单控件工具栏中选择所需的控件,并把它放在表单中。

某些控件,例如标签形状线条,并不显示视图中的数据,也不执行操作,但其它大部分控件则不然。因此,需要告诉 Visual FoxPro 要用这些控件显示哪个字段,或者想让它们执行什么操作。例如,让一个文本框显示字段的值,或者用一个按钮执行一个命令。

要使新控件在表单中正确运行,需将其与要显示的表和字段连接或数据绑定在一起。将控件链接到控件源(即要显示的数据或要键入并存储数据的字段)的方法是,在“属性”窗口中设置 ControlSource 属性。

例如,如果往表单中添加一个新文本框,应该设置 ControlSource 属性来指向表或视图中的字段,告诉 Visual FoxPro 从何处得到该文本框的值。此后可设置其它属性来控制该控件的外观。

“数据环境设计器”可以方便地给表单添加新字段并且为字段设置 ControlSource 属性。

设置数据环境

通过把与表单相关的表或视图放进表单的数据环境中,可以容易地把新控件与表或视图中的字段关联在一起。

完成数据环境的设置后,ControlSource 属性就会显示“数据环境设计器”中可用的字段,可以从中选择与控件相关联的字段。

如果正编辑一个用向导创建的表单,则将发现表单的数据环境中已经包含了用“表单向导”生成表单时用到的表或视图。

若要显示数据环境

若要向数据环境中添加表或视图

  1. 从“数据环境”菜单中选择“添加”。

    注释 如果数据环境为空,则系统会自动显示“添加表或视图”对话框。

  2. 在“添加表或视图”对话框中,选择“表”或“视图”选项。

  3. 选择所需的表或视图。

  4. 选择“添加”。

    注释 若要向“数据环境设计器”中添加视图,必须先打开数据库。

向表单中添加控件

使用表单控件工具栏很容易向表单中添加新控件,以便显示视图中的字段。您可能需要选择与所显示字段的类型相符的控件类型。例如,用文本框控件显示单行字段或用编辑框控件显示备注。

“属性”窗口显示了添加到表单中的控件所具有的全部属性。可以用“属性”窗口中的 ControlSource 属性把添加到表单中的控件与指定字段关联起来,这些字段来自“数据环境设计器”中的表或视图。

若要显示“属性”窗口

若要向表单中添加新字段

  1. 表单控件工具栏中选择一个数据控件,并把它拖到“表单”窗口中以创建该控件。

  2. 在“属性”窗口中选择“数据”选项卡,并选取 ControlSource 属性。

  3. 输入字段名。

    – 或者 –

    从可用字段列表中选择一个字段。

    对于控件的 ControlSource 属性可用的字段

同时添加多个控件

选择了“按钮锁定”按钮时,可同时添加多个同类型的控件而无需在工具栏上多次单击控件按钮。例如,如果想向表单中添加 5 个文本框,确认已选定“按钮锁定”按钮,然后在表单控件工具栏上的文本框控件按钮上单击一下,就可以把 5 个文本框加到表单中。

如果在“表单控件”工具栏上双击控件按钮,按钮锁定功能会自动生效。为关闭按钮锁定,可再次单击“按钮锁定”按钮或者单击“表单控件”工具栏上的“选定对象”按钮。

快速添加控件

可以快速创建一个或多个控件,方法是单击字段,然后直接将其拖至表单。您可从下列任何数据源中拖动字段或表,然后将其放置到正在设计的表单或容器类中:

当将字段或表拖至表单时,Visual FoxPro 根据您设置的选项决定要创建的控件类型。

设置“字段映象”选项

当将字段拖至表单时,可指定控件的类型。例如,在任何时候将字符字段拖至表单,都可创建文本框控件。

若要建立字段类型到类的映象

  1. 从“工具”菜单中,选择“选项”。

  2. 选择“字段映象”选项卡。

  3. 若要改变字段类型映象,在“将字段类型映象到类中”区域中选择一行,再选择“修改”。

  4. 在“字段类型映象”对话框中,从“字段类型”列表中选择一个字段类型。

    若要设置拖动表或多个字段时创建的,请从“字段类型”列表中选择“多用途型”。

  5. 若要选择将与选定字段类型关联的控件所在的类库(扩展名为 .vcx 的文件),请选择“浏览”。

  6. 从“文件类型”列表中,选择一个类名。当选定类型的字段被拖至表单时,系统将创建在此指定的类。

  7. 选择“确定”,接受映象。

  8. 在“数据库选项”区域,设置选项:
    若要... 请选择...
    当将字段或表拖至表单或容器时,创建一个除绑定控件以外的标签。 拖放字段标题
    将绑定型控件的 Comment 属性设置为“表设计器”中“字段”选项卡上“字段注释”框中指定的文本。 复制字段备注
    将绑定型控件的 InputMask 属性设置为“表设计器”中“字段”选项卡指定的掩码。 复制字段输入掩码
    将绑定型控件的 Format 属性设置为“表设计器”中“字段”选项卡指定的格式。 复制字段格式

注释 还可以在“表设计器”的“字段”选项卡“显示类”框中指定拖放的类。“表设计器”中的设置将覆盖此处的设置。

快速创建单个控件

可以根据“选项”对话框中“字段映象”选项卡上指定的字段类型映象来快速创建单个控件。也可忽略默认映象而创建不同类型的类。

若要创建单个控件

若要创建单个控件而忽略当前的字段映象

  1. 在“数据环境设计器”中的任意字段上单击鼠标右键,并将其拖至表单上。

  2. 从快捷菜单上选择“创建其他的控件”。

  3. 在“打开”对话框中选择一个“可视类库”文件 (.vcx)。

  4. 从“类名”框中选择要创建的控件类型,再选择“打开”。

快速创建多重控件

可以将整个拖至表单上。默认情况下,将表拖至表单时会创建网格控件。可忽略默认设置而创建多重控件,使其与表中每个字段指定的默认字段类型映象一致。

若要创建网格控件

若要创建多重控件

  1. 在“数据环境设计器”、“数据库设计器”"项目管理器"窗口中,以鼠标右键单击任意突出显示的两个或多个字段。

  2. 从快捷菜单中选择“创建多重控件”。

修改表单

如果用向导或生成器创建的表单不完全符合要求,则可以用“表单设计器”进行修改。利用“表单设计器”,很容易地就能移动和调整控件的大小,或者复制或删除控件、对齐控件以及修改 Tab 键次序

若要修改一个已生成的表单

  1. “"项目管理器"窗口”中,选择“文档”选项卡。

  2. 选择“表单”图标和表单的名称。

  3. 选择“修改”。

使用“表单设计器”工具栏

表单设计器工具栏提供了对常用命令和布局、对齐方式以及颜色控件的快速访问方法,这些是在设计或修改表单时要用到的。有关各工具栏上每一按钮用途的详细内容,可以利用工具提示功能或搜索“工具栏”以进一步了解。

“表单设计器”工具栏

选择、移动和缩放控件

创建表单之后,可能需要调整表单上控件的位置和大小。例如,要移动一个备注字段,或让一个文本框更长一些。

若要选择一个控件

若要选择相邻的控件。

  1. 表单控件工具栏中选择“选定对象”按钮。

  2. 拖动指针,在需要选定的控件周围画一个框。

若要移动控件

  1. 单击选定的控件。

  2. 在表单窗口中将该控件拖动到新的位置。

    – 或者 –

    选定控件然后用箭头键重新调整其大小。

若要调整控件的大小

  1. 选定控件。

  2. 拖动尺寸控点,以增加该控件的长度、宽度或整体尺寸。

复制和删除表单控件

当设计或修改表单时,可能需要复制一个已在表单上的控件。可以复制已有的控件并把它粘贴到表单上。

若要复制控件

  1. 用指针选择一个控件。

  2. 从“编辑”菜单中选择“复制”。

  3. 从“编辑”菜单中选择“粘贴”。

  4. 使用指针把该控件重新拖动到所需的位置上。

如果创建了一个控件,后来又不需要了,或不想使用某个用向导创建的控件,则可以将其删除。

若要删除控件

对齐控件

利用布局工具栏上的按钮,很容易精确排列表单上的控件。例如,可能想使一组控件水平对齐或垂直对齐,或使一组相关控件具有相同的宽度或高度。要对齐控件,可先选定一组控件,然后在“布局”工作栏上选择一个布局按钮。

有关的详细内容,请参阅第七章“设计报表和标签”以及布局工具栏主题。

调整控件的位置

如果想在屏幕上精确地定位控件,可以使用“显示”菜单中的“显示位置”命令。如果选中该命令,则在“表单设计器”窗口底部的状态栏上会显示选定控件的坐标和度量单位。

状态栏中显示的控件坐标和度量单位

控件网格显示

网格显示可以帮助在表单上对齐控件。用“格式”菜单中的“设置网格刻度”可以调整表格的尺寸,使用“选项”对话框“表单”选项卡中的“表格线”复选框可以打开或关闭表格显示。

还可以用“格式”菜单上的“对齐格线”命令,调整控件相对于表格的大小或位置。当选定“格式”菜单中的“对齐格线”时,放置在表单上的控件将自动与表格线对齐。用以下方法可以取消表格的作用:

设置控件的 Tab 键次序

当用户按下 Tab 键在表单上移动时,表单的 Tab 键次序决定了选定控件的顺序。

可以用两种不同的方法设置 Tab 键次序:交互方式,按照使用表单时选取控件的顺序单击控件;或在对话框中重排列表。

若要选择设置 Tab 键次序的方法

  1. 从“工具”菜单中选择“选项”。

  2. 在“选项”对话框中选择“表单”选项卡。

  3. 在“Tab 键次序”选项下,选择“交互”或“按列表”。

以交互方式设置 Tab 键次序

通过交互方式中,通过用指针单击控件可以设置 Tab 键次序,单击的顺序即为表单中选定控件时的顺序。

若要交互地改变 Tab 键次序

  1. 从“显示”菜单中选择“Tab 键次序”。

  2. 若想使某个控件成为 Tab 键次序中的第一个,请单击该控件旁的 Tab 键次序框。

  3. 对其他的每个控件单击选项卡顺序框。

  4. 单击表单的任何一处以保存所做的更改,并退出“Tab 键次序”方式;或者按 ESC 键退出“Tab 键次序”方式,但不保存所做的更改。

用列表设置 Tab 键次序

在列表方式中,可以通过在“Tab 键次序”对话框中重新排列控件的名字来设置 Tab 键次序。可以按行(在表单中由上向下)或按列(在表单中由左向右)设置 Tab 键次序。

通过重排列表中的控件来设置 Tab 键次序

若要用列表设置 Tab 键次序

  1. 在“显示”菜单中选择“Tab 键次序”。

  2. 选择“按行”或“按列”按钮。

  3. 在“Tab 键次序”对话框中,用指针重新排列表。

  4. 选择“确定”。

定制表单

可以改善表单,使之看起来更有趣且更易于使用。例如,可以画一个方框把一组相似的控件框在一起,或者用位图使表单看起来更专业化。

使用“表单设计器”,可以这样定制表单:

改变文本的字体和大小

使用“属性”窗口中的字体属性,可以更改表单中所加控件上显示文字的样式和大小。可以从系统所支持的可用字体样式和大小中进行选择。若要改变表单中的文本,可改变字体属性,例如 FontName、FontSize 和 FontBold,这些属性均列在“属性”窗口中。

若要改变表单中的文本

  1. “表单设计器”中选择要更改的控件。

  2. 在“属性”窗口中,拉下“对象”列表,选择想更改的对象。

  3. 找到要更改的字体属性,并设定它的值。

向表单中添加形状和线条

可以向表单中添加形状线条以定制表单。例如,把几组控件用分隔线分离开,或为隔离它们而把框中的一组相关控件包围起来。

若要向表单中添加线条

  1. 表单控件工具栏中选择“线条”按钮。

  2. 在表单中拖动鼠标生成线条。

可以象处理其它控件一样移动线条或调整它的大小,也可以用“属性”窗口中的 LineSlant 属性改变线条的倾斜度。

若要向表单中添加形状

  1. 表单控件工具栏中选择“形状”按钮。

  2. 在表单中拖动鼠标生成形状。

“属性”窗口中的 Curvature 属性,可以改变所画的形状。

向表单中添加图形

可以把图形添加到表单的背景中,或把图片添加到表单内的方框中。

若要向表单中添加图形

  1. 选择下列某一操作:
  2. “属性”窗口,选择“Picture”属性。

  3. 选择对话框按钮,显示“打开”对话框。

  4. 找到所需的位图文件或其它文件。

  5. 选择“确定”。

设置表单颜色

可以控制表单的颜色,方法是根据存在的配色方案,使用 ColorSource 属性,还可以使用调色板工具栏改变表单和其中控件的前景或背景颜色。

若要用 ColorSource 属性设置表单颜色

若要设置表单或控件的前景色或背景色

  1. 从“显示”菜单中,选择“工具栏”并选择“调色板”。

  2. 选择“前景色”按钮或“背景色”按钮。

  3. 选定想改变的控件或表单。

  4. 在调色板工具栏中选择想使用的颜色。

  5. 如果希望有更多的颜色可供选择,请选择“其他颜色”按钮。

若要创建自定义颜色

  1. 调色板工具栏中,选择“其他颜色”。

  2. 在“颜色”对话框中,选择“规定自定义颜色”显示“自定义颜色选择器”。

  3. 选择一个“自定义颜色”框,然后在“自定义颜色选择器”中按需要自定义颜色。

  4. 选择“添加到自定义颜色”,把新颜色添加到调色板中。

  5. 选择“确定”。

    Visual FoxPro 的当前选项即可应用自定义颜色。

设置最大的表单设计区域

设定表单的设计区域可定制表单,确保其在特定的分辨率下正确显示。例如,如果知道用户使用的是 640 x 480 的分辨率来运行您设计的表单,则不能选择 1024 x 768 作为最大设计区域。

若要设置最大的表单设计区域

  1. 从“工具”菜单中选择“选项”。

  2. 在“表单”选项卡中,选择“最大设计区”的值。

    提示 如果选择“无”,“表单设计器”将不限制表单的设计大小。