VisualFoxpro中表格控件设计技巧二例
VFP表单设计小技巧

VFP表单设计小技巧1.设计Tab键顺序.当表单中控件较多时,利用特性页来设置TabIndex特性就变得很慢了,你可以得用Shift键来设计其顺序.你可以选择”查看/Tab键次序”菜单,这时,在每个控件的左上角出现一个小方框. 按下Shift键并按顺序单击每个控件,然后单击”重新排序”按钮即可.2.把”形状”放在后面.当你希望在表单中把颜色背景放在一些控件的后面时,可简单击表单布局工具栏的”形状”按钮,并在屏幕上拖出一个长方形的外形.若要把它移到现有控件之后,可单击”格式/置后”菜单或在布局工具栏中单击”置后”图标即可.3.修理损坏的表单.VFP把每个表单集或表单保存在以扩展名为.SCX的表中.每个表单的.SCX文件都有个以.SCT为扩展名的同名备注文件.表单中的每个控件在.SCX文件中都有一个记录,若某个控件的错误很可能使整个.SCX文件打不开而不能使用,这时你不要放弃整个表单,因为只是某条记录使VFP遇到了麻烦.改正这一问题的一种方法是把表单的.SCX方件当作表打开对它进行编辑.首先对.SCX和.SCT文件进行备份,然后在命令窗口中用USE FormName.SCX 命令打开表单并用BROW命令进行浏览,在.SCX文件中打开损坏了的记录中有总是的备注型字段并改正这一总是或删除这一行.如果总是存在于方法列中,可能需要将方法代码拷贝到一个文本文件中,删除Object 备注字段中的内容,然后根据文本文件重方法即可.4.加快刷新速度.通常,当一个控件限于内存变量,数级或特性中的数据时,没有必要调用Refresh 方法来更新控件的显示.因为这样需要大量的处理程序和图形资源,影响运行速度.如果控件限于表或缓冲区中的数据以及数据变化时,确实需要刷新这些控件,你可以加入以下代码:thisform.LockScreen=.T.thisform.Refresh()thisform.LockScreen=.F.。
Visual FoxPro VF第9章 表单设计及应用(2)

8.2 创建与管理表单
8.2.3 表单生成器
在表单设计环境下,可以调用表单生成器快速地产 生表单。调用表单生成器的方法有以下3种: (1)在系统菜单中选择“表单”菜单下的“快速表单” 命令。 (2)单击“表单设计器”工具栏中的“表单生成器”按 钮。 (3)右键单击表单窗口,然后在弹出的快捷菜单中选择 “生成器”命令。
Visual FoxPro数据库应用教程 7
8.1 面向对象程序设计的概念
在VFP中,当对象被创建后,就可以调用这 个对象的方法了。为对象设置方法的命令格式 如下: <对象引用>.<方法> 【例8.2】调用当前表单的方法,使文本框Textl获 得焦点,然后刷新表单。 Thisform.Textl.Setfocus Thisform.Refresh
Visual FoxPro数据库应用教程
2
8.1 面向对象程序设计的概念
8.1.2 常用对象的基类、容器类与控件类
1.容器类 容器(Container)类是能够包含其他对象的类。 容器对象称为父对象,其包含的对象称为子对象。 2.控件类 控件(Control)是指容器类对象内的一个图形 化的、能与用户进行交互的对象。控件类对象不 能容纳其他对象,如命令按钮、选择按钮、复选 框、文本框、标签等控件对象。
4.代码窗口
图8.21 代码窗口
Visual FoxPro数据库应用教程
18
8.3 表单设计器
8.3.2 表单的数据环境
1.打开数据环境设计器 打开数据环境设计器的方法有以下几种: (1)在表单设计器环境下,选择“显示”菜单中的“数据 环境”命令。 (2)单击“表单设计器”工具栏中的“数据环境”按钮。 (3)右键单击表单,从快捷菜单中选择“数据环境”命令。 打开数据环境设计器后,系统菜单栏上将出现“数据环境” 菜单。 2.数据信息与数据环境
Visual Foxpro中如何实现对EXCEL表格的操作

Visual Foxpro中如何实现对EXCEL表格的操作VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。
比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。
这就需要我们在VFP中直接来控制Excel。
下面就在开发VFP 应用项目时对Excel的控制作一下介绍:1.创建Excel对象oExcel=CREA TEOBJECT("Excel.application")2.添加新工作簿oExcel.Workbooks.add3.设置第3个工作表为激活工作表oExcel.Worksheets("sheet3").Activate4.打开指定工作簿oExcel.Workbooks.Open("c:\temp\ll.xls")5.显示Excel窗口oExcel.visible=.t.6.更改Excel标题栏oExcel.Caption="VFP应用程序调用Microsoft Excel" 7.给单元格赋值oExcel.cells(1,4).value=XM(XM为数据库字段名) 8.设置指定列的宽度(单位:字符个数)oExcel.ActiveSheet.Columns(1).ColumnWidth=5 9.设置指定行的高度(单位:磅)oExcel.ActiveSheet.Rows(1).RowHeight=1(设定行高为1磅,1磅=0.035厘米)oExcel.ActiveSheet.Rows("50:100").RowHeight=1 &&设置第50行至100行的高度10.在第18行之前插入分页符oExcel.Worksheets("Sheet1").Rows(18).PageBreak=1 11.在第4列之前删除分页符oExcel.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range("b3:d3").Borders(2).Weight=3 13.设置四个边框线条的类型oExcel.ActiveSheet.Range("b3:d3").Borders(2).LineSty le=1(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)14.设置页眉oExcel.ActiveSheet.PageSetup.CenterHeader="报表1" 14.设置页眉(字体大小)oExcel.ActiveSheet.PageSetup.CenterHeader="&50报表1" &&'&'后面的50可以自定义,表示字体的大小15.设置页脚oExcel.ActiveSheet.PageSetup.CenterFooter="第&P页"15.设置页脚(字体大小)oExcel.ActiveSheet.PageSetup.CenterFooter="&28第&P页" &&'&'后面的28可以自定义,表示字体的大小16.设置页眉到顶端边距为2厘米oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.035 17.设置页脚到底边距为3厘米oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035 18.设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.TopMargin=2/0.03519.设置底边距为4厘米oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.035 20.设置左边距为2厘米oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.03521.设置右边距为2厘米oExcel.ActiveSheet.PageSetup.RightMargin=2/0.035 22.设置页面水平居中oExcel.ActiveSheet.PageSetup.CenterHorizontally=.t.23.设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterV ertically=.t.24.设置页面纸张大小(1-窄行8 5 11 39-宽行14 11 9:A4)oExcel.ActiveSheet.PageSetup.PaperSize=125.打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.t.26.拷贝整个工作表edRange.Copy27.拷贝指定区域oExcel.ActiveSheet.Range("A1:E2").Copy28.粘贴oExcel.WorkSheet("Sheet2").Range("A1").PasteSpecial 29.在第2行之前插入一行oExcel.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列oExcel.ActiveSheet.Columns(2).Insert31.设置字体oExcel.ActiveSheet.Cells(2,1)="黑体"32.设置字体大小oExcel.ActiveSheet.Cells(1,1).Font.Size=2533.设置字体为斜体oExcel.ActiveSheet.Cells(1,1).Font.Italic=.t.134.设置整列字体为粗体oExcel.ActiveSheet.Columns(1).Font.Bold=.t.35.清除单元格公式oExcel.ActiveSheet.Cells(1,4).ClearContents36.打印预览工作表oExcel.ActiveSheet.PrintPreview37.打印输出工作表oExcel.ActiveSheet.PrintOut38.mandBars(1).Controls(1).accChild(18).Exe cute &&打印(菜单序号18为Excel2003的‘打印’项)&&不同版本Excel的菜单序号可以通过以下程序取得*(需要在VFP7.0以上运行)oXls=GETOBJECT("","excel.sheet")XlApp=oXLS.APPLICA TIONXlSheet=XlApp.ActiveSheetbars=mandBars.COUNTSTR=''FOR i=1 TO barsSTR=STR+CHR(13)+ALLTRIM(STR(i))+'、'+mandBars(i).accName+'(NAME:'+xlapp.C ommandBars(i).NAME+'INDEX:'+ALLTRIM(STR(mandBars(i).IND EX))+')'bars2=mandbars(i).accChildCountFOR j=1 TO bars2TRYobj=mandbars(i).CONTROLS(j)STR=STR+CHR(13)+''+ALLTRIM(STR(j))+'、'+mandbars(i).CONTROLS(j).accname+'(ID: '+ALLTRIM(STR(mandBars(i).CONTROL S(j).ID))+')'FOR k=1 TO obj.accChildCountTRYIF NOT EMPTY(obj.CONTROLS(k).accname )STR=STR+CHR(13)+''+ALLTRIM(STR(k))+'、'+obj.CONTROLS(k).accName+' (ID:'+ ALLTRIM(STR(obj.CONTROLS(k).ID))+')'ENDIFCA TCHEXITENDTRYENDFORCA TCHEXITENDTRYENDFORW AIT WINDOWS ALLTRIM(STR(i))+' / '+ALLTRIM(STR(bars))+''+STR(i/bars*100,10,2)+'%' NOW AITENDFORSA VE TO XLS.txt ALL LIKE STRMODIFY COMMAND XLS.txtRETURN39.工作表另存为oExcel.ActiveWorkbook.SaveAs("c:\temp\22.xls")检测当前目录是否有同名的EXCEL表,如果有先删除,再另存IF !FILE(SYS(5) + CURDIR() + "result.xls")oExcel.ActiveWorkbook.SaveAs(SYS(5) + CURDIR() + "result.xls")ELSElcFileName = loExcel.GetSaveAsFilename("result", "Excel (*.xls), *.xls")IF !EMPTY(lcFileName)IF FILE(lcFileName)DELETE FILE (lcFileName)ENDIFoExcel.ActiveWorkbook.SaveAs(lcFileName)ENDIFENDIF40.放弃存盘&& 避免出现保存对话框oExcel.ActiveWorkbook.saved=.t.41.存盘oExcel.ActiveWorkbook.save42.关闭工作簿oExcel.Workbooks.close43.退出ExceloExcel.quitRELEASE oExcel &&只有释放对象变量, EXCEL进程才会完全关闭44.合并单元格oExcel.ActiveSheet.Range("A4:B5").MergeCells=.t.45.下列设置大家自己理解With crfole.ActiveSheet.PageSetup.LeftHeader = chr(13)+"左页眉"2.CenterHeader = "中页眉".RightHeader = "右页眉".LeftFooter = "左页脚".CenterFooter = "中页脚".RightFooter = "右页脚".orientation=1 &&1竖排,2横排EndWithWith crfole.Range("A4:C4").MergeCells = .t..WrapText =.f..Orientation = 0.AddIndent =.f..ShrinkToFit = .f.EndWith46.文本对齐oExcel.range("A4:c4").HorizontalAlignment =1 &&水平(1-默认、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐)oExcel.range("A4:c4").V erticalAlignment =2 &&垂直(1=靠上、2=居中、3=靠下、4=两端对齐、5=分散对齐)47.拷贝整个工作表(含格式)oExcel.activesheet.cells.copy &&拷贝oExcel.sheets(1).select &&选择第一工作表oExcel.ActiveSheet.Paste &&粘贴oExcel.ActiveSheet.Cells(3,4).value && ActiveSheet 为当前的Sheet工作薄名字,Cells(3,4).value 为第3行第4列的值以上控制调用语句在中文VFP5.0企业版下运行通过,运行环境为Excel 97及中文Windows 9848. 显示某个单元格的批注内容oExcel=CREA TEOBJECT("Excel.application") oExcel.Workbooks.OPEN("d:\TEST\testa.xls") oExcel.VISIBLE=.T.?oExcel.Range("B5").Comment.Text &&显示B5单元格的批注内容oExcel.Workbooks.CLOSEoExcel.QUITRELEASE oExcel49.oExcel.ActiveSheet.PageSetup.PrintTitleRows="$1: $1" &&每页都打印行标头(每页顶部出现的单元格的行)50.保护工作表:oExcel.ActiveSheet.PROTECT('密码',.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.)51.保护工作薄oExcel.ActiveWorkbook.PROTECT('密码',.T.,.T.)第一个.T.:保护工作簿结构第二个.T.:保护工作簿窗口52.设置允许用户编辑区域oExcel.ActiveSheet.Protection.AllowEditRanges.Add("区域3",oExcel.ActiveSheet.Range("A2:D5"))53.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为.F.oExcel.DisplayAlerts = .F.如果不想在宏运行时被无穷无尽的提示和警告消息所困扰,就将本属性设置为False;这样每次出现需用户应答的消息时,Microsoft Excel 将选择默认应答。
如何在vfp中调用excel实现图、表的制作(之二)

