Visual FoxPro 在表单中使用数据表.ppt_第1页
Visual FoxPro 在表单中使用数据表.ppt_第2页
Visual FoxPro 在表单中使用数据表.ppt_第3页
Visual FoxPro 在表单中使用数据表.ppt_第4页
Visual FoxPro 在表单中使用数据表.ppt_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

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

文档简介

11 3在表单中操作表 实用的VFP应用程序需要在表单中操作数据表 这就要编写事件代码来实现 11 3 1在表单中显示浏览窗口 例11 4 在表单中使用命令方式来打开浏览窗口 显示并修改数据表的内容 如图11 16所示 设计步骤如下 建立应用程序用户界面与设置对象属性 选择 新建 表单 进入表单设计器 增加两个命令按钮Command1 Command2 并按图11 17所示设置其属性 编写代码 在表单的Load事件代码中打开数据表 USExs在表单的Destroy事件代码中关闭数据表 USE在命令按钮Command1的Click事件代码中打开编辑窗口 GOTOPEDIT在命令按钮Command2的Click事件代码中打开浏览窗口 GOTOPBROWSE11 3 2数据环境虽然在表单中可以使用USE命令来打开和关闭数据表 但是在一些较为复杂的情况下 比如使用多表或数据库时 不易协调各表之间的关系 比较可靠的办法是使用 数据环境 数据环境是一个对象 它包含与表单相互作用的表或视图 以及表单所要求的表之间的关系 可以在 数据环境设计器 中直观地设置数据环境 并与表单一起保存 在表单运行时 数据环境可以自动打开 关闭表和视图 在表单创建了数据环境 就可以通过 属性 窗口来设置控件的ControlSource属性 例11 5 在上例的表单中使用数据环境 设计步骤如下 创建 数据环境 选择新建表单 进入表单设计器 在系统菜单的 显示 子菜单中选择 数据环境 或在表单设计器中单击鼠标右键 从弹出的快捷菜单中选择 数据环境 或单击表单设计器中 数据环境 按钮 如图11 18 均可打开 数据环境设计器 窗口 在 数据环境 窗口中单击鼠标右键 在快捷菜单中选择 添加 可添加表单所要控制的数据表 xs dbf 如图11 19所示 修改代码 删除上例表单中的Load事件代码与Destroy事件代码 改由数据环境来处理数据表的打开与关闭 运行表单 结果完全相同 11 3 3在表单中操作数据表用表单设计器设计一个可以浏览和编辑数据表的程序 例11 6 设计一个操作数据表的表单 使之具有按记录浏览 编辑的功能 例题 浏览数据表设计步骤如下 创建数据环境 选择新建表单 进入表单设计器 打开 数据环境设计器 窗口 在 数据环境 窗口中单击鼠标右键 在快捷菜单中选择 添加 添加表单所要控制的数据表 xs dbf 如图11 19所示 建立应用程序用户界面与设置对象属性 依次将表中 xh xm xb 等字段用鼠标拖拉至表单中 表单上出现相应的标签和文本框 如图11 20左所示 然后增加一个命令按钮组CommandGroup1和一个标签Label1 修改各对象属性如图11 20右所示 11 3 4使用表格控件虽然 浏览 窗口可以满足浏览数据的需要 但是缺乏对数据的有效控制 为了更好地控制数据的显示 可以使用表格 Grid 控件 表格是一个容器对象 表格包含列 这些列除了包含列标题和控制外 每一个列还拥有自己的一组属性 事件和方法 即可以提供对表格单元的大量控制 例11 7 在例11 6的表单中增加一个浏览窗口 如图11 23所示 设计步骤如下 打开上例的表单文件 进入表单设计器 首先修改表单布局 并在表单上增加一个 表格 控件Grid1 如图11 24所示 用鼠标右键单击Grid1 在弹出的快捷菜单中选择 生成器 打开 表格生成器 用鼠标单击 数据库和表 右边的命令按钮 如图11 25左所示 可以选择数据表 然后选择 可用字段 中的 学号 姓名 性别 和 总学分 等字段 按添加按钮 将其添加到 选定字段 列表中 如图11 25右所示 在 布局 页中 用鼠标指向标题行的分隔线可以调整列标题的宽度 如图11 26 按 确定 退出表格生成器 运行表单 发现表格中的记录和文本框中的记录不同步 为此 重新打开 表单设计器 继续修改表单 修改事件代码 编写表格Grid1的AfterRowColCHange事件代码 LPARAMETERSnColIndexTHISFORM Refresh其中第一行是原有的 第二行表示当光标在表格中移动时 随时刷新表单 在命令按钮组Command的Click事件代码最后增加一条命令 THISFORM Grid1 SetFocus 修改后的数据表单运行时如图11 23所示 11 3 5使用页框如果感觉表单界面太狭小 可以在设计时扩大表单 或者为表单添加页面 例11 8 在例11 7的表单中使用页面技术 如图11 27所示 设计步骤如下 在 文件 菜单中选择 打开 或直接用鼠标单击 常用工具栏 中的 打开 按钮 选择例11 6的表单文件 进入表单设计器 增加页框 将表单中除标题和命令按钮组外的所有控件做 多重选定 如图11 28 编写代码 在例11 6的基础上增加如下代码 页框pageFrame1中第一页page1的Activate事件代码 THIS txtxh SetFocus页框pageFrame1中第二页page2的Activate事件代码 THIS grdxs SetFocus第二页page2中表格Grdxs的AfterRowColChange事件代码 LPARAMETERSnColIndexTHIS Parent Parent Page1 Refresh 另外修改命令按钮组CommandGroup1的Click事件代码 在原代码后添加如下代码 IFTHISFORM PageFrame1 ActivePage 2THISFORM PageFrame1 Page2 Grdxs SetFocusELSETHISFORM RefreshENDIFTHISFORM Refresh 11 3 7编辑表单的设计 例11 10 修改例11 9 使之具有增加 删除 编辑记录的功能 如图11 35 在例11 9的基础上进行修改 具体步骤如下 在表单上增加一个命令按钮组CommandGroup2 将其按钮个数属性ButtonCount改为 3 并依次修改各按钮的Caption属性 如图11 35所示 修改第一页中各文本框 编辑框 选项按钮组的属性 见表11 5 在表单中增加一个自定义的方法disi 用来控制第一页中输入框的可用与否 修改数据环境中数据表的Exclusive 独占 属性改为 T 真 BufferModeOverride属性改为 2 保守式行缓冲 编写代码 编写自定义方法disi 的代码 LPARAMETERSLTHIS PageFrame1 Page1 SetAll Enabled IIF L T F TextBox THIS PageFrame1 Page1 SetAll Enabled IIF L T F OptionGroup THIS PageFrame1 Page1 SetAll Enabled IIF L T F EditBox THIS CommandGroup1 Enabled IIF L F T 编写命令按钮组CommandGroup2中各按钮的事件代码如下 Command1的Click事件代码 IFTHIS Caption 添加 THIS Caption 保存 THIS Parent Command2 Caption 取消 THISFORM disi T THIS Parent Tag STR RECNO APPENDBLANKELSETHIS Caption 添加 THIS Parent Command2 Caption 编辑 THISFORM disi F ENDIFTHISFORM PageFrame1 RefreshCommand2的Click事件代码 IFTHIS Caption 编辑 THIS Caption 取消 THIS Parent Command1 Caption 保存 THISFORM disi T THIS Parent Tag STR RECNO ELSETHIS Caption 编辑 THIS Parent Command1 Caption 添加 TABLEREVERT THISFORM disi F THISFORM PageFrame1 Page1 RefreshENDIFGOVAL THIS Parent Tag THISFORM PageFrame1 Page1 RefreshCommand3的Click事件代码 a MESSAGEBOX 是否确定删除当前记录 32 4 256 删除记录 IFa 6THIS Tag THISFORM PageFrame1 Page2 grdxs RecordSourceDELETENEXT1PACKTHISFORM PageFrame1 Page2 grdxs RecordSource THIS TagENDIF 运行表单后 各输入框禁用 只有当按下 添加 或 编辑 按钮后 各输入框才被启用 此时两按钮分别变为 保存 和 取消 按下 保存 可以将添加的记录或对记录所作的修改存盘 按下 取消 则取消所作的添加或修改 说明 方法SetAll 为容器对象中的所有控件或某类控件指定一个属性值 函数TABLEREVERT 可以取消对当前记录的修改 11 3 8使用下拉列表框 例11 11 修改例11 10 在数据环境中增加一个班级代码表 并且使用下拉列表框来输入班级编号 bjbh 如图11 36所示 在例11 10的基础之上进行修改 具体步骤如下 修改数据环境 增加班级代码表bj 在数据环境设计器中 从xs表中拖动 bjbh 字段至bj表 按 bjbh 建立了两个表之间的关系 如图11 37所示 修改表单 删除第一页中输入班级编号的文本框 txtbjbh 增加一个组合框Combo1 另外再将 照片 删除 修改组合框的属性 见表11 6 修改自定义方法disi 的代码 LPARAMETERSLTHIS PageFrame1 Page1 SetAll Enabled IIF L T F TextBox THIS PageFrame1 Page1 SetAll Enabled IIF L T F Optiongroup THIS PageFrame1 Page1 SetAll Enabled IIF L T F editbox THIS PageFrame1 Page1 SetAll Enabled IIF L T F Combobox THIS CommandGroup1 Enabled IIF L F T 表单中的控件可以分为两类 与表中数据绑定的控件和不与数据绑定的控件 当用户使用绑定型控件时 所输入或选择的值将保存在数据源中 数据源可以是表的字段 临时表的字段或内存变量 要想绑定控件和数据 可以设置控件的ControlSource属性 如果要绑定 表格 和数据 则需要设置表格的RecordSource属性 见表11 7 如果没有设置控件的ControlSource属性 用户在控件中输入或选择的值只作为属性设置保存 在控件生存期之后 这个值并不保存在磁盘上 也不保存到内存变量中 部分通过使用控件完成的任务需要将数据与控件绑定 其他任务则不需要 在上面的例子中 因为直接从 数据环境 中将字段拖到表单上 系统自动将各字段与相应的控件绑定 无需另外操作 如果是先建立控件 就需要手工操作将控件与相应的字段绑定 11 4定制表 可以在表中设置一个过滤器来定制自己的表 有选择地显示某些记录 还可以通过设置字段过滤器 对表中的某些字段的访问进行限制 这样可以选择显示哪些字段 11 4 1筛选表 如果只想查看某一类型的记录 可以通过设置过滤器对 浏览 窗口中显示的记录进行限制 在某些情况下 例如只想查看销售额高于某一数值的商品 或者在某段时间内雇用的职员 筛选就显得非常有用 1 使用 浏览 窗口若要在表中建立过滤器 首先打开表 然后浏览要筛选的表 从 表 菜单中选择 属性 命令 在 工作区属性 对话框中的 数据过滤器 框内输入筛选表达式 如图11 38所示 或者 选择 数据过滤器 框后面的对话按钮 在 表达式生成器 中创建一个表达式来选择要查看的记录 然后单击 确定 按钮 浏览表时则只显示经筛选表达式筛选过的记录 例如 在 数据筛选 对话框中输入显示所有女同学记录的表达式 NOTxs xb 2 使用命令可用SETFILTER命令筛选数据 若要指定一个暂时的条件 使表中只有满足该条件的记录才能访问时 这个命令特别有用 SETFILTER命令的语法格式为 SETFILTERTO 逻辑表达式 例1

温馨提示

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

评论

0/150

提交评论