打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
将VFP表文件转为Word(RTF) 格式文件
* 编号:A0002
* 功能:将VFP表文件转为Word(RTF) 格式文件
SET TALK OFF
SET SAFE OFF
SET DATE TO ANSI
SET CENTURY ON
SET COMPATIBLE OFF
LOCAL my_title,my_alias,rtf_name
set path to d:\表文件
my_alias="档案"     && 数据表别名或视图名 换上你自己的数据表或视图名
my_title=""          && 标题 换上你的标题
rtf_name=my_title     && Html word文件主名 换上你的WORD 文件主名
my_dbfopen=.F.       && 数据表未打开
IF EMPTY(my_alias)
RETU
ENDIF

IF !USED(my_alias)
USE &my_alias IN 0
ELSE
SELE(my_alias)
my_dbfopen=.T.    && 数据表已打开
ENDIF
SELE(my_alias)
IF EOF()
GO TOP
IF EOF()
IF my_dbfopen=.F. && 数据表未打开,关闭之
SELE(my_alias)
USE
ENDIF
RETU
ENDIF
ENDIF
IF EMPTY(ALLT(my_title))
my_title=my_alias
ENDIF
myoutputfile="c:\"+my_title+".rtf"
rtf_name=PUTFILE("文件名:",myoutputfile,"RTF")
rtf_name=ALLT(rtf_name)
IF EMPTY(rtf_name)
IF my_dbfopen=.F. && 数据表未打开,关闭之
SELE(my_alias)
USE
ENDIF
RETU
ENDIF
rtf_name=ALLT(rtf_name)
SELE(my_alias)
myrecno=RECNO()
COPY TO c:\my_tempwenjian
SELE 0
USE c:\my_tempwenjian
WAIT WIND " 正在转化为 WORD(RTF)格式文件,请稍等... " NOWAIT
my_html=""
my_html=my_html+"<html>"+CHR(13)+'<head>'+CHR(13)+"<title>"+my_title+"</title>"
my_html=my_html+CHR(13)+'<meta http-equiv="Content-Type" content="text/html; charset=gb2312">'
my_html=my_html+CHR(13)+'<meta http-equiv="Content-Language" content="zh-cn">'
my_html=my_html+CHR(13)+"</head>"
my_html=my_html+CHR(13)+'<p align="center"><font><b>'+"&nbsp"+'</b></font></p>'
my_html=my_html+CHR(13)+"<center>"
my_html=my_html+CHR(13)+'<table id="GenTable" border=1>'
my_html=my_html+CHR(13)+"<tr>"
#DEFINE NUM_AFIELDS 16
LOCAL i
PUBLIC aWizFList
DIMENSION aWizFList[1]
=AFIELDS(aWizFList)
FOR m.i = 1 TO FCOUNT()
IF INLIST(aWizFList[m.i,2],"G","U") &&Memo field
LOOP
ELSE
my_html=my_html+CHR(13)+"<th>"+aWizFList[m.i,1]+"</th>"
ENDIF
ENDFOR
my_html=my_html+CHR(13)+"</tr>"
myFCOUNT=FCOUNT()
LOCAL mytextzhi
SELE my_tempwenjian
GO TOP

SCAN
my_html=my_html+CHR(13)+"<tr>"

