标题:如何用VFP代码控制WORD每页打印25条记录
取消只看楼主
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
结帖率:96.99%
已结贴  问题点数:20 回复次数:5 
如何用VFP代码控制WORD每页打印25条记录
WORD模板格式如下:

我想用VFP代码控制WORD每页打印25条记录,
wordapp.ActiveDocument.PageSetup.LinesPage=25这句好象不起作用,
不知代码如何写,请高手赐教,万分感谢!!!
搜索更多相关主题的帖子: 控制 代码 WORD 打印 记录 
2021-05-24 07:57
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@xuminxz 感谢热心指点!表中有很多记录,我想每25条记录分为一页,不知下列代码错在哪里?望赐教!
yms=INT(RECCOUNT()/25)
FOR i=1 TO yms
  WordApp.ActiveDocument.Tables(1).Cell((i*25+3),1).Select
  WordApp.Selection.InsertBreak(7) &&插入分页
ENDFOR
2021-05-24 09:37
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@xuminxz 我把程序及问题截图发上来,请帮我看看代码有什么问题?
股票信息.rar (10.64 KB)


程序代码如下:
* VFP调用WORD模板文件生成多页WORD文档
* 设置"标题行重复":打开新生成的WORD文档,选中标题行->单击表格->单击标题行重复

CLEAR ALL
CLOSE ALL
SET TALK OFF
SET SAFETY OFF
SET DATE TO YMD
SET MARK TO "-"
SET CENTURY ON
SET COMPATIBLE OFF

cCurrentProcedure = SYS(16,1)
nPathStart = AT(":",cCurrentProcedure)- 1
nLenOfPath = RAT("\", cCurrentProcedure) - (nPathStart)
mypath=SUBSTR(cCurrentProcedure, nPathStart, nLenofPath)
SET Default TO (mypath)

wjm="F:\temp2\股票信息统计表模板.doc"
WordApp=CREATEOBJECT("Word.application")
WordApp.Visible =.t.
WordTable=WordApp.Application.Documents.Open[wjm] && 关键
use gp.dbf
WordApp.ActiveDocument.Tables(1).Cell(3,1).Select
WordApp.Selection.InsertRowsBelow(RECCOUNT()-1) && 插入行


FOR i=1 TO FCOUNT()
FOR k=3 TO RECCOUNT()+2  && word模板表头有2行
GO k-2
WordCellText=EVALUATE(FIELD(i))
DO CASE
CASE ISNULL(WordCellText)
WordCellText=""
CASE TYPE("WordCellText")="N"
CASE TYPE("WordCellText")="D"
WordCellText=DTOC(WordCellText)
CASE TYPE("WordCellText")="T"
WordCellText=TTOC(WordCellText)
CASE TYPE("WordCellText")="M"
WordCellText=TRIM(WordCellText)
WordCellText=STRTRAN(WordCellText,CHR(13),' ')
CASE TYPE("WordCellText")="L"
WordCellText=IIF(WordCellText,".T.",".F.")
CASE EMPTY(WordCellText)
WordCellText=" "
OTHERWISE
* WordCellText=""
ENDCASE
IF EMPTY(WordCellText) OR ISNULL(WordCellText)
WordCellText=" "
ENDIF
WordTable.Tables.Item(1).Cell(k,i).Range.Text=WordCellText
ENDFOR
ENDFOR

yms=INT(RECCOUNT()/20)
FOR i=1 TO yms
  WordApp.ActiveDocument.Tables(1).Cell(i*20+4,1).Select
  WordApp.Selection.InsertBreak(7)
ENDFOR


WordApp.ActiveDocument.PageSetup.FooterDistance=19.0*2.835   &&页脚位置
*WordApp.ActiveDocument.PageSetup.Footer.fontsize=12
*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.Paragraphs.Alignment=2            && 页眉右齐
WordApp.Documents(1).Sections(1).Footers(1).Range.Paragraphs.Alignment=1            && 页脚居中
WordApp.Documents(1).Sections(1).Footers(1).Range.Select
WordApp.Selection.Font.Size=12
WordApp.Selection.InsertAfter("第")
WordApp.Selection.Start =WordApp.Selection.End
WordApp.Selection.InsertFormula("PAGE")
WordApp.Selection.Start =WordApp.Selection.End
WordApp.Selection.InsertBefore("页/共")
WordApp.Selection.Start =WordApp.Selection.End
WordApp.Selection.InsertFormula("NUMPAGES")
WordApp.Selection.Start =WordApp.Selection.End
WordApp.Selection.InsertBefore("页")
 
WordApp.Documents(1).SaveAs("F:\temp2\股票信息统计表.doc") &&自动保存文件
RELEASE WordApp
WAIT CLEAR
MessageBox( "生成Word文件完毕,文件位置 F:\temp2\股票信息统计表.doc!",64,"完毕")
RETURN

2021-05-25 07:40
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@xuminxz 谢谢!!!模板文件连标题共4行(见1楼),我想生成的EXCEL文档每页都有标题行,且每页20条记录,如何操作呢?盼指点。
2021-05-25 17:02
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@xuminxz 说错了,不好意思。WORD模板文件连标题共4行(见1楼),我想生成的WORD文档每页都有标题行,且每页20条记录,如何操作呢?盼指点。
2021-05-25 17:45
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@xuminxz 非常感谢耐心指导!!!美中不足的是最后插入了一页空白页。
2021-05-26 07:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505829-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032464 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved