| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2628 人关注过本帖
标题:如何在生成的word格式的文档中每页表格下面一行显示制表人和制表日期
只看楼主 加入收藏
王咸美
Rank: 1
等 级:新手上路
帖 子:658
专家分:3
注 册:2018-1-4
结帖率:97.44%
收藏
已结贴  问题点数:20 回复次数:7 
如何在生成的word格式的文档中每页表格下面一行显示制表人和制表日期
如何修改程序dy1.prg让生成的word文档中每一页表格下一行均显示制表人和制表日期(不要页眉和页脚),样表格式如“数学成绩一览表”


dy1.rar (1.72 KB)

maths20170522.rar (1.6 KB)

数学成绩一览表.rar (6.46 KB)


[此贴子已经被作者于2020-5-18 21:22编辑过]

搜索更多相关主题的帖子: 生成 显示 表格 日期 一行 
2020-05-18 20:42
王咸美
Rank: 1
等 级:新手上路
帖 子:658
专家分:3
注 册:2018-1-4
收藏
得分:0 
下列程序如何修改才能达到样表的格式要求,请高手赐教,万分感谢!!!
SET TALK OFF
SET SAFETY OFF
SET DATE TO YMD
SET MARK TO "-"
SET CENTURY ON
SET COMPATIBLE OFF
use maths20170522.dbf IN 0 ALIAS maths
IF EMPTY(ALIAS())
MessageBox( "当前工作区没有打开工作表!",48,"不能生成表格")
ENDIF
WAIT "正在访问 Word 软件……" WINDOW NOWAIT
WordApp=CREATEOBJECT("Word.application")   &&访问WORD
If Type("WordApp")#"O"
WAIT CLEAR
MessageBox( "访问Word失败!请检查你的系统是否正确安装 Word 软件!",48,"没有安装Word")
RETURN
ENDIF
WAIT "正在生成表格……" WINDOW NOWAIT
WordApp.Visible =.t.
WordApp.Documents.Add

*WordApp.ActiveDocument.PageSetup.LinesPage = 48       &&设置每页打印行数
WordApp.Documents(1).Range.Text=ALIAS()+"一览表"
WordApp.Documents(1).Range.Font.Size= 15
WordApp.Documents(1).Range.Font.Name="黑体"
WordApp.Documents(1).Range.Paragraphs.Alignment= 1

#define NUM_AFIELDS 16
PUBLIC aWizFList
DIMENSION aWizFList[1]
=AFIELDS(aWizFList)

GO top
myfcount=fcount()
for i=1 to fcount()
  if INLIST(aWizFList[i,2],"G","M")
    myfcount=myfcount-1
    LOOP   
  endif
endfor
WordAppRang=WordApp.Documents(1).Range(LENC(WordApp.Documents(1).Range.Text)-1,LENC(WordApp.Documents(1).Range.Text)-1)
WordTable=WordApp.Documents(1).Tables.Add(WordAppRang,RECCOUNT()+1,myfcount)
WordTable.Range.Paragraphs.Alignment= 0
WordTable.Range.Font.Name="宋体"
WordTable.Range.Font.Size=9
WordTable.Borders.Enable=1
WordTable.Borders(1).LineWidth = 12
WordTable.Borders(2).LineWidth = 12
WordTable.Borders(3).LineWidth = 12
WordTable.Borders(4).LineWidth = 12
WordTable.Rows(1).Borders(3).LineWidth = 12
WordTable.Rows(1).Range.Font.Bold=.t.
WordTable.Rows(1).Cells.VerticalAlignment= 1
WordTable.Rows(1).Range.Paragraphs.Alignment = 4    && 分散对齐
WordTable.Rows(1).HeadingFormat=.t.
m=0
FOR i=1 TO FCOUNT()
if INLIST(aWizFList[i,2],"G","M")
   m=m+1
   loop
endif
WordTable.Cell(1,i-m).Range.Text=aWizFList[i,1]

FOR k=2 TO RECCOUNT()+1
GO k-1

if INLIST(aWizFList[i,2],"G","M")
   m=m+1
   loop
else
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.Cell(k,i-m).Range.Text=WordCellText
endif
ENDFOR
WordTable.Columns().AutoFit
endfor

* 下面为页面设置
WordApp.ActiveDocument.PageSetup.PaperSize=7
WordApp.ActiveDocument.PageSetup.Orientation=0 &&页面竖放 0-竖放  1-横放
*WordTable.Rows.HorizontalPosition=-999995               &&表格水平居中
WordApp.ActiveDocument.PageSetup.TopMargin=22.0*2.835    &&设置上边距
WordApp.ActiveDocument.PageSetup.BottomMargin=22.0*2.835 &&设置下边距
WordApp.ActiveDocument.PageSetup.LeftMargin=19.0*2.835   &&设置左边距
WordApp.ActiveDocument.PageSetup.RightMargin=19.0*2.835  &&设置右边距
WordApp.ActiveDocument.PageSetup.VerticalAlignment=0     &&页面对齐方式 0-上  1-中  2-下

WordTable.Columns().AutoFit                     &&自动调整列宽
WordTable.Columns().AutoFit
* 自动保存文件
WordApp.Documents(1).SaveAs("E:\"+alias()+".doc")  &&自动保存文件
RELEASE WordApp
WAIT CLEAR
MessageBox( "生成Word文件完毕,文件位置 E:\"+alias()+".doc!",64,"完毕")
RETURN
2020-05-19 05:17
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1712
专家分:3318
注 册:2012-2-29
收藏
得分:20 
提供一个思路:
1.设计一个word样本模板。
2.直接向模板中写入数据。
这样,每一页你设计什么,它就有什么;设计成什么样,它就是什么样的啦。
仅供参考。
==========================================================================
如果一定要用你的办法生成word文档,可以添加下面2句试一试:
WordApp.Selection.MoveDown(5,65,.F.)
WordApp.SELECTION.InsertAfter("制表人:王咸美                   制表日期:2020年5月18日")
* 自动保存文件

[此贴子已经被作者于2020-5-19 07:16编辑过]

2020-05-19 07:08
王咸美
Rank: 1
等 级:新手上路
帖 子:658
专家分:3
注 册:2018-1-4
收藏
得分:0 
@schtg 确实有用,非常感谢!如何设置制表人这一行的字号呢?望赐教。
2020-05-19 08:15
my2318
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:258
专家分:640
注 册:2014-3-18
收藏
得分:0 
生成表格,用Excel比用Word更灵活更方便。
2020-05-19 09:07
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1712
专家分:3318
注 册:2012-2-29
收藏
得分:0 
回复 4楼 王咸美
试一试,加下面这句是否可行:
WordApp.Selection.font.size = 7
* 自动保存文件
2020-05-19 12:17
王咸美
Rank: 1
等 级:新手上路
帖 子:658
专家分:3
注 册:2018-1-4
收藏
得分:0 
回复 6楼 schtg
非常感谢!确实有用。能否每一页都有制表人、制表日期?
2020-05-19 18:32
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
每页都有制表人,应该是为了打印。建议用VFP报表,简单高效。

dBase有人接盘了。
2020-05-20 10:11
快速回复:如何在生成的word格式的文档中每页表格下面一行显示制表人和制表日期
数据加载中...
 
   



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

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