FOR m.i = 1 TO myFCOUNT
IF INLIST(aWizFList[m.i,2],"G","jM","U")
ELSE
myzdm=aWizFList[m.i,1]
mytextzhi=EVALUATE(myzdm)
IF EMPTY(mytextzhi) OR ISNULL(mytextzhi)
mytextzhi=""
ELSE
DO CASE
CASE INLIST(aWizFList[m.i,2],"C")
mytextzhi=ALLT(mytextzhi)
CASE INLIST(aWizFList[m.i,2],"M")
mytextzhi=TRIM(mytextzhi)
mytextzhi=STRTRAN(STRTRAN(STRTRAN(STRTRAN(mytextzhi,[-],[&ndash;]),[<],[<]),[>],[>]),[ ],[])
mytextzhi=STRTRAN(mytextzhi,CHR(13),'')
CASE INLIST(aWizFList[m.i,2],"N")
mywidth=aWizFList[m.i,3]
mydwidth=aWizFList[m.i,4]
mytextzhi=ALLT(STR(mytextzhi,mywidth,mydwidth))
CASE INLIST(aWizFList[m.i,2],"Y")
mytextzhi=ALLT(STR(mytextzhi,20,4))
CASE INLIST(aWizFList[m.i,2],"I","B","F")
mytextzhi=ALLT(STR(mytextzhi))
CASE aWizFList[m.i,2]="D"
mytextzhi=DTOC(mytextzhi)
CASE aWizFList[m.i,2]="T"
mytextzhi=TTOC(mytextzhi)
CASE aWizFList[m.i,2]="L"
IF mytextzhi=.T.
mytextzhi="是"
ELSE
mytextzhi="否"
ENDIF
OTHER
mytextzhi=""
ENDCASE
ENDIF
IF EMPTY(mytextzhi) OR ISNULL(mytextzhi)
mytextzhi=""
ENDIF

IF INLIST(aWizFList[m.i,2],"N","Y","I","B","F") AND mytextzhi<>""
my_html=my_html+CHR(13)+'<td align="right">'+mytextzhi+"</td>"
ELSE
my_html=my_html+CHR(13)+'<td>'+mytextzhi+"</td>"
ENDIF
ENDIF
ENDFOR
my_html=my_html+CHR(13)+"</tr>"
ENDSCAN
SELE my_tempwenjian
USE
my_html=my_html+CHR(13)+"</table>"+CHR(13)+"</center>"
my_html=my_html+CHR(13)+"</body>"+CHR(13)+"</html>"
SELE(my_alias)
GO TOP
IF !EOF()
GO myrecno
ENDIF

=STRTOFILE(my_html,rtf_name,.F.)
ERASE c:\my_tempwenjian.*
RELEASE my_html

IF my_dbfopen=.F. && 数据表未打开,关闭之
SELE(my_alias)
USE
ENDIF
rtf_name=ALLTRIM(rtf_name)
oWord=CREATEOBJECT("Word.application")
oDoc=oWord.Documents
oDoc.OPEN (rtf_name)
oWord.SELECTION.WholeStory
oWord.SELECTION.FONT.SIZE = 10
oWord.SELECTION.InsertAfter(CHR(13))
mydate=SUBST(DTOS(DATE()),1,4)+"年"+SUBST(DTOS(DATE()),5,2)+"月"+SUBST(DTOS(DATE()),7,2)+"日"
oWord.SELECTION.InsertAfter("       制表日期: "+mydate)
oWord.ActiveDocument.SAVEAS(rtf_name)
oWord.ActiveDocument.CLOSE
oDoc=oWord.Documents
oDoc.OPEN (rtf_name)
oWord.SELECTION.ParagraphFormat.ALIGNMENT=0  &&&(文本左对齐)
oWord.SELECTION.InsertAfter(CHR(13))
oWord.SELECTION.FONT.SIZE = 20
oWord.SELECTION.InsertAfter(my_title)
oWord.SELECTION.FONT.SIZE = 12
oWord.SELECTION.InsertAfter(CHR(13))
oWord.SELECTION.ParagraphFormat.ALIGNMENT=1  &&&(文本居中)
oWord.ActiveDocument.SAVEAS(rtf_name)
oWord.ActiveDocument.CLOSE
oDoc=oWord.Documents
WAIT CLEAR
oDoc.OPEN (rtf_name)
oWord.ActiveDocument.PrintPreview && 打印预览
*oWord.ActiveDocument.Print && 打印
oWord.VISIBLE=.T. && 显示 WORD 文档
*oWord.ActiveDocument.CLOSE && 关闭 WORD 文档
*oWord.QUIT() && 退出 WORD 应用程序
MESSAGEBOX(CHR(13)+"数据已转换为 WORD (RTF) 格式,存放路径: "+CHR(13)+CHR(13)+rtf_name,64,"信息")
RETURN

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何在VFP中实现动态统计图形[2]
电子书制作及其反编译
编程入门网
will RTF documents into HTML procedures, very...
vfp 全面总结(精华)(下)
看实例学VFP:模糊查询
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服