| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3349 人关注过本帖
标题:能否用程序把分页符加上去?
取消只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏
 问题点数:0 回复次数:7 
能否用程序把分页符加上去?
现在可以用程序把DBF文件转化为电子表格,能否根据不同单位分别加 上分页符分页打印?单位少可用手工,但单位有几百个无法用手工,能否用程序给它加上去?
搜索更多相关主题的帖子: 符加 手工 单位 电子 
2008-01-10 10:14
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
现在对DBF转为电子表格研探不少主要是各种格式的讨论,现有一个棘手的问题:转化后我要根据按单位不同进行分页打印,在VFP中顺利地可以办到,可采用数据分组方法。但转为电子表格后如果单位少那手工搞一下插入分页符,但单位多有上百个以上那无法用手工的方法。我查了张洪举先生编的书中(常用EXCEL对象的OLE控制语句)提到插入分页符那只有在“第xx行以前插入分页符”。也没有根据单位不同来插入分页符的语句,每单位数量是不同的无法确定第几行前插入分页符。如何不解决这个具体问题那转成电子表格也没多大作用。不知行家有否新的好办法?
2008-01-10 11:24
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
"读取有单位的那一列(注意,要求根据单位排序)的每一个单元格数据,若单位的值发生了变化,则插入一个换页符",思路很好就不知如何写程序,因它涉及不光是VFP的内容还有VB的东西。俺VB不懂呀,哪位高手能指教一下。
2008-01-11 10:42
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
多谢,最好每句后有注介,便于理介,好事做到底吧。
2008-01-11 15:16
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
我试了下,太好了,但是看不太懂。最好注释一下。多谢了。
2008-01-11 16:08
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
我把它放入我的程序中去后,死掉了,不知如何插入这块模块。请明示。多谢了。
filename=GETFILE("dbf")  &&随便别一个数据库
IF EMPTY(filename)
 RETURN
ENDIF
USE &filename
filename=SUBSTR(filename,RAT("\",filename,1)+1)
filename=LEFT(filename,RAT(".",filename,1)-1)
pp=CREATEOBJECT("excel.application")
pp.workbooks.ADD
pp.worksheets("sheet1").ACTIVATE &&这里就是增加一个工作表,你可以打开多个数据表,然后增加多个工作表
hx=FCOUNT()  &&表的横向变量,即字段个数

*hx=3        &&&确定3个字段
sx=RECC()    &&表的坚向变量,即记录长度
sx1=1
GO TOP
FOR hx1=1 TO hx   &&这个循环打印字段名称
 bl=FIELD(hx1)
 pp.cells(3,hx1).VALUE=bl  &&字段名称显示在第三行。
ENDFOR
pp.cells.SELECT &&选择所有单元格
pp.Selection.NumberFormatLocal = "@"  &&将所有单元格设置成“文本”格式


DO WHILE sx1<sx+1 &&每条记录来一个循环,向excel中填充数据
 FOR hx1=1 TO hx  &&从第四条开始填充数据
  bl=FIELD(hx1)
  pp.cells(sx1+3,hx1).VALUE=&bl   && &bl的意思就是把相应字段值赋值给单元格
 ENDFOR
 SKIP+1  &&dbf表的数据指针指向下一条记录
 sx1=sx1+1
ENDDO




*以下的一块内容引用了您的有关内容:

WITH pp.workbooks(1).worksheets(1)
  
  GO TOP
  lnDw=lqk.lqyxdm
  FOR lnCnt=1 TO RECCOUNT('lqk')
   
    GO lnCnt
    .RANGE('A'+TRANSFORM(lnCnt)).VALUE=lqk.bmxh
    .RANGE('B'+TRANSFORM(lnCnt)).VALUE=lqk.xm
    .RANGE('C'+TRANSFORM(lnCnt)).VALUE=lqk.yxmc
    .RANGE('D'+TRANSFORM(lnCnt)).VALUE=lqk.lqyxdm

IF lnDW!=lqk.lqyxdm
      lcRange='A'+TRANSFORM(lnCnt)
      .hpagebreaks.ADD(.RANGE(lcRange))
      lnDw=lqk.lqyxdm
    ENDIF
  ENDFOR
ENDWITH
*!*    o.displayalerts=.f.
*!*    o.quit
RETURN


pp.cells(2,1)="日期:"+ALLT(DTOC(DATE()))
pp.cells.SELECT &&选择所有单元格
pp.SELECTION.FONT.SIZE=9 &&字体设置为9号字体
pp.cells(1,3).VALUE=(filename+"文件导出表")  &&设置表头标题
pp.cells(1,3).FONT.NAME="黑体"
pp.cells(1,3).FONT.SIZE=24
pp.CAPTION="EXCEL表单名"
pp.COLUMNS(1).COLUMNWIDTH=12
pp.COLUMNS("B:U").SELECT
pp.SELECTION.COLUMNWIDTH=7
pp.cells(1,1).SELECT
pp.APPLICATION.VISIBLE=.T.
*set talk on
2008-01-11 16:48
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
是张洪举的那本书?他的书太多了。
2008-01-14 11:03
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
请教:Tiger5392
“.RANGE('A'+TRANSFORM(lnCnt)).VALUE=Temp2.dw
 lcRange='A'+TRANSFORM(lnCnt)
      .hpagebreaks.ADD(.RANGE(lcRange))”
请教:
.range('A'+TRANSFORM(lncnt))此句是什么意思?
lcRange='A'+TRANSFORM(lnCnt)此句是什么意思?
.hpagebreaks.ADD(.RANGE(lcRange))此句是什么意思?
我不懂excel vba语言,请指教,多谢了。
2008-02-18 15:33
快速回复:能否用程序把分页符加上去?
数据加载中...
 
   



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

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