如何在用VFP做的程序里把VFP的库转成WORD文件。

koolgi 2003-08-25 09:02:17
如题,谢谢,
...全文
128 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
koolgi 2003-08-26
  • 打赏
  • 举报
回复
是呀。
我想能不能把报表转成WORD文件呀,报表里是表格。
我试了,不过WORD文件里好像一些ASCII吗之类的东西。
怎么办呀
koolgi 2003-08-26
  • 打赏
  • 举报
回复
~{JGQ=#,~}
~{6TAK#,NR?I2;?IRT0Q1(1mND<~W*3I~}WORD~{ND<~Q=!#~}
~{NRW*@4AK#,!!2;9}:COqJG~}ASCII~{Bp!#~}
~{RTG01(1m@oSPR;P)1m8q#,H41d3IAK~}ASCII~{Q=~}
koolgi 2003-08-26
  • 打赏
  • 举报
回复
~{JGQ=!#~}
~{6TAK#,NR?I2;?IRT0Q1(1mND<~TZ3LPr@oW*@o~}WORD~{5DQ=!#~}
rida 2003-08-26
  • 打赏
  • 举报
回复
请参考
http://expert.csdn.net/Expert/topic/1765/1765642.xml?temp=.2980615
http://expert.csdn.net/Expert/topic/2032/2032922.xml?temp=.4648706
xiolig 2003-08-26
  • 打赏
  • 举报
回复
三、生成Word文档的程序实现 根据上面的调整策略和算法,我们给出用VFP编制的从VFP数据库 输出Word文档的通用程序。此程序不依赖具体的数据库结构,也不依赖于具体的报表输出格式,可用于任何VFP数据库的Word文档输出。

LOCAL nOldrecno,oleWord,i,j,k,nOutColumn,cString
LOCAL aFieldList[1]
USE b1
IF EOF() &&无输出结果则直接返回
RETURN
ENDIF
=AFIELDS(aFieldList) &&将当前数据库的字段信息存入数组中
nOldrecno=RECNO()
*下面首先生成Word.Basic对象,再用Word.Basic的打开文档命令
打开基本文档框架
oleWord=CREATEOBJECT("Word.Basic")
oleWord.FileOpen("c:\mf\data\word.doc")
*下面是从Word文档的首部向下移动插入点指针,直到移动到表格
中为止。
*这样做的原因是,基本文档框架中在表格的上面可以有附加内容。
DO WHILE oleWord.SelInfo(12)#-1
oleWord.LineDown
ENDDO
*下面是检查书签数与表格的最大列数是否相同
nOutColumn=oleWord.CountBookMarks()
IF nOutColumn#oleWord.SelInfo(18)
oleWord.AppClose("Microsoft Word")
=MESSAGEBOX("书签与表格的列数不符",16,"提示信息")
RETURN
ENDIF
*下面是定义列信息数组,并且填写该数组的前4列内容
LOCAL aFieldName[nOutColumn,6]
*-- aFieldName列的意义:1书签名,2字段类型,3字段宽度,4,小
数位数,
*-- 5原始表中各列宽度的最小TWIP数
*-- 6在具体的填写过程中该书签所在列的所有行中的字符的最
大个数
FOR i=1 to nOutColumn
aFieldName[i,1]=oleWord.BookMarkName(i)
FOR j = 1 TO FCOUNT()+1
IF j=FCOUNT()+1
oleWord.AppClose("Microsoft Word")
=MESSAGEBOX("标签名:"+aFieldName[i,1];
+"不是数据库的字段名",16,"
提示信息")
RETURN
ENDIF
IF UPPER(aFieldName[i,1])==UPPER(ALLT(aFieldLis
t[j,1]))
aFieldName[i,2]=aFieldList[j,2] &&类型
aFieldName[i,3]=aFieldList[j,3] &&宽度
aFieldName[i,4]=aFieldList[j,4] &&小数位
EXIT
ENDIF
ENDFOR
ENDFOR
*将插入点移到表格最底行的最右端
DO WHILE oleWord.SelInfo(12)=-1
oleWord.LineDown
ENDDO &&按下箭头向下移出表格
DO WHILE oleWord.SelInfo(12)#-1
oleWord.CharLeft
ENDDO &&按左箭头移到表格最后一列的末尾处
IF oleWord.SelInfo(16)#oleWord.SelInfo(18)+1
oleWord.AppClose("Microsoft Word")
=MESSAGEBOX("未能移到表格最后列的尾部",16,"提示信息")
RETURN
ENDIF
*--下面计算原始表格中各列的宽度,即列的最小宽度(以TWIP为
单位)
j=oleWord.SelInfo(5)
FOR i=nOutColumn TO 1 STEP -1
oleWord.PrevCell
k=oleWord.SelInfo(5)
aFieldName[i,5]=j-k
aFieldName[i,6]=0
j=k
ENDFOR
IF oleWord.SelInfo(16)#1
oleWord.AppClose("Microsoft Word")
=MESSAGEBOX("最后不是移到表格列的首列",16,"提示信息")
RETURN
ENDIF
*各列的最小宽度计算完毕
*下面表格填写具体内容,
*并且在填写具体内容时将各列的最大字符数记录到aFieldName[
i,6]中
LOCATE
oleWord.EditGoto((aFieldName[1,1]))
oleWord.PrevCell()
DO WHILE !EOF()
FOR i=1 TO nOutColumn
DO CASE
CASE aFieldName[i,2]=="N"
cString=STR(&aFieldName[i,1],aFieldName[i,3],
aFieldName[i,4])
CASE aFieldName[i,2]=="I"
cString=ALLT(STR(&aFieldName[i,1],10,0]))
CASE aFieldName[i,2]=="C" OR aFieldName[i,2]=="M"
cString=TRIM(&aFieldName[i,1])
IF LEN(cString)>aFieldName[i,6]
aFieldName[i,6]=LEN(cString)
ENDIF
OTHERWISE
cString="暂不处理类型"
ENDCASE
oleWord.NextCell()
oleWord.Insert((cString)) &&字符型变量必须外加()
ENDFOR
SKIP
ENDDO
*--表格内容填写完毕
*下面根据填写的具体内容重新调整表格某些列的宽度
*(在下面的计算过程中单位为TWIP)
j=nWidth*1440 &&nWidth为版心宽度是一全局变量,单位为英寸
&&1英寸=1440TWIP
k=0
FOR i=1 TO nOutColumn
IF aFieldName[i,2]#"C" AND aFieldName[i,2]#"M"
j=j-aFieldName[i,5] &&剩余可用宽度
ELSE
k=k+aFieldName[i,6] &&需要调整宽度的最大
字符数之和
ENDIF
ENDFOR &&减去禁止调列的宽度
FOR i=1 TO nOutColumn
IF aFieldName[i,2]="C" OR aFieldName[i,2]="M"
*如果要调整的宽度小于或等于最小宽度,则将其列入非调整之列
IF j/k*aFieldName[i,6] <= aFieldName[i,5]
aFieldName[i,2]="U"
j=j-aFieldName[i,5]
k=k-aFieldName[i,6]
i=1 &&从头循环
LOOP
ENDIF
ENDIF
ENDFOR
FOR i=1 TO nOutColumn
IF aFieldName[i,2]="C" OR aFieldName[i,2]="M"
oleWord.EditGoto((aFieldName[i,1]))
oleWord.TableSelectColumn
oleWord.TableColumnWidth(j/k*aFieldName[i,6]/20,2,
0,0,0,0)
*1磅=20TWIP,TableColumn()的缺省单位为磅
ENDIF
ENDFOR
*宽度调整完毕
oleWord.FileSaveAs("c:\mf\data\word2.doc")
*oleWord.FilePrint(0,0,0,"","","",0,1,"",0,0,0,"")
oleWord.AppClose("Microsoft Word")
WAIT "卸载Word BAsic" WINDOW NOWAIT
WAIT CLEAR
RETURN
在将数据库内容生成Word文档的最终结果一种方法是以文档的形
式保存下来,另一方法是不仅要把文档保存下来,还要进行打印,此时
需要注意的一点是:不能采用后台打印,将上述程序的中*olwWord.FilePrint(0,0,0,"","","",0,1,"",0,0,0,"")前面的星号"*"去掉即可。
xiolig 2003-08-26
  • 打赏
  • 举报
回复
(2) 生成Word文档的主要算法
在用Word.Basic将数据库的记录输出成Word文档时,需要编程调整输出报表的页面和各栏位的宽度,下面介绍编程中使用的调整策略和主要算法。
由于数据库中数据的随机性,特别是字符型和备注型数据长度的不定性,表中各栏位宽度的比例关系很难预先确定,需要在整个报表生成之后进行调整。调整的基本策略是先将各记录中要输出的字段的具体内容输出到表格中,并在输出过程中记下每一栏位在各行中的最大宽度(字符数),用它作为调整各栏位宽度比例关系的依据。如果完全按照此依据进行调整,表体部分一定能编排得比较匀称,但表头部分的编排有可能发生变化(如上面的"采取措施"表头,由于数据库中该字段对应的内容可能很少,在进行栏位宽度调整时,有可能使表头文字变成 多行排列),报表的整体效果仍然较差。所以有必要预先知道各栏位的最小宽度,以防止在调整各栏位宽度时表头多行排列。为此,约定原始文档框架中各栏位的宽度即为最小宽度,且栏位宽度调整仅对字符型和备注型字段进行。
基于上述调整策略,我们介绍相应的算法。为了便于介绍,我们假设通过页面和页边距的设置得出需要将表格的宽度调宽至nWidth英寸,并定义如下数据类型:
LOCAL aFieldName[nOutColumn,6]
其中:
nOutColumn为要输出字段个数,也是表格的最大列数;
aFiledName[nOutColumn,1]为书签名;
aFiledName[nOutColumn,2]为该书签所在栏位对应字段的字段类型;
aFiledName[nOutColumn,3]为该书签所在栏位对应字段的字段宽度;
aFiledName[nOutColumn,4]为该书签所在栏位对应字段的小数位数;
aFiledName[nOutColumn,5]为该书签所在栏位最小TWIP数;(1英寸 =1440 TWIP)
aFiledName[nOutColumn,6]为该书签所在栏位在各行中的最大字符个数。
这样在计算出各栏位的最大字符个数和各栏位的最小TWIP数后,就可以计算出需要调整栏位的总字符数和可供使用的宽度总TWIP数。
假设可供使用的宽度总数为j(TWIP),需要调整栏位的总字符数为(字符),则某要调整栏位的宽度应为: j/k*aFieldName[i,6] 式中i为该调整栏在表中的列号。 但是该宽度有可能小于该栏位的最小宽度,这样该栏位就不应调 整,需要将该栏的类型a FieldName[i,2]修改为"U"(非C且非M即可), 而将该栏位列入非调整的行列,同时也要相应修改j和k,再从第一列逐 一检查,查看是否仍有这样的列,如果有需要再重复上述步骤。直到不 再有上述类型的列为止。最后再用TableColumnWidth命令对剩下需要 调整的栏位进行调整即可。

**** 如果列位不烦,UP 后再列出实现代码 ***
pecker 2003-08-26
  • 打赏
  • 举报
回复
先转换成txt方式,再在word里打开,应该可以了.
xiolig 2003-08-26
  • 打赏
  • 举报
回复
二、在VFP中自动生成Word文档的基本原理和方法
1.用Word.Basic生成数据Word文档的基本原理我们知道,Windows的OLE技术是在两个具有OLE能力的应用程序之间建立了一种信息共享机制。能够提供OLE服务的应用程序叫服务器,请求OLE服务的应用程序叫客户机。由于VFP不能为其他具有OLE能力的应用程序提供可用的对象,不能作为OLE服务器。为了在VFP中使用OLE自动化技术来解决报表输出存在的问题,必须在Windows环境下选择一个能作为OLE服务器的应用程序。Microsoft Word 6.0不仅能够向VFP提供OLE对象类型Word.Basic,而且能够生成复杂的表格,具有较强的编辑功能,是生成数据库报表的理想工具。
VFP和Microsoft Word 6.0之间的信息共享机制是通过在VFP中创建由MS Word 6.0提供可用OLE对象Word.Basic实现的。因此,要使用OLE自动化技术,必须首先使用VFP的OLE对象创建函数CREATEOBJECT() 创建MS Word 6.0的OLE对象,即: oleWord=CREATEOBJECT("Word.Basic")

2.用Word.Basic生成数据Word文档的基本方法在用CREATEOBJECT()函数创建OLE对象之后,我们就可以利用面向对象的程序设计方法,调用Word.Basic的具体命令,将数据库的具体内容生成到Word文档。
用Word.Basic生成数据库的Word文档,常用的方法有两种:第一种方法是用Word.Basic的一系列命令生成数据库的整个Word文档;另一种方法是利用Word.Basic打开预制的基本文档框架,再用Word.Basic的编辑命令来生成数据库的Word文档。这两种方法各有优点,有时要将它们结合起来使用。第一种方法主要用于对数据库报表没有任何要求的全自动生成,由于采用全自动生成技术,尽管也能实现输出页面的任意变化和报表中各栏位宽度的自动调整等功能,但不能直接根据具体的数据库输出具有相应特色的标题。第二种方法在标题及输出的格式上具有更大的灵活性。通常情况下,先用第一种方法输出某些数据库的一般文档,再利用W ord将其修改成特殊报表输出的基本文档框架,供第二种方法使用。
下面结合应用介绍第二种方法的具体实现和主要算法。
(1) 定制基本的Word文档框架
在基本的文档框架中可以包含Word文档的任何内容,比如在标题的两边各插入一些图片等等。但是为了实现对数据库字段的定位输出,该文档框架必须包含一个表,该表的表头可以设计成任何复杂的形式, 如下面的文档框架:
表1 不良地质:瓦斯信息
为了能使Word.Basic将数据库中要输出的字段正确地输出到基本框架中,在基本框架中需要增加位置标记。我们可以用在Word基本文档框架中添加书签的方法来指导Word.Basic在基本框架中的正确定位,这些书签分别添加在基本文档框架中仅有的一行表体的各栏位处。由于Word.Basic在进行后续记录的输出时是按第一表体行中输出字段的顺序进行输出的,这样就可以保证后续各行输出的正确性了。为了方便起见可将书签名定义成与字段名同名。
在实际的数据输出过程中,由于我们允许输出页面任意变化,并允许对输出的各栏位宽度进行优化调整,这样就很难保证各页的行数相同。为了使输出页面的标题能够正确地打印在每一输出页面的首部,将该表的表头设置成"标题允许"(先选定要设置成标题允许的一行或多行,再用"表格"菜单中的"标题"命令进行设置)。为了使输出页面的高度一致,可用"表格"菜单中"单元格高度和宽度"对话框选择"允许跨页断行"选项,当然也可用Word.Basic的TableR owHeight命令对"允许跨页断行"进行设置。
另外,在定义基本文档框架时,不必考虑总的表格宽度应放大至何种尺寸以及各栏位之间的比例关系,仅仅需要将各栏位的宽度定义成用户所想要的最小宽度即可,其具体目的在下面的数据库输出的主要算法中会作解释。
xiolig 2003-08-26
  • 打赏
  • 举报
回复
二、在VFP中自动生成Word文档的基本原理和方法
1.用Word.Basic生成数据Word文档的基本原理我们知道,Windows的OLE技术是在两个具有OLE能力的应用程序之间建立了一种信息共享机制。能够提供OLE服务的应用程序叫服务器,请求OLE服务的应用程序叫客户机。由于VFP不能为其他具有OLE能力的应用程序提供可用的对象,不能作为OLE服务器。为了在VFP中使用OLE自动化技术来解决报表输出存在的问题,必须在Windows环境下选择一个能作为OLE服务器的应用程序。Microsoft Word 6.0不仅能够向VFP提供OLE对象类型Word.Basic,而且能够生成复杂的表格,具有较强的编辑功能,是生成数据库报表的理想工具。
VFP和Microsoft Word 6.0之间的信息共享机制是通过在VFP中创建由MS Word 6.0提供可用OLE对象Word.Basic实现的。因此,要使用OLE自动化技术,必须首先使用VFP的OLE对象创建函数CREATEOBJECT() 创建MS Word 6.0的OLE对象,即: oleWord=CREATEOBJECT("Word.Basic")

2.用Word.Basic生成数据Word文档的基本方法在用CREATEOBJECT()函数创建OLE对象之后,我们就可以利用面向对象的程序设计方法,调用Word.Basic的具体命令,将数据库的具体内容生成到Word文档。
用Word.Basic生成数据库的Word文档,常用的方法有两种:第一种方法是用Word.Basic的一系列命令生成数据库的整个Word文档;另一种方法是利用Word.Basic打开预制的基本文档框架,再用Word.Basic的编辑命令来生成数据库的Word文档。这两种方法各有优点,有时要将它们结合起来使用。第一种方法主要用于对数据库报表没有任何要求的全自动生成,由于采用全自动生成技术,尽管也能实现输出页面的任意变化和报表中各栏位宽度的自动调整等功能,但不能直接根据具体的数据库输出具有相应特色的标题。第二种方法在标题及输出的格式上具有更大的灵活性。通常情况下,先用第一种方法输出某些数据库的一般文档,再利用W ord将其修改成特殊报表输出的基本文档框架,供第二种方法使用。
下面结合应用介绍第二种方法的具体实现和主要算法。
(1) 定制基本的Word文档框架
在基本的文档框架中可以包含Word文档的任何内容,比如在标题的两边各插入一些图片等等。但是为了实现对数据库字段的定位输出,该文档框架必须包含一个表,该表的表头可以设计成任何复杂的形式, 如下面的文档框架:
表1 不良地质:瓦斯信息
为了能使Word.Basic将数据库中要输出的字段正确地输出到基本框架中,在基本框架中需要增加位置标记。我们可以用在Word基本文档框架中添加书签的方法来指导Word.Basic在基本框架中的正确定位,这些书签分别添加在基本文档框架中仅有的一行表体的各栏位处。由于Word.Basic在进行后续记录的输出时是按第一表体行中输出字段的顺序进行输出的,这样就可以保证后续各行输出的正确性了。为了方便起见可将书签名定义成与字段名同名。
在实际的数据输出过程中,由于我们允许输出页面任意变化,并允许对输出的各栏位宽度进行优化调整,这样就很难保证各页的行数相同。为了使输出页面的标题能够正确地打印在每一输出页面的首部,将该表的表头设置成"标题允许"(先选定要设置成标题允许的一行或多行,再用"表格"菜单中的"标题"命令进行设置)。为了使输出页面的高度一致,可用"表格"菜单中"单元格高度和宽度"对话框选择"允许跨页断行"选项,当然也可用Word.Basic的TableR owHeight命令对"允许跨页断行"进行设置。
另外,在定义基本文档框架时,不必考虑总的表格宽度应放大至何种尺寸以及各栏位之间的比例关系,仅仅需要将各栏位的宽度定义成用户所想要的最小宽度即可,其具体目的在下面的数据库输出的主要算法中会作解释。
(2) 生成Word文档的主要算法
在用Word.Basic将数据库的记录输出成Word文档时,需要编程调整输出报表的页面和各栏位的宽度,下面介绍编程中使用的调整策略和主要算法。
由于数据库中数据的随机性,特别是字符型和备注型数据长度的不定性,表中各栏位宽度的比例关系很难预先确定,需要在整个报表生成之后进行调整。调整的基本策略是先将各记录中要输出的字段的具体内容输出到表格中,并在输出过程中记下每一栏位在各行中的最大宽度(字符数),用它作为调整各栏位宽度比例关系的依据。如果完全按照此依据进行调整,表体部分一定能编排得比较匀称,但表头部分的编排有可能发生变化(如上面的"采取措施"表头,由于数据库中该字段对应的内容可能很少,在进行栏位宽度调整时,有可能使表头文字变成 多行排列),报表的整体效果仍然较差。所以有必要预先知道各栏位的最小宽度,以防止在调整各栏位宽度时表头多行排列。为此,约定原始文档框架中各栏位的宽度即为最小宽度,且栏位宽度调整仅对字符型和备注型字段进行。
基于上述调整策略,我们介绍相应的算法。为了便于介绍,我们假设通过页面和页边距的设置得出需要将表格的宽度调宽至nWidth英寸,并定义如下数据类型:
LOCAL aFieldName[nOutColumn,6]
其中:
nOutColumn为要输出字段个数,也是表格的最大列数;
aFiledName[nOutColumn,1]为书签名;
aFiledName[nOutColumn,2]为该书签所在栏位对应字段的字段类型;
aFiledName[nOutColumn,3]为该书签所在栏位对应字段的字段宽度;
aFiledName[nOutColumn,4]为该书签所在栏位对应字段的小数位数;
aFiledName[nOutColumn,5]为该书签所在栏位最小TWIP数;(1英寸 =1440 TWIP)
aFiledName[nOutColumn,6]为该书签所在栏位在各行中的最大字符个数。
这样在计算出各栏位的最大字符个数和各栏位的最小TWIP数后,就可以计算出需要调整栏位的总字符数和可供使用的宽度总TWIP数。
假设可供使用的宽度总数为j(TWIP),需要调整栏位的总字符数为(字符),则某要调整栏位的宽度应为: j/k*aFieldName[i,6] 式中i为该调整栏在表中的列号。 但是该宽度有可能小于该栏位的最小宽度,这样该栏位就不应调 整,需要将该栏的类型a FieldName[i,2]修改为"U"(非C且非M即可), 而将该栏位列入非调整的行列,同时也要相应修改j和k,再从第一列逐 一检查,查看是否仍有这样的列,如果有需要再重复上述步骤。直到不 再有上述类型的列为止。最后再用TableColumnWidth命令对剩下需要 调整的栏位进行调整即可。
xiolig 2003-08-26
  • 打赏
  • 举报
回复
恕我原文照登:(VBA)

用Word更好地输出VFP报表

一、概述
无论是西文还是中文Visual FoxPro 3.0(以下简称VFP),其报表输出都有一个严重缺陷,就是当数据库的某一字段具有溢出延伸属性(就是当字段的内容长于指定的输出宽度时,自动进行换行的属性)时,在换行处容易出现半个汉字,使输出的报表内容出现"乱码"。
另外,VFP与其他数据库管理系统一样,报表输出模块也存在以下严重不足:
①报表输出的宽度和长度不能由用户改变,无法实现页面的任意变化;
②由于数据库中数据的长度不一,必然会导致输出报表中各栏位的宽度不适,系统无法根据数据库的实际内容对输出的各栏位的宽度进行随机调整,报表的整体效果差;
③报表一旦输出,用户不能对报表格式进行编辑;
④不宜实现对某些特定栏位的单独输出或组合输出。
为此,笔者利用VFP的OLE自动化技术,通过Microsoft Word 6.0 提供的Word.Basic对象,将数据库的记录输出成Word文档。
紫焰月读 2003-08-26
  • 打赏
  • 举报
回复
想来不成, 并不是所有的都有一对一转换的
computerdragon 2003-08-26
  • 打赏
  • 举报
回复
转换成excel,再嵌入到word中可以吗?
fj_jiangqi 2003-08-25
  • 打赏
  • 举报
回复
copy to FILENAME type xls
可以转换为电子表格,word,在vfp中没有直接的功能。
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
kinlzy 2003-08-25
  • 打赏
  • 举报
回复
use youtable
copy to youfilename type xls

楼上说得没有错,你大概也只是想导出到电子表格而已吧:)
目 录 一、建立WORD应用程序对象,新建、打开、保存WORD文档 5 1、建立对象 5 2、显示WORD窗口 5 3、新建一个WORD文档 5 (1)Count属性 5 (2)Name属性 5 4、打开一个已存在的WORD文档 5 5、激活文档,使文档成为当前激动文档 6 6、保存文档 6 7、页面设置 6 (1)Orientation属性 6 (2)TopMargin属性 6 (3)BottomMargin属性 6 (4)LeftMargin属性 6 (5)RightMargin属性 7 (6)PageWidth属性 7 (7)PageHeight属性 7 8、打印文档 7 9、关闭文档 7 10、退出WORD 8 二、Font对象 8 1、Name 属性 8 2、Size属性 8 3、Bold属性 8 4、Italic属性 8 5、Color属性 8 6、Underline属性 8 7、UnderlineColor属性 8 8、Subscript属性 9 9、Superscript属性 9 10、Spacing属性 9 11、Scaling属性 9 三、Paragraph和Paragraphs集合对象 9 1、添加段落 9 (1) Add方法 10 (2)InsertParagraph方法 10 (3)InsertParagraphAfter 方法 10 (4)InsertParagraphBefore 方法 11 (5)TypeParagraph 方法 11 2、设置段落格式 11 (1)FirstLineIndent属性 11 (2)LeftIndent属性 11 (3)RightIndent属性 11 (4)Alignment属性 11 (5)LineSpacing属性 12 (6)HangingPunctuation属性 12 四、Range 和 Selection 对象 12 (1)Range对象 12 (2)Selection 对象 13 (3)常用属性 13 ①Start属性 13 ②End属性 14 ③Text属性 14 ④Type属性 14 ⑤Information 属性 15 (4)常用方法 18 ①Copy 方法 18 ②Cut 方法 18 ③Paste 方法 18 ④Collapse 方法 18 ⑤InsertBefore 方法 19 ⑥InsertAfter方法 19 ⑦TypeText方法 19 ⑧Delete 方法 20 ⑨移动插入点的方法 20 ㈠Move 方法 20 ㈡MoveDown 方法 20 ㈢MoveEnd 方法 21 ㈣MoveEndUntil 方法 21 ㈤MoveLeft 方法 22 ㈥MoveRight方法 22 ㈦MoveStart 方法 23 ㈧MoveStartUntil 方法 23 ㈨MoveUp 方法 24 五、表格处理 25 1、Table 对象和Tables 集合对象 25 2、添加表格 25 (1)PreferredWidthType 属性 25 (2)AllowAutoFit属性 26 (3)AllowPageBreaks属性 26 3、Border 对象和Borders 集合对象 26 (1)LineStyle属性 26 (2)LineWidth属性 27 (3)Color属性 27 (4)Enable 属性 27 (5)DefaultBorderLineWidth 属性 27 (6)DefaultBorderLineStyle 属性 27 (7)DefaultBorderColor 属性 27 4、Cell 对象和Cells 集合对象 28 5、Row 对象和Rows 集合对象 28 (1)Height 属性 28 (2)Delete 方法 28 (3)SetHeight 方法 28 6、Column 对象和Columns 集合对象 29 (1)Width 属性 29 (2)Delete 方法 29 (3)SetWidth 方法 29 7、合并与拆分单元格 30 (1)合并单元格 30 (2)拆分单元格 30 六、Shape 对象和Shapes 集合对象 32 1、常用方法 32 (1)AddLine 方法 32 (2)AddTextbox 方法 33 (3)AddTextEffect 方法 33 (4)AddPicture 方法 34
vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些附注,请从“文件”菜单中选择“打印”命令。此文档分为以下四部分: --------------------------------------------------------------------- 部分 1. 技术支持与市场 部分 2. Visual FoxPro 6.0 新增功能 部分 3. 从其他版本的 FoxPro 和 Visual FoxPro 中移植 部分 4. Visual FoxPro 常见问题 --------------------------------------------------------------------- 部分 1. 技术支持与市场 问题 1-1: 从何处可以获得产品的更新版本? 答案: 在 Visual FoxPro 的 Web 站点上即可获得产品的更新信息,其中包括有关 Service Pack 和更新的示例、向导及其他代码的信息,该站点的网址为: www.microsoft.com/vfoxpro 请定期查看该网站,以便下载产品的最新版本。 问题 1-2: 从何处可以得到有关 Visual FoxPro 的详细资料? 答案: 通过 Microsoft Visual FoxPro Web 站点是随时获得各种最新产品发布信息的最佳途径。在此站点上不仅有新的产品公告,而且还提供了产品的更新信息、技术文章、白皮书、专业开发人员设计的优秀示例、会议公告、以及与其他许多 FoxPro web 站点的各种链接。 问题 1-3: 如何获得技术支持,以及如何报告软件错误? 答案: Microsoft Visual FoxPro Web 站点已经链接到了多种联机支持选项,其中包括覆盖面广阔的有关所有产品 Microsoft Knowledge Base(Microsoft 知识)。您还可以阅读一份有关常见问题的清单。除联机支持之外,还可以直接通过电话获得技术支持。“帮助”菜单中的选项可列出技术支持的电话号码。这些电话号码也可用于报告产品中的错误。 问题 1-4. 什么是 Knowledge Base?如何使用它? 答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: support.microsoft.com 问题 1-5: 是否会有 Visual FoxPro 6.0a? 答案: Microsoft 公司一向承诺为用户提供高质量的产品。如果确实需要,我们将提供 Visual FoxPro 6.0 的错误修订版。但是,修订版不会使用 6.0a 版的形式。Visual FoxPro 6.0 中任何错误的修正都将包含在 Visual Studio Service Pack 中。同时还会在 Visual FoxPro 的 www.microsoft.com/vfoxpro 或 Visual Studio 的www.microsoft.com/vstudio 的 Web 站点上发布修订公告。 问题 1-6: Microsoft 公司为应用程序的开发提供了一些优秀的解决方案。怎样才能知道应该向客户推荐和使用哪种产品? 答案: 在选择适用某项任务的产品时,需要考虑多方面的因素。Microsoft Visual FoxPro web 站点上有一份优秀的策略背景论文,它比较了 Visual FoxPro、Visual Basic、SQL Server 和 Access 等 Microsoft 产品之间的不同。 问题 1-7: 哪可以找到 Visual FoxPro 的使用示例? 答案: Visual FoxPro 6.0 产品中带有丰富的示例,其中有一些是针对 6.0 版特有功能的新示例。与 Visual FoxPro 以前的版本不同,这些示例将与所有 Visual Studio 示例安装在一起。您必须运行 MSDN Library 的“自定义”安装来安装这些示例。在 Visual FoxPro 中可使用新的 HOME(2) 函数方便地找到已安装示例的位置。 除了产品中所自带的示例外,Microsoft Visual FoxPro web 站点还将经常提供新的示例。
介绍数据类型   表中的每一个字段由于其数据代表的意义的不同,因而都有特定的数据类型,例如:编号、姓名、出生年月三个字段的类型是各不相同的,在Visual FoxPro中,分别是用数值型(或整型)、字符型、日期型来表示的。熟悉各种数据类型可以帮助我们更快更好地对表进行操作。Visual FoxPro 6.0 表中的数据类型及简单的说明如下: 字符型:用于包含字母、汉字、数字型文本、符号、标点等一种或几种的字段,其中的数字一般不是用来进行数学计算的,如电话号码、姓名、地址。 货币型:货币单位,最多可有四位小数,如果小数部分超过四位则将通过四舍五入只保留四位,如商品价格。 数值型:整数或小数。如:成绩、年龄、 订货数量。如果有小数,需要指定小数位数,小数点包含在字段宽度中,占一个字节。它还支持十六进制数值。 浮点型:同数值型。 整 型:不带小数点的数值。 日期型:用来存放日期数值,Visual FoxPro 6.0(5.0)支持2000年型的日期数值。格式为:月/日/年。如:04/28/97。其中的年份如果输入97,则系统默认为1997,将光标条移到表中该字段时就会显示“04/28/1997”,如果输入小于48的数(如45)则系统默认为2045,因此,最好输入完整的年份。 日期时间型:格式为:月/日/年 时:分:秒 AM或PM。如:04/28/97 06:26:00 AM。 双精度型:双精度数值,如实验所要求的高精度数据。 逻辑型:当存储的数据只有两种可能时使用,用True(.T.)和False(.F.)表示。如:是否结婚。 备注型:又称内存型,它的长度随输入数据的长度而定,它的存储和表中其他数据是分开的,存放在扩展名为.FPT的文件中。 通用型:可以链接或嵌入OLE对象,如由其他应用程序创建的电子表格、WORD文档、图片。当链接OLE对象时,表中只包含指向数据的链接和创建OLE对象的应用程序的链接;当嵌入OLE对象时,表中包含OLE对象复件及指向创建此OLE对象应用程序的链接。 另外还有字符型(二进制)和备注型(二进制):前者同“字符型”相同,但是当代码页更改时字符值不变;后者同“备注型”相同,但是当代码页更改时备注不变。本课程中不涉及这两种类型,这介绍。  1.2 使用“表设计器”创建表 使用“表设计器”可以方便、直接地创建表,我们既可以通过“项目管理器”的“数据”选项卡使用“表设计器”创建;也可以从“文件”菜单中使用“表设计器”创建。前一种方法在以后创建“项目管理器”时再介绍,这仅介绍从“文件”菜单中创建表。  1.2.1 创建表结构 操作步骤:  从“文件”菜单中选择“新建”。出现如下对话框: 在复选框中选取“表”。  2、选取“新建文件”按钮,在“输入表名”中输入我们要建的表名,例如“职工表”,选取“保存”按钮。即出现表设计器:  这有三个选项卡:“字段”、“索引”和“表”,默认的是“字段”选项卡。  3、从第一行开始依次输入(或选择): 在“字段名”选项卡中键入字段名。 在“类型”区域中,选择列表中的某一字段类型。注意,字段的数据类型应与将要存储在其中的信息类型相匹配 在“宽度”列中,设置以字符为单位的列宽,使字段的宽度足够容纳将要显示的信息内容。注意,一个汉字需占两个字符。 如果“类型”是“数值型”或“浮点型”,请设置“小数位数”框中的小数点位数。 如果希望为字段添加索引,就在“索引”列中选择一种排序方式。 如果想让字段接受 null 值,选中“NULL”。NULL无明确的值,它不等同于零或空格。一个 NULL 值不能认为比某个值(包括另一个 NULL 值)大或小,相等或不同。 字段名前的双向箭头表明是当前行。一行各项目之间用Tab键移动。  4、表的结构设置完毕后, 选取“确定”按钮,这时会出现一个选择框,询问“现在输入数据吗?”。此时,可以选择是立即开始输入记录,还是在以后准备好所有记录后再打开表进行输入。   1.2.2 在表中添加记录 1、在“文件”菜单中选择“打开”。  2、从“搜寻”下拉框中选择文件所在目录,从“文件类型”下拉框中选择“表”,即出现该目录下所有的表。如下图:  3、选择“职工表.dbf”,点取确定按钮。 4、从“显示”菜单“中选择“浏览”。如图:  5、这时出现“职工表”浏览窗口,并且“显示”菜单的内容发生变化,如下图,选择“追加方式”。  6、在“浏览”窗口中输入新的记录。当输入内容满一个字段时,光标会自动跳到下一个字段。内容不满时,用Tab键或回车键将光标移到下一字段。 7、当编辑备注型(memo)字段时,将光标条移到memo上,双击它或按Ctrl+Home键就可进入memo字段的输入窗口进行输入、修改。完成后,单击窗口上的关闭按钮“X”或按Ctrl+w可以保存并关闭窗口。如不想保存,则按Esc键或Ctrl +Q。  8、进入通用型(gen)字段与备注型方法相同。进入编辑窗口后,打开“编辑”菜单,选择“插入对象”进入插入对象窗口。选择“新建”可以创建多种格式的图象。我们选择“由文件创建”,在“文件”框中输入插入对象的文件名,包括路径。   如果选择“链接”则只存储该图象的链接,而不把整个图象包括进通用型字段中。如果选择“显示为图标”则可以用图标表示插入的图象对象。这我们两者都不选择。   按“确定”按钮,即完成照片的插入。  9、为方便输入,也可以从“显示”菜单中选择“编辑”来切换到“编辑”方式。在“编辑”方式下,列名显示在窗口的左边。   这样,一个表就创建完成了。这个表称为自由表。之所以称它自由表,是指它是孤立存在的,和其他表没有发生联系,既不能控制其他表,也不被其他表控制。它独立存在于任何数据之外。   还可以在 Visual FoxPro 中创建另一种表--数据表,它是数据的一部分。我们将在数据一课中讲到。 1.3 使用“表向导”创建表   创建新表还可以借助于“表向导”。利用“表向导”,可以随时创建新表。向导会提出一系列的问题,并根据回答建立一个表。这只把步骤说一下,不详细介绍了。 步骤: 从“文件”菜单中选择“新建”。 选择“表”。 选择“表向导”按钮。如本节图一所示。 按照向导屏幕的指示进行操作。 也可以用其他方法使用“表向导”,例如:在“项目管理器”中使用。 返回 下一节 电脑报首页 网络学院首页

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