| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2374 人关注过本帖
标题:打印问题求助!!
只看楼主 加入收藏
liangzhaofu
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-11-25
收藏
 问题点数:0 回复次数:20 
打印问题求助!!
最近帮单位编了一个程序,有一个问题解决不了,请高手指点,一个打印表单,打印按钮的“单击”代码为
public abcd3,abci
if thisform.check1.value=1
wtzy="雾天作业,注意安全!"
else
wtzy=" "
endif
if thisform.spinner1.value<1
messagebox ("请您输入打印份数:",0+48)
else
ss=messagebox("您确实要打印计划吗?",4+32)
if ss=6
private dyfs as integer
dyfs=thisform.spinner1.value
SELECT gjhbt
jhbh=gjhbt.计划号
fname="jh"+ltrim(str(jhbh,2))
select gjhnl
append from gjhdata\&fname..dbf
sele gjhfmzy
go 1
do while not eof()
*selec gjhfmzy
abci=trim(gjhfmzy.股道)
sele gjhnl
loca for trim(gjhnl.股道)=trim(abci)
if found()
abcd3="**反面指挥作业,注意安全**"
exit
else
abcd3=" "
endif
sele gjhfmzy
skip 1
enddo
gjhnlsum=reccount()
select gjhbt
QQ = trim(gjhbt.起时)
ZZ = trim(gjhbt.终时)
if (val(QQ)>=0.and.val(QQ)<=24).and.(val(ZZ)>=0.and.val(ZZ)<=24)
if val(QQ)<=val(ZZ)
select lccc1
append from zd\lccc.dbf for val(trim(开点))>=val(QQ).and.val(trim(开点))<=val(ZZ)
else
* if (val(lccc.开点)>=val(QQ).and.val(lccc.开点)<=24) or val(lccc.开点)<=val(ZZ)
select lccc1
append from zd\lccc.dbf for val(trim(开点))>=val(QQ).and.val(trim(开点))<=24.or.val(trim(开点))>=0.and.val(trim(开点))<=val(ZZ)
*endif
endif
endif
select lccc1
lcccsum=recc()
private k as integer
for k = 1 to dyfs step 1
do gjhdy.prg
endfor
thisform.release
close all
use gjh!gjhnl
dele all
pack
use gjh!lccc1
dele all
pack
endif
endif
中间调用了gjhdy.prg程序,该程序的代码为
tt = TRIM(gjhtt)
dyfs = 1
DO WHILE dyfs > 0
SET PRINTER ON
SET CONSOLE OFF
SET HEADING OFF
dyfs = dyfs - 1
SELECT gjhcz
NCOL = 57
AA = TRIM(站名)
ZM = TRIM(AA + '站调车作业通知单')
SELECT gjhbt
QQ = gjhbt.起时
BB = gjhbt.终时
ST0=' '+wtzy+' '+abcd3
ST1 = ' 编号: ' + STR(gjhbt.计划号,2)
ST2 =SPACE(6) +'日期:' + DTOC(gjhbt.日期) + ' ' + '机车:' + TRIM(gjhbt.机号) + ;
' 调车组别:' + TRIM(gjhbt.班组)
ST3 = ' 自 ' + QQ + ' 至 ' + BB
ROW1 = '┏━━━┯━━┯━━┯━━━━━━━━━━━━━━━━┓'
ROW2 = '┃ 股道 │作业│辆数│     记    事     ┃'
ROW3 = '┠───┼──┼──┼────────────────┨'
ROW3A = '┠──┼──┼──┼─────────────────┨'
ROW3B = '┃   │  │  │                ┃'
ROW4 = '┗━━━┷━━┷━━┷━━━━━━━━━━━━━━━━┛'
ROW5 = ' 调车区长签字: 值班员签字: '
?st0
??SPACE(6)+st0
? ' ' + ZM FONT '宋体' , 16
?? ST1
?? ' ' + ZM AT 26 FONT '宋体' , 16
?? ST1
? ST2
?? ST2 AT 58
? ST3
?? ST3 AT 62
IF .NOT. (tt == '')
?
FOR I = 1 TO LEN(tt)
IF MOD(I,52) = 0
?? SUBSTR(tt,I,1) AT 52
?? SUBSTR(tt,I,1) AT NCOL + 52
?
ELSE
?? SUBSTR(tt,I,1) AT MOD(I,52)
?? SUBSTR(tt,I,1) AT MOD(I,52) + NCOL
ENDIF
ENDFOR
ENDIF
? ROW1
?? ROW1 AT NCOL
? ROW2
?? ROW2 AT NCOL
? ROW3
?? ROW3 AT NCOL
SELECT gjhnl
GO TOP
DO WHILE .NOT. EOF()
IF (6 - LEN(gjhnl.股道) > 0)
GD = gjhnl.股道 + SPACE(4 - LEN(gjhnl.股道))
ELSE
GD = SUBSTR(gjhnl.股道,1,6)
ENDIF
IF (4 - LEN(gjhnl.作业) > 0)
ZY = gjhnl.作业 + SPACE(4 - LEN(gjhnl.作业))
ELSE
ZY = SUBSTR(gjhnl.作业,1,4)
ENDIF
IF (4 - LEN(gjhnl.辆数) > 0)
LS = gjhnl.辆数 + SPACE(4 - LEN(gjhnl.辆数))
ELSE
LS = SUBSTR(gjhnl.辆数,1,4)
ENDIF
IF (35 - LEN(gjhnl.记事) > 0)
JS = gjhnl.记事 + SPACE(35 - LEN(gjhnl.记事))
ELSE
JS = SUBSTR(gjhnl.记事,1,35)
ENDIF
? ROW3B
?? ROW3B AT NCOL
selec gjhfmzy
loca for trim(股道)=trim(gjhnl.股道)
if found()
?? GD AT 2 FONT '黑体',9
?? ZY AT 11 FONT '黑体',9
?? LS AT 17 FONT '黑体',9
?? JS AT 22 FONT '黑体',9
?? GD AT NCOL + 2 FONT '黑体',9
?? ZY AT NCOL + 11 FONT '黑体',9
?? LS AT NCOL + 17 FONT '黑体',9
?? JS AT NCOL + 22 FONT '黑体',9
else
?? GD AT 2
?? ZY AT 11
?? LS AT 17
?? JS AT 22
?? GD AT NCOL + 2
?? ZY AT NCOL + 11
?? LS AT NCOL + 17
?? JS AT NCOL + 22
endif
select gjhnl
SKIP
*IF RECNO() <= RECCOUNT()
IF RECNO() > RECCOUNT()
* ? ROW3A
* ?? ROW3A AT NCOL
* ELSE
? ROW4
?? ROW4 AT NCOL
ENDIF
ENDDO
? ROW5
?? ROW5 AT NCOL
ENDDO
?
? space(3)+"客车车次:"+space(48)+"客车车次:"
select lccc1
coun to oo
if oo#0.and.mod(oo,2)#0
go 1
scat to ll
appe blank
go oo+1
gather from ll
endif
cc=""
dd=""
ee=""
go top
do while .not.eof()
aaa=0
fff=""
do while aaa<2
if val(trim(lccc1.到点))>0
ee=space(3)+lccc1.车次+":"+lccc1.到点+"到"+lccc1.开点+"开"+space(2)
else
ee=space(3)+lccc1.车次+":"+lccc1.开点+"通"+space(9)
endif
fff=fff+ee
aaa=aaa+1
skip
if eof()
exit
endif
enddo
?fff+space(7)+fff
enddo
?
?
RETURN
存在的问题是,我点击了打印按钮后,只会形成一下等待打印的文档,不打印,把主程序开闭后,才开始打印,这是怎么回事,请高手指点,急盼。谢谢!!
搜索更多相关主题的帖子: 打印 
2006-11-25 20:30
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11782
专家分:43421
注 册:2006-5-13
收藏
得分:0 

