请问怎样制作自定义打印格式?在线等,急。先谢了!

primeP 2004-09-27 11:14:27
现在我要做一个入库联单据的打印,但那单据不是规格的,而且是连打的,请问我该怎样做才能使当打印下一张时使打印机滚动到相应的位置?能给出一些实现代码更好,先谢了。
...全文
187 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
primeP 2004-09-27
  • 打赏
  • 举报
回复
问题还没解决呢,是不是都忙着过节呢,怎么都没什么人影啊。
primeP 2004-09-27
  • 打赏
  • 举报
回复
有人说可以写datawindow的什么describe,modify什么的,我没写过这类代码,请各位高手指点啊。
wangxichen 2004-09-27
  • 打赏
  • 举报
回复
不写代码的话,就在打印机设置中自定义打印纸张
balloonman2002 2004-09-27
  • 打赏
  • 举报
回复
两种方法:
1、根据需要动态切换DATAWINDOW
2、自己用Print、PrintBitmap、PrintCancel、PrintClose、PrintDataWindow、PrintDefineFont、PrintText、PrintX、PrintY等函数控制位置
yl_yz 2004-09-27
  • 打赏
  • 举报
回复
用代码设定纸长,搜索一下,坛子上有。
primeP 2004-09-27
  • 打赏
  • 举报
回复
TO zlnlh(robert) 老兄:谢谢你!

对了,现在我还有一种情况,那就是我打印的宽度不够,如果将最后一列往右调就会在一行上打印不完,而要换到下一行,并且同一张单据要打印两页。这是怎么回事儿,该怎样增大这个宽度呢?谢谢。
李辉2003 2004-09-27
  • 打赏
  • 举报
回复
//=====================================================================
// [事 件] Function::f_printdw()
//---------------------------------------------------------------------
// [描 述]
// [参 数]
// value datawindow adw_name :
// value integer ai_lx :
// [返回值] integer
//---------------------------------------------------------------------
// [作 者] Robert [日 期] 2001.09.27 14:53
//---------------------------------------------------------------------
// Copyright (C) Robert(TM) 2001, All rights reserved.
//=====================================================================
// ----------------------------------
// 对照表 | Cm Pixel Inch
// ----------------------------------
// Cm | 1 37.8 0.3937
// Pixel | 0.02646 1 0.0104
// Inch | 2.54 96 1
//-----------------------------------
//ai_lx: 1:代表医疗新票(3000*1400);2:代表医疗老票(2800*930);3:代表住院新票();4:代表住院老票();5:代表住院押金收据(1400)。。。
//ai_lx: >=32:代表打印的高度
//下面是程序打印控制: (虽然大部分针式打印机都兼容Epson指令集,但使用前最好还是仔细查看你的打印机手册,以确保使用正常)
Long Ll_job
Ll_job = printOpen()
If Ll_job = - 1 THEN
MESSAGEBOX('提示','打印机未准备好!')
RETURN - 1
END IF
/*定制行距1/8英寸*/
PRINTSEND(LL_JOB,CHAR(27)+CHAR(48))
/*设定页长44行*/
// 32CM|64CM|96CM|128CM|160CM....32的整数倍 2800
// 1 | 2 | 3 | 4 | 5 .... 88
CHOOSE CASE ai_lx
CASE 1
PRINTSEND(LL_JOB,CHAR(27)+CHAR(67)+CHAR(44))
CASE 2
PRINTSEND(LL_JOB,CHAR(27)+CHAR(67)+CHAR(44))
CASE 3
PRINTSEND(LL_JOB,CHAR(27)+CHAR(67)+CHAR(44))
CASE 4
PRINTSEND(LL_JOB,CHAR(27)+CHAR(67)+CHAR(44))
CASE 5
PRINTSEND(LL_JOB,CHAR(27)+CHAR(67)+CHAR(44))
CASE 32 to 2800
ai_lx = ROUND(ai_lx*0.7874/25,0)
PRINTSEND(LL_JOB,CHAR(27)+CHAR(67)+CHAR(ai_lx))
CASE ELSE//2800CM
PRINTSEND(LL_JOB,CHAR(27)+CHAR(67)+CHAR(88))
END CHOOSE
PRINTDATAWINDOW(LL_JOB,adw_name)
/*换页*/
printsend(ll_job,char(27)+char(12))
PRINTCLOSE(LL_JOB)
RETURN 1


1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