主题:请问如何保存报表中的打印机环境?
MW_BO
[专家分:1160] 发布于 2009-10-14 14:33:00
在自己的电脑上的定义的纸张尺寸如何应用在别人的电脑上?
谢谢!
回复列表 (共7个回复)
沙发
martine [专家分:4950] 发布于 2009-10-14 16:41:00
在那个电脑上定义
板凳
MW_BO [专家分:1160] 发布于 2009-10-15 11:44:00
是这样,我已在别人的电脑上定义了同样的尺寸,也是同样的打印机,可显示的还是A4的纸张。不知是哪里没有设置到?请赐教!
谢!
3 楼
lbscyb [专家分:4780] 发布于 2009-10-15 22:22:00
报表编辑环境下
“页面设置”中将“保存打印机环境”勾选上就可以了
4 楼
dfwxj [专家分:270] 发布于 2009-10-16 00:44:00
以下代码可以自动初始化纸张
sheettype记录你所要用到的各种特殊报表及纸张信息,主要字段如下:
sheetfile &&报表名,带完整扩展名,且要设置为“排除”
paptype &&纸张型号(即服务器属性里看到的纸张类型名称)
papwidth &&宽度(单位为0.1MM)
papheight &&高度(单位为0.1MM)
papid &&纸张代号,很重要的东西,系统就认这玩意,初始化后自动写入,并更新报表文件
下列代码运行一次即可新增纸张,并调整报表,只需在软件安装后(或重装系统后)运行一次,需木瓜大侠的myfll.fll支持
SELE paptype,papwidth,papheight dist from sheettype into curs tsheet
*读取纸张代号
SELE tsheet
SCAN
IF 'NT'$GETENV("OS")
paperid=paperadd(tsheet.paptype,tsheet.papwidth,tsheet.papheight)
IF paperid=0
paperid=paperinfo(tsheet.paptype,1)
ENDI
ELSE
paperid=256
ENDI
sele sheettype
REPL papid with paperid for paptype==tsheet.paptype
SELE tsheet
ENDS
SELE sheettype
SCAN
reportname=allt(sheetfile)
SELE 0
USE &reportname alia reportfile
LOCA for objtype=1 and objcode=53
*调整自定义纸张代号
frxset=expr
FRXSET=SUBST(FRXSET,1,AT('PAPERSIZE=',FRXSET)+9)+ALLT(STR(paperid))+SUBST(SUBST(FRXSET,AT('PAPERSIZE=',FRXSET)),AT(CHR(13)+CHR(10),SUBST(FRXSET,AT('PAPERSIZE=',FRXSET))))
FRXSET=SUBST(FRXSET,1,AT('ASCII=',FRXSET)+5)+ALLT(STR(paperid))+SUBST(SUBST(FRXSET,AT('ASCII=',FRXSET)),AT(CHR(13)+CHR(10),SUBST(FRXSET,AT('ASCII=',FRXSET))))
REPL expr with frxset
USE in reportfile
SELE sheettype
ENDS
5 楼
MW_BO [专家分:1160] 发布于 2009-10-16 14:55:00
谢谢各位的指点。
6 楼
ahwgw [专家分:0] 发布于 2009-11-30 20:37:00
运行4楼上程序出现:
paperid=paperadd(tsheet.paptype,tsheet.papwidth,tsheet.papheight)
时,“paperadd.prg不存在”,是不是缺少了什么?
7 楼
MW_BO [专家分:1160] 发布于 2009-12-01 12:44:00
需木瓜大侠的myfll.fll支持 详细读四楼的说明
我来回复