检查一下系统的打印机设置,是否在“高级”选项页中选择了“立即开始打印”。


活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-11-25 21:01
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 

呵呵,你没必要把这么多代码传上来,其实您的问题在程序的最后(return之前)加上以下几行命令就可以解决(最关键的是最后那行)
set print off
set device to screen
set print to


(真有点怀念当年Dos下的FoxProw了)

[此贴子已经被作者于2006-11-25 21:09:11编辑过]


两人行已有我师……
2006-11-25 21:07
liangzhaofu
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-11-25
收藏
得分:0 
已经设置好了,就是不打,而且试验了好几台机器和打印机了,如果把gjhdy.prg中的SET PRINTER ON换SET PRINTER to 一个文件名,就打印,不知为什么!!
2006-11-25 21:15
liangzhaofu
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-11-25
收藏
得分:0 
问题解决了,谢谢啸凡,真的非常感谢。
2006-11-25 21:36
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
当版主的最主要任务就是尽自己所能帮助别人。是您提供了一个让我完成版主任务的机会,应该是我谢谢您才对。

两人行已有我师……
2006-11-25 22:06
liangzhaofu
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-11-25
收藏
得分:0 

再请教,以上代码打印,能实现打印预览吗?若能怎样实现?

2006-11-29 22:46
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
想预览,最好用报表。当然,您也可以把打印结果重定向到屏幕,不过这预览的效果会大打折扣,而且会被岳面的显示覆盖。

两人行已有我师……
2006-11-30 17:50
liangzhaofu
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-11-25
收藏
得分:0 

又有一个问题请教,上边的程序,打印出的东西,同事们反映字有点小,我便设置了字体为10磅,结果打印出来后,在每一行打印的文字下边都会紧跟一行空行,我试了只要字体大于9磅就会这样,是怎么回事,请啸凡帮助解答一下。谢谢!!

2006-12-04 20:43
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
说实话,我没有仔细看您的程序代码,估计(仅仅是估计)是字符串尾部有空格的原因吧,当字符(空格)太大,一行打不下,就自动下到下一行了,但由于是空格,所以看不出来。
注意:论坛是交流之所,如果楼主确实想得到高人指点的话,提问请不要指定由本人解答,因为本人的确是菜芯(菜中之菜啊),水平有限。

两人行已有我师……
2006-12-04 22:33
快速回复:打印问题求助!!
数据加载中...
 
   



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

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