如何在vfp中调用excel实现图、表的制作(之二)言归正传。
接下来谈谈vfp调用excel生成统计图形的问题。
初学者可能以为这会是件很难的事情,其实还是很简单的,不必担心。
你最好用一点儿数据自己先在excel中试试如何生成一个统计图:打开Excel输入一组数据,例如从A1-A5,从上往下输入100,200,150,223,152这五个数据,然后用鼠标点击A1不放拖至A5,这样就把A1-A5选中了。
接着点击’图表向导’快捷键,在’图表类型’中选择’柱形图’,’子图表类型’就选择第一个,按’下一步’,在下一窗口中的’系列产生在:’选择’列’,因为我们的数据是从上往下按列摆放的。
接着按’下一步’,进入新的窗口,在’图表标题’栏输入:各生产车间产量柱形图;在分类(X)轴栏输入:车间;在’数值(Y)轴’输入:产量。
点击’下一步’,在’图表位置’窗口选中’将图表作为其中的对象插入’,点击’完成’按钮即可看见生成的柱形图形。
我们从vfp调用excel生成图表的角度来简单了解一下excel中的一些基本概念:一.对象层次:(由高到低)Application对象:它在excel对象结构中处于顶层。
形象地说,双击Excel图表就相当于创建了一个Application对象。
↓Workbooks对象:即工作簿对象(集),启动Excel后点击’新建’或’打开’快捷键就相当于创建或打开了一个Workbook。
↓Worksheets对象:即工作表(集)。
启动Excel后工作表集会自动默认含有sheet1、sheet2和sheet3这三个工作表。
Charts对象:图表(集),与Worksheets对象同级↓Cells对象:表格(集),即我们看到的一个个格子。
Range对象:是格子的一个范围,如上面的A1-A5,与Cells对象同级二.VBA(Visual Basic Application):它是一种面向对象的程序语言,内嵌于Excel,Excel的各项功能都可以直接使用VBA进行操作。
在 VFP 中控件 Excel 的小小经验集

