当前位置:
文档之家› VisualFoxpro中表格控件设计技巧二例
VisualFoxpro中表格控件设计技巧二例
修改稿收到日期:2007- 05- 30
· 48 ·
2007 年 12 月
电脑学习
第6期
基于 X3D 与 Authorware 虚拟现实多媒体课件的实现
刘林涛*
田慧珍* *
摘 要 : 阐 述 了 如 何 通 过 X3D 技 术 创 建 虚 拟 三 维 场 景 并 将 其 应 用 到 Authorware 制 作 的 多 媒 体 课 件 中 , 以 达 到 在 多 媒 体 课 件中, 实现三维仿真及漫游的目的。
Two Cases of Design Skills about For m Contr ols in Visual Foxpr o
Xu Xiaohong
Abstr act: Through the example,it introduces how to realize the entire strip record prominent demonstration while mouse sin- gle- clicking a row headers.
表格其它列的列标头 Header1 对象的 MouseUp 事件代 码依此设置;(5)保存并执行表单,就能得到需要的效果。
2 实现整条记录突出显示
Hale Waihona Puke 设计方法:首先依照上面方法创建一个包含表格控件 的表单,在表格控件的 afterRowColChange 事件中写入代码: LPARAMETERS nColIndex this.setall(″dynamicbackcolor″,″iif(this.activerow=recno(),rgb(30, 60,150),rgb(255,255,255))″,″column″) && rgb(30,60,150) 为蓝色背景
Keywor d: Visual Foxpro Form Controls Design Skills
在 Visual FoxPro 中,表格控件能以二维表格的形式显 示和编辑数据,是一个常用的容器控件。在数据库应用系统 中,表格控件常用于显示和编辑数据库表、视图和查询结 果。现介绍二例在表格控件设计中总结的实用技巧。
参考文献 [1] 张涌逸,康祥顺,李辉. 白领就业指南: Visual FoxPro8.0 设计师之路. 北京:电子工业出版社,2006. [2] 李雁翎. Visual FoxPro 应用基础与面向对象程序设计 教程. 北京:高等教育出版社,2002.
* 刘林涛 苏州大学计算机科学学院在读硕士(徐州师范大学计算机学院讲师),研究方向:虚拟现实技术和多媒体技术。 * * 田慧珍 徐州师范大学现代技术教育中心讲师(江苏,徐州 221001),研究方向网络与多媒体技术。 修改稿收到日期:2007- 05- 27
1 构建虚拟场景
建立三维实体模型是实现虚拟仿真的基础,模型的制 作 可 以 采 用 现 有 的 成 熟 的 三 维 设 计 软 件 , 如 VC ++ 、 3DMAX、VRML/X3D、Cult3D、Java 等。从多媒体课件制作的 角 度 ,需 要 选 择 成 熟 、易 学 、兼 容 性 好 、具 有 一 定 交 互 功 能 的软件,建议采用 VRML/X3D 和 3DMAX。VRML/X3D 通过 球、圆锥、圆柱、长方体等基本图元建立简单几何造型。对 于 复 杂 的 三 维 实 体 ,VRML/X3D 提 供 了 IndexedFaceSet 等 节 点 ,它 是 用 多 边 形 面 片 来 描 述 复 杂 形 体 的 ,理 论 上 任 何
3结束语 Visual FoxPro 关系数据库管理系统是开发数据库应用 程序的强劲、快速工具,一直是小型数据库开发领域中的佼 佼者。作为一门编程工具,完全可以实现任何能够想到的东 西,也就是″不怕做不到,只怕想不到″。
ColChange 事件代码如下: LPARAMETERS nColIndex If this.activerow = recno() this.setall(″dynamicbackcolor″,″iif(this.activerow=recno(),rgb(30, 60,150),rgb(255,255,255))″,″column″) else
解决方案:只需对数据表″借阅.dbf″建立一个不包括逻 辑删除记录的关联子表 temp_table,当记录指针在父表″借 阅.dbf″中移动时,子表 temp_table 的记录指针也移到和父表 的借书证号相同的记录上。当逻辑删除记录造成表格控件
* 许晓红 四川文理学院计算机科学系副教授(四川、达洲 635000)。
1 通过表格列标头对数据进行排序
在表单中用表格控件显示数据信息时,当使用者在记 录之间移动时,只有获得焦点的记录的某一个字段以不同 于表格控件背景的颜色显示,很不醒目。希望当数据记录移 动时,整条记录均用同一种颜色突出显示,即用颜色动态变 化显示相对光标所在记录的位置,如图 1 所示。
在 Visual FoxPro 中,利用表格控件显示某个表的信息 时,可以实现使用鼠标单击列标头对数据进行排序。
三 维 形 体 都 可 以 用 IndexedFaceSet 节 点 精 确 或 近 似 地 构 造,但对于复杂形体用手工编写几乎不可能。简单造型可 以用 VRML 技术提供的造型节点直接造型,其数据量较 小,而较复杂的造型可以在 AutoCAD 等造型软件中造型后 再导入 3DMAX 软件中,3DSMAX 是三角形画面表述模型 外观,直接导入会导致最终的 VRML 文件过大,因此在导 入模型后应分析其面片分布并用简单的三维基本造型进 行局部优化。对具有不规则外形的模型尽量用放样方式和 模型拼接方式来表述而避免用布尔运算制作。
select 借 书 证 号 from 借 阅 where .not. deleted ()into cursor temp_table select temp_table index on 借书证号 tag jszh set relation to 借书证号 into temp_table in 借阅 sele 借阅 this.setall(″dynamicbackcolor″,″iif(this.activerow=recno(temp_table), rgb(30,60,150),rgb(255,255,255))″,″column″) endif thisform.refresh
问题:在使用的过程中,如果设置了 set delete on 环境 参数,则当逻辑删除记录后,动态背景的颜色显示就会出现 混乱,如图 2 所示,获得焦点的记录是第 8 条,而用蓝色背 景突出显示的记录是第 6 条。造成这种现象的原因,是由于 逻辑删除记录,导致表格控件中光标所在的行 activerow() 不等于数据表中的记录号 recno()。
关 键 词 : X3D VRML97 ActiveX 控件 虚拟现实技术
中图分类号: TP393
文献标识码: B 文章编号: 1002- 2422( 2007) 06- 0049- 02
Implementation of Vir tual Reality Multimedia Cour sewar e Based on X3D&Author war e
2007 年 12 月
电脑学习
第6期
Visual Foxpro 中表格控件设计技巧二例
许晓红*
摘 要: 通过实例介绍了在表格控件中鼠标单击列标头对数据进行排序和浏览数据时实现整条记录突出显示的技巧。 关 键 词 : Visual Foxpro 表格控件 设计 技巧
中图分类号: TP317
文献标识码: B 文章编号: 1002- 2422( 2007) 06- 0048- 02
· 49 ·
中光标所在的行 activerow () 不等于数据表中的记录号 recno()时,由于子表中的记录是不包括逻辑删除记录的, 这就保证了子表中的当前记录号 recno('temp_table' )始终 等于表格控件中光标所在的行 activerow(),从而使该行动 态 背 景 颜 色 能 正 确 显 示 。 修 改 表 格 控 件 的 afterRow-
Liu Lintao Tian Huizhen
Abstr act: The paper expounds how to implement 3D virtual simulation and navigation in Authorware multi- media courseware. Keywor d: X3D VRML97 ActiveX Virtual Reality Technique
用鼠标单击表格的标头″借书证号″时,整个表格按″借 书证号″升序显示数据;当按下 CTRL 键的同时再用鼠标单 击表格的标头″借书证号″时,整个表格按″借书证号″降序显 示数据。这个表单的设计步骤如下:
(1)新 建 一 个 表 单 ,在 表 单 中 添 加 形 状 控 件 、标 签 控 件、按钮控件;(2)在表单中单击鼠标右键,然后选择″数据 环境″,在弹出的数据环境设计器中,添加借阅.dbf 数据表; (3) 在表单中添加一个数据表格对象,并将该对象的 RecordSourceType 设置为″1- 别名″,将 RecordSource 设置为″ 借阅″,将表格对象的 ColumnCount 设置为 4;(4)在表格第 一列的列标头 Header1 对象的 MouseUp 事件中写入代码: LPARAMETERS nButton, nShift, nXCoord, nYCoord if nShift=2 set order to 借书证号 descending else set order to 借书证号 ascending endif go top thisform.refresh