| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5577 人关注过本帖, 1 人收藏
标题:动态打印工资清单
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
A6是多大啊?Excel中没预置这个尺寸?

授人以渔,不授人以鱼。
2013-08-21 10:50
wxdhz
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2009-12-31
收藏
得分:0 
144mm*105mm
2013-08-21 10:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不是148*105么?

授人以渔,不授人以鱼。
2013-08-21 10:59
wxdhz
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2009-12-31
收藏
得分:0 
也行,谢谢版主
2013-08-21 11:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我这里Excel设置不了自定义纸张,生成Excel文件之后你自己设置纸张打印吧。要么你在Excel中录制一段设置过程的宏给我。

授人以渔,不授人以鱼。
2013-08-21 11:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你设置打印效果看看
工资条.zip (7.58 KB)

授人以渔,不授人以鱼。
2013-08-21 11:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
CLEAR ALL
CLEAR
Main()
CLEAR ALL
RETURN 

PROCEDURE Main()
    LOCAL loFileName, loExcel, lnRow, lnCol, lnIndex, lcField
   
    IF !USED("工资")
        USE test_prn ALIAS 工资 IN 0
    ENDIF
   
    loFileName = Application.DefaultFilePath + "\工资条"
    IF FILE(loFileName + ".xls")
        loFileName = loFileName + ".xls"
        DELETE FILE (loFileName)
    ELSE
        IF FILE(loFileName + ".xlsx")
            loFileName = loFileName + ".xlsx"
            DELETE FILE (loFileName)
        ENDIF
    ENDIF
   
    WAIT "正在启动 Microsoft Excel Application,请稍候……" WINDOW NOWAIT
    loExcel = CREATEOBJECT("Excel.Application")
    WAIT "正在生成工资条,请稍候……" WINDOW NOWAIT
    WITH loExcel
        .SheetsInNewWorkbook = 1
        .Workbooks.Add
        .WorkSheets(1).Activate
        lnRow = -1
        lnCol = 0
        SELECT 工资
        SCAN ALL
            lnRow = lnRow + 2
            lnCol = 1
            FOR lnIndex = 1 TO FCOUNT()
                lcField = FIELD(lnIndex)
                IF !EMPTY(EVALUATE(lcField))
                    .ActiveSheet.Rows(lnRow).HorizontalAlignment = 3
                    .Cells(lnRow, lnCol).Value = lcField
                    .Cells(lnRow + 1, lnCol).Value = TRANSFORM(EVALUATE(lcField))
                    lnCol = lnCol + 1
                ENDIF
            NEXT
        ENDSCAN
        .ActiveWorkbook.SaveAs(loFileName)
        .Quit
    ENDWITH
    RELEASE loExcel
    WAIT "工资条已生成" WINDOW
   
ENDPROC

把Main()中的代码放到你表单的过程或方法中

[ 本帖最后由 TonyDeng 于 2013-8-21 11:41 编辑 ]

授人以渔,不授人以鱼。
2013-08-21 11:40
wxdhz
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2009-12-31
收藏
得分:0 
版主,你是wingdows XP系统吗?要先在打印机里设置自定义纸张大小,然后就能选到这种纸张大小了。
你搜索一下“自定义纸张大小”能找到设置方法
2013-08-21 11:40
wxdhz
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2009-12-31
收藏
得分:0 
我先学习一下,太感谢您了。有问题我再请教您,谢谢!
2013-08-21 11:41
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我根本就没有打印机。现在的代码不设置纸张尺寸,用默认尺寸,你设好就可以了。

授人以渔,不授人以鱼。
2013-08-21 11:42
快速回复:动态打印工资清单
数据加载中...
 
   



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

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