&&设置3、4行为水平对齐
.VerticalAlignment = 2
&&垂直居中
.NumberFormatLocal = "@"
&&设置3、4行为字符型内容
endwith
ef.Range("A3:A4").Select
ef.Selection.Merge
下列程序均在VFP5.0与EXCEL97中调试通过。因篇幅所限,程序中的错误处理部分略去。
一、EXECL驱动VFP
EXECL内置的VBA语言(Visual Basic For Application)为EXECL功能的扩展提供了便利的手段,用户可使用该语言直接驱动VFP完成数据检索等功能。
程序首先生成一个VFP对象,然后用VFP的DoCmd方法执行VFP摸索命令串,其摸索结果再借助于VFP的DateToClip方法拷贝至剪切板,最后VBA将其粘贴至工作表的正确位置。
Key Words: VFP、EXCEL、OLE、DDE、Cross-Programming
VFP(Visual Foxpro)是一种关系型数据库管理系统,由于其强大的数据处理能力及良好的兼容性,使其成为数据库应用程序开发人员的强有力工具,而EXECL则是一种优秀的电子表格处理软件,在兼容性、操作界面、公式运算、图表等方面有着独到的优势。上述两种软件在各自的应用领域均得到广泛的应用,同时上述两种软件还具有良好的交互编程能力,为两者相辅相成、取长补短奠定了良好的基础。
ef.Selection.Merge
ef.Range("N3").value='录入量'
VFP中的列表框控件(listbox)

