VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

用A3纸不能正常打印?
前往頁面 1, 2  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 1 樓

發表發表於: 星期一 七月 14, 2008 5:19 pm    文章主題: 用A3纸不能正常打印? 引言回覆

因数据的不可预测性,本程序未用报表设计。(我还有其它的程序用报表设计成A3的纸张,打印时是正常的。)打印机是HP Deskjet 1280,A3纸进纸是纵向的进纸。
我在程序中用?输出(打印)数据。因数据可能是在36周左右,设A3纸无论是设横向或纵向打印,但是输出时,数据总是好象是A4的格式,不能正常的打印出来,见图。现请哪位专家帮助指导一下。谢谢!

因编幅所限,数据的采集这里省略,只将打印程序列如下:
**……..
nAnser= messagebox("这是第 "+ssum+" 种分组方案,"+_A3paper+",现在打印吗?",35+256,"打印分组表")
do case
case nAnser=6
IF _A3paper="[设A3纸(420mmX297mm),打印机纸张设成横向打印]"
=SYS(1037)
_zi=""
_direc=""
DO CASE
case PRTINFO(2)=8
_zi="A3纸"
CASE PRTINFO(2)=9
_zi="A4纸"
ENDCASE
DO case
CASE PRTINFO(1)=1
_direc="横向打印"
CASE PRTINFO(1)=0
_direc="纵向打印"
ENDCASE
MESSAGEBOX("当前的设置是:"+_zi+","+_direc,48,"设置打印机")
ENDIF
_tmmc=JCUNIVERSITY_LOC+CLCOLLEGE_LOC
_tmmc2=_xueqi+_lianji+_zy+"专业科室见习分组表"

