| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3095 人关注过本帖
标题:如何用VFP代码控制WORD每页打印25条记录
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:665
专家分:3
注 册:2018-1-4
结帖率:97.48%
收藏
已结贴  问题点数:20 回复次数:13 
如何用VFP代码控制WORD每页打印25条记录
WORD模板格式如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

我想用VFP代码控制WORD每页打印25条记录,
wordapp.ActiveDocument.PageSetup.LinesPage=25这句好象不起作用,
不知代码如何写,请高手赐教,万分感谢!!!
搜索更多相关主题的帖子: 控制 代码 WORD 打印 记录 
2021-05-24 07:57
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
程序代码:
wdrs=Createobject('word.application') 
wjm=Sys(5)+Sys(2003)+"\测试"
wdrs.Visible=.T.  
wdrs.documents.Open(wjm)
wdrs.activedocument.Tables(1).cell(26,1).select &&选定28行第一个单元格
wdrs.Selection.InsertBreak(7)&&在28行前、27行后(25条记录)插入分页


[此贴子已经被作者于2021-5-24 08:32编辑过]


dBase有人接盘了。
2021-05-24 08:31
王咸美
Rank: 1
等 级:新手上路
帖 子:665
专家分:3
注 册: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
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
没问题吧?什么错误?

dBase有人接盘了。
2021-05-24 20:00
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1730
专家分:3324
注 册:2012-2-29
收藏
得分:0 
学习啦,谢谢分享!
2021-05-25 07:04
王咸美
Rank: 1
等 级:新手上路
帖 子:665
专家分:3
注 册: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
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
插入分页符后,就拆分为两表了。是否每个表格都要保留表头?
如不需要,可按下列进行
WordApp.ActiveDocument.Tables(1).Cell(23,1).Select
WordApp.Selection.InsertBreak(7)
For i=2 To yms
    WordApp.ActiveDocument.Tables(i).Cell(21,1).Select
    WordApp.Selection.InsertBreak(7)
Endfor
如果需要,先打开模板表,将其复制到粘贴板。
每20个记录后粘贴一个模板到新表。

dBase有人接盘了。
2021-05-25 13:50
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
wdrs.documents.Open(_sywj)  &&打开模板
Wors.Documents.SaveAs(otwjm)&&另存文件
wdrs.Selection.WholeStory() &&全选
wdrs.Selection.Copy()  &&复制到粘贴板
wdrs.Selection.EndKey(6) &&将光标移动到文档尾
wdrs.Selection.InsertBreak(7) &&插入分页。
wdrs.Selection.pasteandformat(19)  &&粘贴模板

dBase有人接盘了。
2021-05-25 14:00
王咸美
Rank: 1
等 级:新手上路
帖 子:665
专家分:3
注 册:2018-1-4
收藏
得分:0 
@xuminxz 谢谢!!!模板文件连标题共4行(见1楼),我想生成的EXCEL文档每页都有标题行,且每页20条记录,如何操作呢?盼指点。
2021-05-25 17:02
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
在你的另一个帖子里回答了啊。

dBase有人接盘了。
2021-05-25 17:29
快速回复:如何用VFP代码控制WORD每页打印25条记录
数据加载中...
 
   



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

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