VFP中的列表框控件(listbox)一.列表框(listbox):主要用于选择一组指定的数据,用户从列表中选取选项,然后执行所需的操作.二.列表框常用属性:见下表注1(rowsourcetype属性可指定的值):0-无,运行时使用列表框的确良additem和addlistitem方法加入1-值,将列表框的内容在设计时直接写在该属性中2-表别名:由columncount确定表中选择的字段.当用户选择列表框时,记录指针将自动移到该记录上3-sql语句:见sql部分,由执行的结果产生.4-查询文件名:见查询部分,由查询结果产生5-数组名6-字段名表:可用表别名作为字段前缀.当用户选择列表项时,记录指针将自动移到该记录上7-文件名描述框架,可包含"*"和"?"来描述在列表框中显示的文件名8-结构9-弹出式菜单,提供向后兼容.二.列表框常用的方法:见下表方法作用additem 增加列表项removeitem 移去列表项clear 移去所有列表项requery 当rowsourcetype为3和4时,根据rowsource中的最新数据重新刷新列表项三.列表框常用事件:列表框的常用事件为click(单击)事件和dbclick(双击)事件.四.例:列表框练习1.新建表单,添加一个文本框text1,三个命令按钮command1~command3,三个命令按钮的caption属性依次设为"加入","移出"和"全部移出",一个列表框list1.界面如图252.设置属性:将表单的caption属性设为"列表框练习",autocenter属性设为.T.;将列表框list1的moverbars属性设为.T.,multiselect属性设为.T.3.编写代码:●"加入"命令按钮command1的click事件:qm=thisform.text1.valueIF !empty(qm)no=.t.FOR i=1 to thisform.list1.listcountIF thisform.list1.list(i)=qm &&如果文本框中输入的内容和列表框中已存在的内容相同,则不添加no=.f.ENDIFNEXT iIF nothisform.list1.additem(qm)thisform.refreshENDIFENDIF●"移出"命令按钮command2的click事件:IF thisform.list1.listindex>0thisform.list1.removeitem(thisform.list1.listindex)ENDIF●"全部移出"按钮command3的click事件:thisform.list1.clear●列表框list1的init事件:thisform.list1.additem("杨过")thisform.list1.additem("小龙女")thisform.list1.additem("东方不败")●列表框list1的dbclick事件:mand2.click() &&调用command2("移出"按钮)的click事件代码说明:运行后,列表框中自动添加了3条记录,如图26,这是在表单的init代码中添加的;在文本框中输入任意文本,如果和列表框中的内容不同,单击"加入"按钮,该内容会加入到列表框;否则不添加;在列表框中选中一条数据,单击"移出"按钮,该数据被删除;在列表框中直接双击某条数据,则的列表框的dbclick事件中调用"移出"按钮的click事件代码,将双击的数据删除。
vfp6表单设计实例

vfp6表单设计实例VFP (Visual FoxPro) 是一种关系数据库管理系统,由微软公司开发。
表单(Form)是 VFP 中用于创建用户界面的重要工具。
以下是一个简单的 VFP 6 表单设计的实例:1. 创建表单首先,打开 VFP 6,选择 "File" -> "New" -> "Form"。
这将打开表单设计器。
2. 添加控件在表单设计器中,你可以从工具箱(Toolbox)中拖放各种控件,如标签(Label)、文本框(TextBox)、命令按钮(CommandButton)等。
例如,你可以添加一个标签(Label)和一个文本框(TextBox),用于用户输入数据。
3. 设置属性选中控件后,可以在属性窗口(Properties Window)中设置各种属性,如名称、位置、大小、字体等。
例如,你可以设置标签的 `Caption` 属性为 "姓名",设置文本框的 `Name` 属性为 "txtName"。
4. 编写事件代码在 VFP 中,你可以为控件的特定事件编写代码。
例如,你可以为命令按钮的 `Click` 事件编写代码,以便在用户点击按钮时执行某些操作。
在代码窗口中输入以下代码:```vfpDO SomeProcedure```其中 `SomeProcedure` 是你要执行的过程的名称。
5. 保存表单最后,保存表单。
选择 "File" -> "Save As",并输入表单的名称和位置。
以上是一个简单的 VFP 表单设计实例。
你可以根据需要添加更多的控件和事件代码,以创建更复杂的用户界面。
vfp表单中表格控件使用

vfp表单中表格控件使用
在VFP(Visual FoxPro)表单中使用表格控件可以方便地显示和编辑数据。
以下是在VFP表单中使用表格控件的一般步骤:
1. 打开VFP并创建新表单。
2. 在表单设计器中选择表格控件工具。
3. 在表单上绘制表格控件的大小和位置。
4. 双击表格控件,进入编辑模式。
5. 选择要显示的数据源(如数据库表或数组等)。
6. 根据需求调整表格的列数、列宽和列标题等属性。
7. 设置表格控件的其他属性,如是否可编辑、是否显示行号等。
8. 编写相关的VFP代码来处理表格控件的事件,例如在选择
行或编辑单元格时触发的事件。
9. 运行表单,查看和测试表格控件的功能。
在使用表格控件时,还可以通过编写代码来动态地添加、删除、更新和过滤表格中的数据,并对表格控件进行排序和分页等操作。
除了基本的显示和编辑数据外,VFP表格控件还可以支持更
复杂的功能,如合并单元格、显示图标或图像、设置条件格式等。
总之,使用表格控件可以方便地在VFP表单中展示和操作数据,提高用户界面的友好性和功能性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
修改稿收到日期: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