自制程序打印往来账目

数字办公

往来账手工账簿是企业必需的,对于往来账特别多的企业,逐笔登记手工账簿是一件特别费时费力的工作。为了打印的账簿更准确、整洁、标准,笔者根据自己多年的计算机与财务工作经验,特将PB与用友财务软件相结合,就打印往来账簿的一些心得与大家分享。

首先在用友软件将往来科目账的数据导出为DBF数据文件。然后在ODBC中通过如下代码将DBF数据文件进行连接。最后在PB环境中,对DBF文件建立数据窗口。

SQLCA.DBMS = "ODBC"

SQLCA.AutoCommit = False

SQLCA.DBParm = "ConnectString='DSN=wanglai;UID=;PWD='"

connect using sqlca;

在用友财务软件中导出的数据包括往来账中总账及明细科目账中的所有数据,而打印到账簿只打印明细科目数据,故对此数据要按明细科目代码进行筛选,在数据窗口中的doubleclicked事件的代码如下:

string ls_id

ll_insertrow=0

if ll_row〈〉0 then

dw_1.selectrow(0,false)

dw_1.selectrow(ll_row,true)

dw_1.scrolltorow(ll_row)

ls_id=trim(dw_1.getitemstring( ll_row,'科目编码'))

dw_1.setfilter('科目编码="'+ls_id+'"')

dw_1.filter()

end if

手工账簿的格式是有统一标准的,所以适应此格式非常重要,况且对于账簿打印的格式及距离有着非常精确的设置,用文件paperset.ini对账簿的纸张大小、边距、行高、开始行数等通过下列一系列代码进行格式设置。

dw_1.Modify("DataWindow.Trailer.1.Height="+string(ll_tzkd))

dw_1.modify("datawindow.print.preview.rulers=yes")

dw_1.modify("datawindow.print.orientation=1")

dw_1.modify("datawindow.print.orientation=2")

dw_1.modify("datawindow.print.Margin.Left=10")

42-f11-2-1.jpg
打印界面的最终效果

不能直接使用“dw_1.printer()”进行打印,因往来账簿每一页有固定的行数,并且正反两面的账簿格式是不同的,所以系统中使用函数“paperset()”对正反两面账簿的打印格式及字体进行分别设置。

通过此设计思路,在其他任何一款财务软件上都可实现往来账簿的计算机打印功能。

以上代码可以在http://www.shudoo.com/bzsoft中下载。