vf word教程
使用Visual FoxPro的OLE技术调用WORD文档
W o d b eRa g . r g a r Ta l . n ePa a rphsAlg . inme = nt 1
利用 O E技术 , L 首先使用 V P的 O E对象 创建 函数 C E 校数量统计表” F L R —
1 产 生 Wod p . 2 rA p对象前使用下列命令检查 当前T作 区内 是否有工作表:
综曾特 按
‘
3
1
3 毽
1 篙
盲校
22文档 的基 本 属性 设 置 : .
vf word教程
第九章菜单设计和应用菜单:系统菜单和用户自定义菜单菜单文件有:.mnx 结构定义文件.mpr 菜单程序文件内容提要:1、了解菜单的基本结构2、设计下拉式菜单3、设计快捷菜单一、菜单的基本结构Vf支持两种类型的菜单:下拉式菜单和快捷菜单(下拉式菜单)一个系统菜单,包括一个条形菜单和一组弹出式菜单。
菜单的操作:热键(访问键),快捷键热键(访问键):ALT+字母(针对条形菜单)或单个字母(针对弹出菜单)快捷键:用CTRL+字母(针对弹出菜单)系统菜单的设置通过set sysmenu 命令可以设置系统菜单Set sysmenu nosave 不把自定义的菜单保存为系统的默认菜单。
Set sysmenu to default 将自定义的菜单还原成系统默认的菜单。
二、设计下拉式菜单(a、替换系统菜单,b、放在顶层表单中)a、替换系统菜单调用菜单设计器定义菜单:设置条形菜单设置条形菜单的名称和热键\<F结果列:命令,一般为一条过程,多条命令,过长会自动换行,一般是两条子菜单编辑子菜单(弹出式菜单)设置快捷键设置分隔线运行:Do 菜单名.mpr三、为顶层表单添加菜单1、新建表单,设置表单的showwindows属性设置为2-作为顶层表单-——〉保存表单。
2、在定义菜单时,在显示菜单-〉常规选项-〉选择顶层表单,保存,生成菜单。
注:用菜单引用表单的时候,引用表单的文件名,如:用菜单选项关闭表单时使用:表单文件名.release3、在表单的load/init事件中添加调用菜单的命令Do 菜单文件名.mpr with this4、在表单的destory事件中,添加Release menu 菜单名extended可以在关闭表单时清除菜单,释放内存空间5、保存表单,运行四、设计快捷菜单:新建快捷菜单在表单对象的rightclick事件代码中调用命令Do 快捷菜单程序文件名.mpr。
VFP利用WORD打印票据的一个通用程序
VFP利用WORD打印票据的一个通用程序以前我做过一个支票打印程序,就是把存在数据库中的记录按照支票的格式进行套打。
由于在VFP中设置自定义纸张比较麻烦,且报表中各项数据的位置也不太容易更改,所以我的程序中就把数据输出到Word中,然后进行打印。
除了保存支票的表外,还需要两个表:一个页面设置表,一个各项数据的布局表。
现在我把支票打印程序中的部分代码抽出来做来了通用的程序。
Record2Word.prgNOTE ;约定:1. 当前有三个表打开,这三个表分别存储要输出的各项记录、页面设置及各个字段的位置 ;2. 这三个表都有一个字段ID,整型,进行输出操作时根据ID来取数据 ;3. 三个表的结构:;表1 ID I, ID2 I... (其各他字段自行定义) ;ID2用以标示与区别相同ID的不同记录 ;表2 ID I, Width B, Height B, Margin1 B, Margin2 B, Margin3 B, Margin4 B ;其中:Width -页面宽度, Height -页面高度, Margin1 -上边距, Margin2 -下边距, ;Margin3 -左边距, Margin4 -右边距 ;表3 ID I, Number I, value C(50), Name C(30), Size B, Bold L, Italic L, ;Left B, Top B, Width B, Height B, Alignment I ;其中各字段类型相符即可,长度不做硬性要求;value可以存府VFP表达式,如: ;PADL(ALLTRIM(STR(YEAR(日期))),4,’ ’),其中“日期”是字段名。
;Name, Size, Bold, Italic, Left, Top, Width, Height, Alignment 分别是 ;文本框的字体名称、大小、加粗、倾斜、左、上、宽、高、对齐 ;ENDLPARAMETERS tnID, tnID2, tcAlias1, tcAlias2, tcAlias3, tlVisible, tlFlag*-- tnID 三表中的相同字段ID的值*-- tnID2 表1中的ID2字段值,为-1时打印所有表1中ID为tnID的记录*-- tcAlias1, tcAlias2, tcAlias3 分别为表1、表2、表3的别名*-- tlVisible 输出到Word中的整个过程是否可见*-- tlFlag .F.-预览 .T.-打印PRIVATE lcError, lcAlias, lnRecordNo, lnRecordNo1, lnRecordNo2, lnRecordNo3, lcTempAlias, ;lnRecordCount, lnRecordCount2, laPageSetup[7], laLayout[1, 12], loWord, loActiveDocument, i, jlcError = ""lcAlias = ALIAS()lnRecordNo = RECNO()SELECT (tcAlias1)lnRecordNo1 = RECNO()lcTempAlias = SYS(2015)IF tnID2 = -1SELECT * FROM (tcAlias1) WHERE ID = tnID INTO CURSOR (lcTempAlias)ELSESELECT * FROM (tcAlias1) WHERE ID = tnID AND ID2 = tnID2 INTO CURSOR (lcT empAlias)ENDIFlnRecordCount = _TALLYlcError = IIF(_TALLY > 0, "", "ERROR")= GoT oRecordNo(tcAlias1, lnRecordNo1)SELECT (tcAlias2)lnRecordNo2 = RECNO()SELECT * FROM (tcAlias2) WHERE ID = tnID INTO ARRAY laPageSetuplcError = IIF(_TALLY > 0, "", "ERROR")= GoT oRecordNo(tcAlias2, lnRecordNo2)SELECT (tcAlias3)lnRecordNo3 = RECNO()SELECT * FROM (tcAlias3) WHERE ID = tnID INTO ARRAY laLayoutlnRecordCount2 = _TALLYlcError = IIF(_TALLY > 0, "", "ERROR")= GoT oRecordNo(tcAlias3, lnRecordNo3)IF EMPTY(lcError) = .F.RETURN lcErrorENDIFTRYloWord = CREATEOBJECT("Word.Application")CATCHlcError = "ERROR"ENDTRYIF EMPTY(lcError) = .F.RETURN lcErrorENDIFTRYloWord.Visible = tlVisible loActiveDocument = loWord.Documents.Add() loActiveDocument.Activate()loWord.ActiveWindow.View.Type = 3WITH loWord.ActiveDocument.PageSetup.LineNumbering.Active = .F..Orientation = 1.TopMargin = laPageSetup[4]*28.35.BottomMargin = laPageSetup[5]*28.35.LeftMargin = laPageSetup[6]*28.35.RightMargin = laPageSetup[7]*28.35.Gutter = 0.HeaderDistance = 0.FooterDistance = 0.PageWidth = laPageSetup[2]*28.35.PageHeight = laPageSetup[3]*28.35.OddAndEvenPagesHeaderFooter = .F..DifferentFirstPageHeaderFooter = .F..SuppressEndnotes = .F..MirrorMargins = .F..TwoPagesOnOne = .F.ENDWITHSELECT (lcTempAlias)FOR i = 1 TO lnRecordCountGO ist.Range.Selectloword.Selection.TypeText(" ")FOR j = 1 TO lnRecordCount2loWord.ActiveDocument.Shapes.AddTextbox(1, laLayout[j, 8]*28.35, laLayout[j, 9]*28.35, ;laLayout[j, 10]*28.35, laLayout[j, 11]*28.35).SelectWITH loWord.Selection = laLayout[j, 4].Font.Size = laLayout[j, 5].Font.Bold = laLayout[j, 6].Font.Italic = laLayout[j, 7].TypeText(EVALUATE(laLayout[j, 3])).ShapeRange.Fill.Visible = 0.ShapeRange.Line.Transparency = 0.ShapeRange.Line.Visible = 0.ShapeRange.TextFrame.MarginLeft = 0.ShapeRange.TextFrame.MarginRight = 0.ShapeRange.TextFrame.MarginTop = 0.ShapeRange.TextFrame.MarginBottom = 0.ShapeRange.TextFrame.WordWrap = .T..ParagraphFormat.Alignment = laLayout[j, 12]ENDWITHENDFORIF i < lnRecordCountst.Range.Select()loWord.Selection.MoveRight()loWord.Selection.InsertBreak(2)ENDIFENDFORlcError = "ERROR"ENDTRYIF EMPTY(lcError) = .F.RETURN lcErrorENDIFIF EMPTY(lcAlias) = .F.SELECT (lcAlias)= GoT oRecordNo(lcAlias, lnRecordNo) ENDIFIF tlFlag = .F.loWord.ActiveDocument.PrintPreview() loWord.Visible = .T.ELSEloWord.ActiveDocument.PrintOut() loWord.Visible = .T.ENDIFPROCEDURE GoToRecordNo LPARAMETERS tcAlias, tnRecordNo SELECT (tcAlias)IF tnRecordNo > 1TRYGO (tnRecordNo)CATCHENDIF ENDPROC。
VFP编程实战之WORD技术一
VFP编程实战之WORD技术一对象的建立及控制本文集中介绍在VFP中调用和控制WORD的基本方法。
一、建立WORD应用程序对象,新建、打开、保存WORD文档1、建立对象在VFP中调用WORD首先必须先建立一个WORD应用程序对象:MyWord=CreateObject('Word.Application')MyWord是一个自定义的对象变量,代表WORD应用程序。
2、显示WORD窗口MyWord.Visible=.T.如果将MyWord.Visible的值设为.F.,则关闭WORD窗口,但WORD程序仍在后台运行,仍可以对其进行控制。
3、新建一个WORD文档MyWord.Documents.AddDocuments是由Word 当前打开的所有Document对象所组成的集合。
Document代表一个WORD文档对象。
Documents集合对象的两个常用属性:(1)Count属性统计Documents集合对象中Document对象数量,即当前打开文档的数量。
(2)Name属性Document对象的文件名称。
下例显示Documents集合对象中文档总数和每个文档的名称。
? MyWord.Documents.CountFor Each MyDoc IN MyWord.Documents? Next MyDoc4、打开一个已存在的WORD文档MyWord.Documents.Open ('e:\abcef.doc')文件名称要包含完整的路径。
5、激活文档,使文档成为当前激动文档MyWord.Documents(index).Activateindex是文档的名称或索引序号。
新建的文档或刚打开的文档默认为当前活动文档。
可用ActiveDocument 属性返回一个Document 对象,该对象代表活动文档。
6、保存文档MyWord.Documents(index).Saveindex是文档的名称或索引序号。
VFPMicrosoft Word 文档 (2)
Visual FoxPro ,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后,得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。
VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。
它提供了功能完备的工具、极其友好的用户界面、简单的数据存取方式、独一无二的跨平台技术,交肯有良好的兼容性、真正的可编译性和较强的安全性,是目前最快捷、最实用的数据库管理系统软件之一。
VFP(Vector Floating-point Coprocessor for ARM)向量浮点运算单元(协处理器) VFP除了提供浮点数基本运算(加、减、乘、除、开方、比较、取反)提供支持之外,最有特点是它向量(vectors)功能。
它同时支持最多8组单精度4组双精度浮点数的运算。
有关这部分的叙述请参考<<ARM Architecture Reference Manual>> Chapter C5 VFP Addressing Modes。
VFP概念FoxBase采用命令行方式(为了和当时流行的数据库软件dBase兼容……)但是速度比当时其他的数据库软件要快。
由于其为32位的数据库开发系统且具有良好的跨平台特性,它可以运行于Windows95/98/2000/XP/Visita/7等操作系统之上。
Visual FoxPro成长之路Visual FoxPro(以下简称VFP)是个不断成长的小伙,承蒙Visual Studio(以下简称VS)的关照,VFP在开发者心目中一直是和VB、VC地位相同的工具语言,只不过它并不是通用开发工具,而只是专注于数据库应用的开发。
然而,吊足大家胃口的VS. NET终于出现在开发者面前时,竟不见了VFP的身影,着实引起开发社区的一阵骚动。
微软不要VFP了?不是,恰恰相反,VFP忍受不了VS缓慢的升级速度,“单干”了。
vf word教程
第八章表单设计及应用内容提要:了解表单对象的有关概念表单基类的介绍创建与管理表单管理表单属性和方法,事件表单常见控件一、了解表单表单是对表进行管理和操作的一种界面;也是建立应用程序界面的一个工具之一,有些软件把他叫做窗体。
表单的内容包含命令按钮、文本框、列表框等各种界面元素(对象)。
1、设计容易实现,便于维护2、使用方便、直接二、对象的有关概念1〉对象:对象可以是一个具体的物品,也可以是一个抽象的概念,每个对象都有一定的状态,也有自己的行为(能力)。
对象的属性是描述对象的状态,特征的参数(属性值)对象的方法是描述对象的行为(能力,状态)2〉类:类可以说是相似属性和方法的对象的集合,对象是类的一个实例。
三、基类的介绍基类就是VF提供的常用的类。
容器与控件两大类。
能够包含其他对象的就称为容器。
其余的都属于基本控件。
四、创建与管理表单创建表单的过程有三种:一是利用向导;二是利用数据环境;三是利用控件自定义表单。
1〉用表单向导(适合与表有关)扩展名.scx 运行:do form 表单名.scx2〉用表单设计器的数据环境进入表单设计器的方法:“新建”1、表单设计器的构成表单设计器窗口,表单对象表单设计器工具栏(自动出现)属性窗口表单控件工具栏、布局工具栏。
2、数据环境因为表单可以与表有关,数据环境实质是指定建立表单的数据来源及其它设置。
a、打开数据环境设计器(右击—)数据环境)b、向数据环境添加表、从数据环境移出表数据环境中的表可以随着表单的运行自动打开,随着表单的关闭自动关闭c、给表单添加表信息将数据环境中表的字段拖到表单中将数据环境中整个表拖到表单中(表单中以表格控件方式显示信息)d、在数据环境中设置多表关系(临时关系)i、若是有永久关系,随着表添加到数据环境时,自动生成临时关系。
ii、在数据环境中建立临时关系1、子表有字段索引在父表的字段上按住左键直接拖动到子表对应的字段索引名上。
2、子表没有字段索引在父表的字段上按住左键直接拖动到子表对应的字段上(会自动建立索引)五、管理表单属性和方法、事件一个表单建立好后可以任意添加或取消属性和方法属性:设计表单时,在“属性”窗口中选属性设置(注意:也可以在事件过程中直接写代码来设置,后面讲)name 用来引用一个对象。
将VFP数据输出到WORD文档的方法
每个文件至少 一页, 式多样 , 格 数量达到二 三十多页 。在片 J
VF P进行程序 设计时 ,对于 文档的输 出处理我们常使用报
表 , V P与其他 数据库管理系 统一样, 表输出模块 也存 但 F 报
在 以 下严 重 不 足 。
2 退 出 WO D ( 出 之 前 应 先 处 理 好 打 开 的 文 档 , 、 R 退 否 则 可 能 丢 失所 作 工 作 ) 。
用 V P编 写一个 稽征所 处罚小系 统, F 此系统 的基 本数 据 为案件信息 。 一个 案件 的信息有约二十多项 , 案件信息本 身的数据处理略 去, 要注意 的是: 最后每条案件 信息都存档 为一 系列诸 如 交通违 法行 为立案 审批 表 、交通违 法行为 通知书 、交通行政执法 询问笔录 多达二十个 书面文件 。 等
多优点 , 它的排版功 能非常强人 , 普及度 非常 高。所 以采刚
WOR 作为此系统 的数据输 出载体是很理想 的。 D WO D提 供 的 V S是 一种用 命令操 作 WO 的语 言 R B D R 系统 ,此系统可供 其它语 言调 用。而 V P中通过用 C E F R— A E B E T( T O J C )函数创 建” WOR D 对象 变量 之后 。 我们就 可 以利 用面 向对象 的程序设 计方法, 调用 VB S的具 体命令。 将
维普资讯
20 6月 06年
电 脑 学 习
第3 期
将 V P数据 输 出到 WO D文 档 的方法 F R
宋 国琴 ’
摘 要 讨 论 了在 V P 中控 制 WO D 的 方 法 , 点讨 论 了从 V P输 出数 据 到 WO D文 档 的 方 法 。 F R 重 F R 关键 词 Vsa Fx r 数 据 输 出 调 用 i l o po u
VFP实现批量导入Word文档试题到数据库的方法
…
I 删幅E P R O C 砖S I N G&啊U 哪 删∞限T A C H N O L O G Y ……………………………………………………………
4 结语
为人 脸识别 提 出一种 学 习方 法——基于拓 展 的稀疏 表示 和D — K S V D的人脸识别。通过在原始 K — S V D算法 的 目标 函数 式 中添加判别 项使学 习得 到 的过完备 字典 既包含表 示能力 又 包含判别分类 能力 。该方 案源 自于 K — S VD算法 .能被有效地
[ 2 ] 陈伏 兵 ,高 秀梅 ,张生亮 ,杨静宇.基于分块 P C A的人
脸识别方法 【 J ].小型微 型计 算机系统 ,2 0 0 6 ,2 7( 1 o ) :
1 9 43-1 9 47 .
上式 因添加 了系数修正项 ,更加鲁 棒 ,同时提高 了字典
的表 示 能 力 。最 终求 解 的稀 疏 编 码 系 数 应 去 除掉 修 正 的部 分 。
t i o n s o n P a t t e r n An a l y s i s a n d Ma c h i n e I n t e l l i g e n c e , 2 0 0 5 ,2 7
( 5 ):6 8 4 - 6 9 8 .
‘ 口 , w x
I I ( /  ̄~ 、 l { 2 M . [ I X 3 1 。
r e c o g n i r o n r o b u s t t o l o c a l d i s t o r t i o n a n d p a r t i l o a c c l u s i o n
[ J 】. I E E E T r a n s a c t i o n s o n P a t t e r n A n l a y s i s a n d Ma c h i n e I n —
VF基础教程
菜鸟学习VFP前言大学的暑假是珍贵的,像我这样暑假呆在家里面,整天无所事事的同学不在少数,为了应付枯燥乏味的暑假,我决定在暑假学习一些知识,挑来挑去还是觉得选VFP比较有意义,因为这门科需要过二级,相信许多看到这篇文章的朋友也要过二级,那么我们大家就从今天开始共同学习吧。
所以从今天起,我的网上VFP学习课程便开张了,希望我能写完。
说起为什么会开这个专题,我相信很多读者都有疑问,学习就学习是了,干嘛还将自己的学习成果放到网上来?我在这里要澄清一下,之所以我会选择这样做,是因为我觉得一个人在家里面学习太没有那种气氛了,我希望能够放到网上来,大家看着想着,遇到问题大家可以在一起讨论,在一起互相提意见,还有就是希望能够帮到有心学习VFP,但是却觉得枯燥乏味而放弃的朋友。
在更新期间,我将在我的QQ空间(/591841742/infocenter?ptlang=2052天下人犯是一家),上更新。
欢迎大家转载,转载请注明出处,也希望大家能够在我的博客上踊跃发言。
首先要说明的是本文仅针对上机考试编写,让你能够在计算机上完成初级的数据库程序开发。
关于理论的请多阅读教材。
另外是针对VFP的初学者,也就是菜鸟级人物来学习,为了应付随之而来的省和国家二级VFP考试的同学使用,如果是VFP数据库专业人员来这里的话,希望多提提意见,不要见笑,错误之处,还请指正,就此拜谢!呵呵。
VFP是microsoft公司开发的一款数据库管理系统(DBMS),全称是Visual FoxPro。
作为二级考试科目的是采用关系数据库系统Visual FoxPro 6.0 (为了区分版本,在以后的文章中简称为VF6),VF6是小型数据库管理系统的杰作,它以强大的性能,完整而又丰富的工具,较高的处理速度,友好的界面以及较完备的兼容性等特点,备受广大用户的欢迎。
(注:该段内容来自国家二级考试VFP课本前言——高等教育出版社出版)好了,套话到此结束,本来上面的那一段话不想写的,然后又觉得至少把出处点明,在吹吹牛,说VFP多好多好,毕竟人家公司开发这系统也不容易。
VF的基本操作
第二章VF的基本操作第一节VF的安装及其界面的简介一VF的安装首先要买一张VF的安装光盘或者去网络上下载安装软件包。
我认为买光盘好一点,一张D版【即盗版】的光盘才几块钱,而质量与正版的没什么差别。
若去下载的话,在如今的网速下,没有几十分钟是下不完的。
然后,把光盘插入光驱,在"我的电脑"里进入光盘,双击『setup』文件,接下来就按电脑提示操作就OK了。
【许多软件安装时需要产品序列号,VF也需要。
请在安装光盘里的txt文件里找到它——就是一大串数字,再把它复制到需要填产品序列号的位置】。
若是软件包,请解压缩后,直接双击『setup』文件。
二界面简介它的界面与WORD的差不多,其实大多数软件的界面都相差无几。
下面介绍VF主界面上的部分菜单。
1、文件菜单与一般的MICROSOFT软件菜单类似,有文件的『新建』、『打开』、『关闭』、『保存』、『另存为』和『还原』等命令。
具有创建新文件,打开文件,存储文件,关闭文件,关闭窗口,打印设置和打印,退出系统操作等功能。
2、编辑菜单编辑菜单包括了编辑文本的所有命令,比如:『撤消』、『重做』、『剪切』、『复制』、『粘贴』等。
3、窗口菜单窗口菜单主要负责管理窗口操作。
4、帮助菜单帮助菜单为学习者提供强大的帮助功能。
第二节进入和退出VF的操作进入VF,即启动VF语言。
启动VF常用的有两种方式:第一种是单击『开始』菜单,选『程序』,再选火狐狸头像的『Foxpro』程序。
第二种是双击桌面上的火狐狸头像的『Foxpro』程序的快捷方式。
退出VF,在命令框输入:quit 然后回车即可。
系统将保存并关闭所有文件然后退出。
第三节文件的打开和保存一打开文件菜单方式:选『文件』→『打开』,在浏览里查找到你要打开的文件(如,数据表,项目,程序等),点『确定』按钮即可。
命令方式:略。
二保存文件菜单方式:选『文件』→『保存』即可。
若是第一次保存,电脑会提醒你输入文件名。
命令方式:略。
VF操作
【转载】vf常用代码集锦(中)◆为什么编译后的程序运行时屏幕一闪就不见了你需要在你的程序中建立“等待状态”。
可以用READ EVENTS命令来建立等待状态。
要清除等待状态,可使用CLEAR EVENTS命令。
如果你只有一个屏幕,把表单的WindowState属性设置为Modal。
这也提供等待状态,但是不允许你使用菜单。
当模式表单被释放时,等待状态结束并返回至操作系统。
例如:主程序如下,并且要将主程序点左键设为主文件即可。
do form 表单read eventsquiton shutdown on aa.prgaa.prg程序内容如下:clear eventsquit在config.fpw文件中放入以下内容:screen=offform表单的unload事件:clear eventsquit注:要将表单设为顶层表单◆ VFP中系统计算器的调用在VFP中有一个系统隐含的计算器,可以通过命令方式调出来。
这样可以帮助用户在进行数据录入时同步核算。
调用方法:ACTIVATE WINDOW calculator返回值:_calcvalue在计算器被调出来时,其显示器是灰色的rgb(192,192,192),当进行计算操作时,一个步骤结束后,显示器的颜色会变成黑色rgb(0,0,0),这时系统变量_calcvalue的值已经被改变。
在软件设计时,用ACTIVATE WINDOW calculator激活系统计算器,用_calcvalue来显示计算结果。
◆VFP中对控件动态提示的实现在使用Microsoft系列软件时,一旦您的鼠标停留在软件中所列的某个图标按钮上,就会在这个图标按钮的右下方出现一个黄色背景的提示框,说明这个按钮的作用;当把鼠标从这个按钮上移开后,提示框立即消失。
这一功能非常适用于应用程序中,即增加了应用程序的易用性,又使得软件显得非常专业化。
其实我们在设计VFP应用程序时,利用表单的ShowTips 属性和控件的ToolTipText属性可以轻松实现上述功能。
vf表单控件使用说明
一、标签标签能够显示多个字符构成的文本,用于设计表单上所需的文字性提示信息。
标签和大多数控件的不同点在于运行表单时不能用《tab》键来选择标签。
常用的标签属性及其作用如下。
1、Caption:确定标签处显示的文本。
2、Visible:设置标签可见还是隐藏。
3、AutoSize:确定是否根据标签上显示文本的长度,自动调整标签大小。
4、BackStyle:确定标签是否透明。
5、WordWrap:确定标签上显示的文本能否换行。
6、FontSize:确定标签上显示文本所采用的字号。
7、FontName:确定标签上显示文本所采用的字体。
8、ForeColor:确定标签上显示的文本颜色。
二、命令按钮和命令按钮组在各种窗口或对话框中几乎都要使用一个或多个命令按钮。
一旦用户单击一个命令按钮,就可实现某种规定的操作。
例如,各种对话框中的“确定”按钮,当用户单击时将结束对话框的操作。
VisualForPro中的命令按钮控件同样用于完成特定的操作。
操作的代码通常放在命令按钮的“单击”事件(即Click Event)代码中。
这样,运行表单时,当用户单击命令按钮时便会执行Click事件代码。
如果在表单运行中,某个命令按钮获得了焦点(这时,这个命令按钮上会比其他命令按钮多一个线框),则当用户按下《Enter》键或空格键时,也会执行这个命令按钮的Click时间代码。
常用的命令按钮属性及其作用如下:1、Caption:设置在按钮上显示的文本。
2、Default:在表单运行中,当命令按钮以外的某些控件(如文本框)获得焦点时,若用户按下《Enter》键,将执行Default属性值为.T.的那个命令按钮的click事件代码。
3、Cancel:如果设置该属性值为.T.,则当用户按下<Esc>键时,将执行命令按钮的click事件的代码。
4、Enabled:指明按钮是否失效,即是否被选择。
当Enabled属性值为.f.时,用户无法选择该按钮。
[转载]vfp调用word?OR?excel(二)
[转载]vfp调用word?OR?excel(二)vfp调用word OR excel(二)10.从VFP中导出数据的几种方法!答:当VFP处理好数据后,这时你可以用多种方法将这些数据导出,以便被其它应用程序(如Excel等)所用。
下面向你简单介绍几种导出数据的方法:1.用“导出数据”对话框。
你可以从VFP主菜单中选择“文件/导出…”打开“导出”对话框,在该对话框中的“来源”框中输入表名(c:vfpstudents.dbf),在“类型”中指定要导出数据的类型(Microsoft Excel),在“到”框中输入导出的路径和文件名(C:excelaa.xls),然后按“确定”即可。
这时你如果查看command窗口,可发现以下代码:COPY TO C:excelaa.XLS TYPE XL52.用COPY TO命令。
COPY TO命令的工作对象是VFP中的表,它要依据“TYPE”项才知道要产生哪一类导出文件。
对于上面的导出过程,可用以下方法实现:USE studentsCOPY TO C:excelaa.XLS TYPE XL512.在VFP6中,如何调用已经存在的WORD文件?oW = CREATEOBJECT([word.basic])with oW.Apprestore().Appmaximize().fileopen("路径+文件名.扩展名")ENDWITH13.打开word文件的控件?用RUN /N3 C:WORD.EXE 文档路径C:WORD.EXE是我自己写的,你用时换成WORD的真正路径就行了!比如用WORD 打开SD.DOC 就写RUN /N3 C:WORD.EXE C:SD.DOC另:TXLS_EOLE = CREATEOBJECT('word.application')TXLS_EOLE.Documents.Open('文件名.doc')TXLS_EOLE.Visible=.t.注意:别忘了关闭哦TXLS_EOLE.Documents.close &&关闭文档TXLS_EOLE.quit &&关闭wordRELEASE TXLS_EOLE &&释放对象再者:fw=alltrim(this.value)if file('&fw')*documents.open filename('&fw')wrdapp = createobject("word.application")wrdapp.visible=.t.*wrdapp.documents.addwrdapp.documents.open(alltrim(this.value))elsemessagebox(fw+chr(13)+'文件不存在,请确认',0+16,'文件路径出错')RETURN(.F.)ENDIF14.在表单中创建一个编辑框,用来显示WORD文档!做一个按扭,在CLICK中写:THISFORM.EDIT1.value=FILETOSTR(GETFILE('DOC'))这个不也行,而且还简单15.强烈建议:直接使用ole可以在表单中打开word,建议不使用这种办法,改为利用api用windows默认的程序打开word,数据库只存储word文档所在的位置和名字。
用VFP命令控制Word
用VFP命令控制Word用VFP命令控制Word1、创建Word文档Appword=CreateObject("word.application")2、显示Word文档Appword.Visible=.t.3、建立新文档Appword.Documents.Add()4、保存文档Appword.ActiveDocument.SaveAs("E:\abc.doc")5、打开文档Appword.ActiveDocument.Open("E:\abc.doc")6、保存Appword.ActiveDocument.Save7、关闭Appword.ActiveDocument.Close8、退出Appword.Application.Quit9、打印Appword.ActiveDocument.PrintOut10、设置上页边距Appword.ActiveDocument.PageSetup.TopMargin=1.5/0.03511、设置下页边距Appword.ActiveDocument.PageSetup.BottomMargin=1.5/0. 03512、设置左页边距Appword.ActiveDocument.PageSetup.LeftMargin=1.5/0.03513、设置右页边距Appword.ActiveDocument.PageSetup.RightMargin=1.5/0.03514、设置页宽Appword.ActiveDocument.PageSetup.PageWidth=18.4/0.03 515、设置页高Appword.ActiveDocument.PageSetup.PageHeight=26/0.03516、设置页面竖放Appword.ActiveDocument.PageSetup.Orientation=117、设置页面横放Appword.ActiveDocument.PageSetup.Orientation=218 、指定网格youtMode=0 && 0--不指定网格1--指定网格和字符网格2--指定行网格3--文字对齐网格19、设置每页行数Appword.ActiveDocument.PageSetup.LinesPage=4220、设置每行字数Appword.ActiveDocument.PageSetup.ChartLine=1021、页面设为4栏Appword.ActiveDocument.PageSetup.TextColumns.SetCoun t(4)22、设置栏宽Appword.ActiveDocument.PageSetup.TextColumns.Width= 3/0.03523、设置栏间距Appword.ActiveDocument.PageSetup.TextColumns.Specing =0.5/0.03524、插入文字Appword.Selection.Text="如果创建了工具栏"25、插入文字Appword.Selection.InsertAfter(space(6)+"多谢贵公司的支持!")26、指定字号Appword.Selection.FontSize=10.527、设置对齐方式Appword.Selection.ParagraphFormat.Alignment=0 && 0为左对齐 1居中 2右对齐 3两端对齐28、设置字体Appword.Selection.FontName="宋体"29、删除光标前面的字符(回车符等)Appword.Selection.Typebackspace30、删除字符Appword.Selection.Delete(1,1) && 第一个数字:1为下删一字,2为下删到下一个标点第二个数字为数量31、插入新页Appword.Selection.InsertBreak(0)32、回车符Appword.Selection.TypeParagraph && 0--插入新页 1--插入分页符33、移到上一页的页首Appword.Selection.Browser.Previous34、移到下一页的页首Appword.Selection.Browser.Next35、Appword.Selection.MoveRight(3,1,1) && 第一个数字意思:3--移动一句,2--移动到上一个标点,1--移动一个字符&& 第二个数字为移动的数量第三个数字表示选中状态36、Appword.Selection.MoveLeft(3,1,1)37、Appword.Selection.Moveup(4,1,1) && 第一个数字:4--移到上一段开头,5--向上移一行,7--翻一页(PageDown) && 第三个数字表示选中状态38、Appword.Selection.MoveDown(5,1,1) && 第一个数字:4--移到下一段开头,5--向下移一行,7--下翻一页(PageDown) && 第三个数字表示选中状态39、选中全部文字Appword.Selection. Wholestory40、插入表格Appword..ActiveDocument.Table.Add(Appword.Selection.Ra nge,9,61,0) && 插入一个9行6列的表格。
vf word教程
第二章表的操作内容提要:1、打开表,浏览表,关闭2、记录显示(输出)3、记录的描述、定位4、表记录的追加、插入5、表记录的删除6、表记录的拷贝,成批追加7、表的修改8、表的物理顺序1、打开表、浏览表、关闭(复习内容)1〉、创建、打开a〉、create 表名b〉、打开对话框c〉、用命令: use 表名(默认是以独占方式打开)2〉、浏览表(进入表浏览状态)a〉、在显示菜单中选“浏览”b〉、用命令 browse/browse last (默认格式/最近一次格式) c〉、把浏览内容保存为网页格式(HTML)文件菜单——〉另存为HTML格式3〉、修改表结构(必需进入表设计器)先打开表(独占方式)a〉、显示菜单——〉表设计器b〉、modify structure(进入表设计器)4〉、关闭a〉、use(只关闭当前表)b〉、close all (关闭所有)2、记录显示(输出)1〉、显示记录命令 list/displaya〉、单独使用list/displaylist 相当于list all/display alldisplay 只显示当前记录记录号:纪录的物理编号当前记录:当前的一行记录b〉、组合命令格式:list/display[选择记录(行)语句][选择字段(列)语句]选择记录语句(行):两种途径:1、利用范围:all全部记录list all(自动换屏) display all(手动换屏)rest从当前记录到最后一条记录next n 从当前记录开始的n条记录record n 第n条记录(这里的n是指记录号)2、利用条件(for)list for 条件(显示所有满足条件的记录)注意条件的输出方法:字符、日期、逻辑、数值注意条件的运算符:>,<,=,>=,<=,<>,!=,#,.and., or ,not = 模糊比较,不精确比较,比较的长度以等号右边的内容长度为依据,即等号右边的内容和等号左边内容的前半部分相同则认为其相等。
VFW教程
第6章 VFW软件开发包6.1 VFW简介/6.2 AVI文件流操作(1)VFW(Video for Windows)是Microsoft推出的关于数字视频的一个软件开发包,VFM的件标准。
AVI(Audio Video Interleave)文件中的视频数据帧交错存放。
围绕AVI文件,VFW 完整的视频采集、压缩、解压、回放和编辑的应用程序编程接口(API)。
由于AVI文件格式在数字视频技术中有广泛的应用,所以VFM仍有很大的实用价值,且有进一步发展之势。
在VFM的基本结构中,本章重点介绍以下模块的调用:(1)AFIFILE.dll:支持标准多媒体I/O函数及宏调用。
(2)Avfcap.dll:它提供视频采集功能与外接硬件(如摄像头)打交道。
(3)VCM视频压缩管理器:它负责视频压缩/解码,是为应用程序调用底层压缩驱动程序(4)MSVIDE.dll:在视图中画出视频数据图像。
在VC++开发环境中调用VFW与使用其他开发包没有什么不同,只是需要将VFW32.lib文中,但需要注意的是在开发视频捕捉与压缩管理程序时需要其他软硬件设置,具体情况将在述。
另外,在VC++安装目录下提供了一些小的工具程序,可以用于测试硬件设备性能,如果入的研究,可以参阅开发文档。
6.2 AVI文件流操作VFW为AVI文件提供了丰富的处理函数和宏定义,AVI文件的特点在于它是典型的数据流视频、音频流和文本流组成。
所以对AVI文件的处理主要是处理文件流。
本节我们将依次结合具体实例讲述一下常用操作:(1)打开/关闭文件流;(2)读/写数据操作;(3)在文件中定位;(4)用剪贴板编辑数据流。
有关AVI文件处理的详细信息可在MSDN中的SDK/GRAPHICS AND MULTIMEDIA SERV FOR WINDOWS中找到。
6.2.1 打开/关闭文件流file://E:\老大的文档\教程\单片机\VFW教程\1.htm2005-8-1首先要用AVIFILEINIT函数初始化AVIFILE库。
将VFP的DBF导出到WORD(每行打印2条记录、不打印备注型通用型字段内容)
将VFP的DBF导出到WORD(每行打印2条记录、不打印备注型通用型字段内容)* 编号:A0020* 功能:1、将VFP的DBF导出到WORD* 2、每行打印2条记录* 3、不打印备注型、通用型字段内容SET TALK OFFSET SAFETY OFFSET DATE TO YMDSET MARK TO "-"SET CENTURY ONSET COMPATIBLE OFFfn=getfile("dbf")use &fn#define NUM_AFIELDS 16PUBLIC aWizFListDIMENSION aWizFList[1]=AFIELDS(aWizFList)GO topmyfcount=fcount()for i=1 to fcount()if INLIST(aWizFList[i,2],"G","M")myfcount=myfcount-1LOOPendifendforIF EMPTY(ALIAS())MessageBox( "当前工作区没有打开工作表!",48,"不能生成表格")ENDIFWAIT "正在访问 Word 软件……" WINDOW NOWAITWordApp=CREATEOBJECT("Word.application") &&访问WORDIf Type("WordApp")#"O"WAIT CLEARMessageBox( "访问Word失败!请检查你的系统是否正确安装Word 软件!",48,"没有安装Word")RETURNENDIFWAIT "正在生成表格……" WINDOW NOWAITWordApp.Visible =.t.WordApp.Documents.AddWordApp.ActiveDocument.PageSetup.LinesPage = 35 &&设置每页打印行数WordApp.Documents(1).Range.Text=ALIAS()+"一览表"WordApp.Documents(1).Range.Font.Size= 15WordApp.Documents(1)="黑体"WordApp.Documents(1).Range.Paragraphs.Alignment= 1WordAppRang=WordApp.Documents(1).Range(LENC(Word App.Documents(1).Range.Text)-1,LENC(WordApp.Documents(1).Range.Text)-1)if mod(reccount(),2)=1myreccount=(reccount()+1)/2elsemyreccount=reccount()/2endifWordTable=WordApp.Documents(1).Tables.Add(WordAppR ang,myreccount+1,myfcount*2)WordTable.Range.Paragraphs.Alignment= 0="宋体"WordTable.Range.Font.Size=10WordTable.Borders.Enable=1WordTable.Borders(1).LineWidth = 12WordTable.Borders(2).LineWidth = 12WordTable.Borders(3).LineWidth = 12WordTable.Borders(4).LineWidth = 12WordTable.Rows(1).Borders(3).LineWidth = 12WordTable.Rows(1).Range.Font.Bold=.t.WordTable.Rows(1).Cells.VerticalAlignment= 1WordTable.Rows(1).Range.Paragraphs.Alignment = 4 && 分散对齐WordTable.Rows(1).HeadingFormat=.t.FOR j=1 TO RECCOUNT()k=0FOR i=1 TO FCOUNT()if INLIST(aWizFList[i,2],"G","M")k=k+1loopelsezdm=aWizFList[i,1]WordCellText=EVALUATE(zdm)IF EMPTY(WordCellText) OR ISNULL(WordCellText)WordCellText=" "ENDIFDO CASECASE ISNULL(WordCellText)WordCellText=""CASE TYPE("WordCellText")="N"mywidth=aWizFList[i,3]mydwdith=aWizFList[i,4]WordCellText=str(WordCellText,mywidth,mydwdith) CASE TYPE("WordCellText")="D"WordCellText=DTOC(WordCellText)CASE TYPE("WordCellText")="T"WordCellText=TTOC(WordCellText)CASE TYPE("WordCellText")="M"WordCellText=TRIM(WordCellText)WordCellText=STRTRAN(WordCellT ext,CHR(13),' ')CASE TYPE("WordCellText")="L"WordCellText=IIF(WordCellText,".T.",".F.")CASE EMPTY(WordCellText)WordCellText=" "OTHERWISE* WordCellText=""ENDCASEIF EMPTY(WordCellText) OR ISNULL(WordCellText) WordCellText=" "ENDIFm=myfcountWordTable.Cell(1,i-k).Range.Text = aWizFList[i,1] WordTable.Cell(1,m+i-k).Range.Text = aWizFList[i,1]if mod(j,2)=1n=(j+1)/2WordTable.rows(n+1).cells(i-k).Range.Text=WordCellText elsen=j/2WordTable.rows(n+1).cells(m+i-k).Range.Text=WordCellText endifendifnext iskip 1next jWordTable.Columns().AutoFit* 下面为页面设置WordApp.ActiveDocument.PageSetup.PaperSize=7WordApp.ActiveDocument.PageSetup.Orientation=0 &&页面竖放 0-竖放 1-横放*WordTable.Rows.HorizontalPosition=-999995 &&表格水平居中WordApp.ActiveDocument.PageSetup.TopMargin=22.0*2.83 5 &&设置上边距WordApp.ActiveDocument.PageSetup.BottomMargin=22.0* 2.835 &&设置下边距WordApp.ActiveDocument.PageSetup.LeftMargin=19.0*2.8 35 &&设置左边距WordApp.ActiveDocument.PageSetup.RightMargin=19.0*2. 835 &&设置右边距WordApp.ActiveDocument.PageSetup.VerticalAlignment=0 &&页面对齐方式 0-上 1-中 2-下WordApp.ActiveDocument.PageSetup.HeaderDistance=22.0 *2.835 &&页眉位置WordApp.ActiveDocument.PageSetup.FooterDistance=19.0 *2.835 &&页脚位置WordApp.Documents(1).Sections(1).Headers(1).Range.Text= " 王咸美*******************"&&页眉mydate=subst(dtos(date()),1,4)+"年"+subst(dtos(date()),5,2)+"月"+subst(dtos(date()),7,2)+"日"WordApp.Documents(1).Sections(1).Headers(1).Range.Text="制表日期:"+mydate+" " &&页眉WordApp.Documents(1).Sections(1).Headers(1).Range.Parag raphs.Alignment=2 &&页眉右齐WordApp.Documents(1).Sections(1).Footers(1).Range.Paragr aphs.Alignment= 2 &&页脚居中WordApp.Documents(1).Sections(1).Footers(1).Range.Select WordApp.Selection.InsertAfter("第")WordApp.Selection.Start =WordApp.Selection.EndWordApp.Selection.InsertFormula("PAGE")WordApp.Selection.Start =WordApp.Selection.EndWordApp.Selection.InsertBefore("页/共")WordApp.Selection.Start =WordApp.Selection.EndWordApp.Selection.InsertFormula("NUMPAGES")WordApp.Selection.Start =WordApp.Selection.EndWordApp.Selection.InsertBefore("页")WordApp.Selection.Range.Paragraphs.Alignment= 1WordTable.Rows(1).HeadingFormat=.t.WordTable.Columns().AutoFit &&自动调整列宽* 自动保存文件WordApp.Documents(1).SaveAs("E:\"+alias()+".doc") &&自动保存文件RELEASE WordAppWAIT CLEARMessageBox( "生成Word文件完毕,文件位置E:\"+alias()+".doc!",64,"完毕")RETURN。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十章创建报表
报表是为显示和总结数据提供了灵活的途径。
报表主要包括两部分内容:数据源和布局。
数据源是报表要显示的纪录数据(表,视图,查询),布局决定了报表的格式版面。
报表扩展名为frx,报表是一种格式文档。
(是一种框架)
一、报表的布局
1、列报表(默认)(每列一个字段,每一行是一条记录,是常见的报表样式)
2、行报表(一条记录占好几行,每行一个字段,左侧为字段名,右侧为具体内容。
如:证件)
3、多栏报表(分栏报表)
分好几页来显示和打印(只对行报表起作用)
4、一对多报表
包含父表和相关子表中的字段。
二、了解创建报表的方法
1、利用快速报表
2、利用报表设计器
3、利用报表向导
三、利用快速报表
1)close all
2)新建空白报表(包括三部分,页标头,细节,页注脚,带区)
3)使用快速报表(找报表菜单)
4)建快速报表是可以选择表字段
5)了解分栏
页标头每页都有且都相同,在每页的最上面,一般显示每列的名字。
细节对应的是纪录,一个细节对应一条记录所占的空间,有几条记录,细节就重复多少遍。
页注脚每页都有且都相同,一般显示日期、时间,一般在每页的最下面。
文件菜单——〉新建——〉报表
报表菜单——〉快速报表
文件菜单——〉页面设置(列数)
四、利用报表设计器创建报表
1、新建空报表,进入报表设计器
2、调整页面大小(文件菜单——)页面设置——〉打印设置)
3、了解有关工具栏(报表控件工具栏,布局工具栏,调色板工具栏)
显示菜单——〉报表控件工具栏/布局工具栏
4、使用报表数据源(数据环境)
右击报表-〉数据环境-〉右击-〉添加
5、设计报表带区
a、设置标题带区(报表最前面)与总结带区(最后一行记录的后面,对整个表内容的计算)
报表菜单——〉标题和总结
b、调整带区高度(直接拉动/双击调整)
6、使用控件设置布局
a、使用标签控件添加标题(注意排版格式)
b、将字段拖到细节(了解选择多个控件设置布局)
c、使用标签控件在页标头中添加字段的标题
d、添加域控件(报表控件——)域控件)
1)、总结:所有记录列向计算
2)、使用VF函数(日期,时间),页码
e、添加OLE对象(图片对象)可嵌入对象
报表控件——〉OLE控件
f、使用线条,矩形等设置网格(设置格式及位置)
格式菜单——〉绘图笔——〉选择磅数
7、设置分组
a、设置报表记录顺序
1)分组字段建索引
2)设置记录顺序(使索引起作用)
数据环境——〉右击——>属性
b、设置分组报表(完成每组的计算)
报表菜单——〉数据分组-〉分组表达式
主标头相当于每一组的标题(放分组的字段名)
主注脚相当于每一组的总结
五、利用向导创建报表(单表,一对多)
向导一般只能做列报表
六、输出报表
用界面:预览及打印输出
打印命令:report form 表单文件名[preview]/[to printer]
preview 以页面预览方式显示报表
to printer 打印报表。