PRINTJOB
_peject="NONE" &&不走纸一页
ENDPRINTJOB
set device to print
set print on
set printer to default
set printer font "楷体",12
? SPACE(1)
? spac(50)+_tmmc
set printer font "楷体",16
? spac(14)+_tmmc2
set printer font "宋体",11
?SPACE(1)
?spac(56)+year+"年"+mon+"月"+_day+"起 "+TCOFFICE_LOC+"制"
? space(Cool+L2
? space(Cool+L1 &&周次
? space(Cool+L3 &&划线框
? space(Cool+LL1 &&起始
? space(Cool+LL2 &&日期
? space(Cool+L3 &&划线框
b=1
DO WHILE b<=kbs
A=1
L5=kbmc(b)+space(2)+kbvic(b)+space(2)+LA2
DO WHILE A<=zzsm
F1=SUBST(sss(b),A*2-1,2)
IF A<>zzsm
L5=L5+F1+LA2
ELSE
L5=L5+F1
ENDIF
A=A+1
ENDDO
?space(Cool+l5

IF b<>kbs
?space(Cool+L3
ELSE
?space(Cool+L4
if kbs<=19 &&A4只能容19个科室,输出时,>19个科室时不空格
?" "
endif
ENDIF
L5=""
b=b+1
ENDDO
sp4 = "附:学生编号对照:"
sp5=thisform.text5.value
selec zu from fn_a where !empty(zu) group by zu into curso tmp
sele tmp
J1=zzs
DIME D(J1)
j0=1
_zu=""
do while .not. eof()
D(j0)=zu
skip
j0=j0+1
enddo
selec stdname,zu from fn_a where !empty(zu) order by zu into curso tmp
selec tmp
j0=1
for i=1 to recc()
go i
_zu=alltr(zu)
DD=alltr(stdname)
if D(j0)=_zu
D(j0)=D(j0)+dd+" "
else
j0=j0+1
D(j0)=D(j0)+dd+" "
if j0>j1
exit
endif
endif
endfor
?spac(Cool
?? sp4
j0=1
do while j0<=zzs
_Odd=odd(j0)
IF _Odd=.T.
?? D(j0)+" "
else
?spac(Cool+D(j0)+" "
ENDIF
j0=j0+1
enddo
? ''
if thisform.check1.value=1
?spac(Cool+thisform.check1.caption+alltr(thisform.text2.value)
endif
? ''
? SPACE(64)+_tmmc
? SPACE(82)+DTOC(sp5)
? ""
set print off
set devic to screen
set printer to
set date american
case nAnser=2
**…….
endcase


zfgg 在 星期三 七月 16, 2008 5:30 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 2 樓

發表發表於: 星期一 七月 14, 2008 5:27 pm    文章主題: 引言回覆

先檢查一下是不是Set margin...的問題...
_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 3 樓

發表發表於: 星期一 七月 14, 2008 5:40 pm    文章主題: 引言回覆

左边距应该没有问题,如果是在17周以内,用A4纸纵向打印没有问题。倒是A3纸打印的右边距有问题,因设的是A3,总是打不到边上就转行了,因右边的是空白,图象上删除了。请再帮助我想办法。谢谢!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期二 七月 15, 2008 8:47 am    文章主題: 引言回覆

你如何確定是使用A3紙張?
什麼作業系統?

也許和這幾個系統變數有關:
_WARP ---------- .T. :輸出字串超過_RMARGIN 時,會自動折到下一列
_RMARGIN ---------- 右邊界字元數,A3 可能要設到 150~160
_LMARGIN ---------- 左邊界字元數
_INDENT ---------- 從左邊界起,隔幾個字元開始列印

還有一堆系統變數,自己試看看.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 5 樓

發表發表於: 星期二 七月 15, 2008 9:40 am    文章主題: 引言回覆

syntech說得沒錯,你得把每一個可能的設定值叫出來檢查,
因為程式在你哪邊,不是在我們這邊.
我之所以會說Set margin.
是因為當你設定的值不夠寬時,就會自動折行...這很正常,
不過話說回來,你有沒有先去檢查Set margin的值?

_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 6 樓

發表發表於: 星期二 七月 15, 2008 11:00 am    文章主題: 引言回覆

我的系统是windows2003,vfp是9.0(sp1),打印机是HP Deskjet 1280(A3纸只能直进),了解打印机的设置是用的下面程序。A3纸无论是设横向或纵向打印,但是输出时,数据总是好象是A4的格式。我在PRINTJOB……ENDPRINTJOB中间加入了“_wrap=.T. _rmargin=160”语句,打印结果还是与前面一样。是不是_wrap=.T. _rmargin=160写法位置不对?还是不应该写在PRINTJOB……ENDPRINTJOB中间。_peject="NONE"没有起作用,打印时,还是先走一张空纸才开始打印。

=SYS(1037)
_zi=""
_direc=""
DO CASE
case PRTINFO(2)=8
_zi="A3纸"
CASE PRTINFO(2)=9
_zi="A4纸"
ENDCASE
DO case
CASE PRTINFO(1)=1
_direc="横向打印"
CASE PRTINFO(1)=0
_direc="纵向打印"
ENDCASE
MESSAGEBOX("打印机当前的设置是:"+_zi+","+_direc,48,"设置打印机")

PRINTJOB
_peject="NONE" &&不走纸一页
_wrap=.T.
_rmargin=160
ENDPRINTJOB
set device to print
set print on
set printer to default
set printer font "楷体",12
? SPACE(1)
**……………….
? ""
set print off
set devic to screen
set printer to


zfgg 在 星期三 七月 16, 2008 5:32 pm 作了第 2 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 7 樓

發表發表於: 星期二 七月 15, 2008 11:13 am    文章主題: 引言回覆

我的左边距不想设,请问如果要设右边距,应如何设?set margin to X 最大可以设多少,因没有用过这种设置,请赐教!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 8 樓

發表發表於: 星期二 七月 15, 2008 11:42 am    文章主題: 引言回覆

設定左邊印表機邊界,並對所有指向到印表機的輸出結果都起作用。


SET MARGIN TO nColumns



參數
nColumns


以行為單位指定左邊界。預設值是 0 行;最大值是 256 行。

_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 9 樓

發表發表於: 星期二 七月 15, 2008 4:39 pm    文章主題: 引言回覆

我是这样设的:
set device to print
set print on
set printer to default
set margin to 256

结果还是不行,与前面一样的结果。还是再请指教,谢谢!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 10 樓

發表發表於: 星期二 七月 15, 2008 5:14 pm    文章主題: 引言回覆

再確認一點..你Set print to file 轉出結果也相同嗎?
_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 11 樓

發表發表於: 星期三 七月 16, 2008 9:46 am    文章主題: 引言回覆

加油,好嗎? XD

這種古早用法,大部分都找不太到資料,
你只能自己搞,

不過A3/A4圖上的列印範圍不一樣,
A3的那張到"分組表"就折下來了,
但是A4 還可以多印一端.
這點很怪,是MARGIN範圍不一樣嗎?

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 12 樓

發表發表於: 星期三 七月 16, 2008 11:30 am    文章主題: 引言回覆

set print to file 是正常的,将文件用图的形式传上来,请看下图.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 13 樓

發表發表於: 星期三 七月 16, 2008 12:05 pm    文章主題: 引言回覆

這樣子來說可以確立Set margin沒有問題,你得去檢查其他的值,
如果你的Set printer to file

set devic to screen
結果一樣,哪就是印表機沒選對紙,可是...Set device to screen
跟Set printer to file的結果也一樣嗎?

_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 14 樓

發表發表於: 星期三 七月 16, 2008 5:23 pm    文章主題: 引言回覆

谢谢各位大大及专家的指教!目前没有解决的办法,我采取set print to file后,用createobject('word.application')启动word,参数选1,选"纯文体",在word下设A3纸,设横向打印,可以来解决。

如果哪位遇到此类问题,有解决的办法,请赐教.我真不知道这问题究竟出在哪儿?
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
tigerlee39y



註冊時間: 2007-11-26
文章: 132
來自: taipei

第 15 樓

發表發表於: 星期四 七月 17, 2008 12:25 am    文章主題: 引言回覆

這樣的寫法好像在Clipper時代的寫法,加上vfp印表機的設定
不如在VFP下重新設計一個印表form比較來得好些

_________________
各取所需 各盡所能
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 1, 2  下一頁
1頁(共2頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作