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

請問..列表機的進階紙張設定如何代入frx的設定列印格式?

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
jtcom01



註冊時間: 2005-07-29
文章: 408


第 1 樓

發表發表於: 星期五 十月 16, 2009 2:21 pm    文章主題: 請問..列表機的進階紙張設定如何代入frx的設定列印格式? 引言回覆

請教各位大大..
列表機LQ-1070+進階紙張設定為中一刀.
AA.FRX設定列印格式為A4
當報表列印,開啟列表機的選擇畫面時,下拉選LQ-1070+發現列表機的紙張變成A4
也就是說..列表機的紙張尺寸會隨AA.FRX報表的列印格式而異動
請問..可以讓列表機已設定的紙張取代AA.FRX的列印格式嗎?
PS..AA.FRX的列印紙張格式與執行LQ-1070+的紙張環境不一致..謝謝指教!
回頂端
檢視會員個人資料 發送私人訊息
Patrick Wu



註冊時間: 2007-01-03
文章: 223
來自: 台北市

第 2 樓

發表發表於: 星期一 十月 19, 2009 10:48 am    文章主題: 引言回覆

請 jtcom01 先進 搜尋一下 {中一刀} 有討論過
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
jtcom01



註冊時間: 2005-07-29
文章: 408


第 3 樓

發表發表於: 星期一 十月 19, 2009 8:09 pm    文章主題: 引言回覆

謝謝你的回應..我搜尋過了.但..找不到想要的答案..你能指引嗎?..謝謝..
回頂端
檢視會員個人資料 發送私人訊息
LiuRambo



註冊時間: 2007-11-27
文章: 481


第 4 樓

發表發表於: 星期二 十月 20, 2009 12:03 pm    文章主題: 引言回覆

基本上你要到你的客戶電腦(不同報表格式都要個別做)
用foxpro去編輯報表-->選取列印格式
讓vfp把報表裡的設定印表機修改成你所要的印表機跟紙張

當然在這之前你要先確認在os的印表機伺服器內容裡面有你所要自定的紙張格式
基本上會自動跳到A4,就表示在客戶電腦上沒有你當初所設定的印表機和紙張格式
回頂端
檢視會員個人資料 發送私人訊息 MSN Messenger
jtcom01



註冊時間: 2005-07-29
文章: 408


第 5 樓

發表發表於: 星期二 十月 20, 2009 1:42 pm    文章主題: 引言回覆

謝謝LinRambo先進的指導..
紙張尺寸可以讓客戶自己新增.但..因..報表在我的電腦做編輯..客戶端的電腦與我的電腦紙張順序不同..所以..
如何讓報表在客戶端能抓到新增的紙張尺寸呢?..
請不吝指導..謝謝!
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 6 樓

發表發表於: 星期二 十月 20, 2009 1:54 pm    文章主題: 引言回覆

http://vfp.sunyear.com.tw/viewtopic.php?t=4948


你嘛幫幫忙.......

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

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



註冊時間: 2004-06-19
文章: 58


第 7 樓

發表發表於: 星期四 十月 22, 2009 11:31 pm    文章主題: 引言回覆

這是有些久的資料,從何來已忘了,您可試試
proc get_print_size
lpara t_size
#Define DC_FIELDS 1
#Define DC_PAPERS 2
#Define DC_PAPERSIZE 3
#Define DC_MINEXTENT 4
#Define DC_MAXEXTENT 5
#Define DC_BINS 6
#Define DC_DUPLEX 7
#Define DC_SIZE 8
#Define DC_EXTRA 9
#Define DC_VERSION 10
#Define DC_DRIVER 11
#Define DC_BINNAMES 12
#Define DC_ENUMRESOLUTIONS 13
#Define DC_FILEDEPENDENCIES 14
#Define DC_TRUETYPE 15
#Define DC_PAPERNAMES 16
#Define DC_ORIENTATION 17
#Define DC_COPIES 18
Declare LONG DeviceCapabilities IN "winspool.drv" ;
STRING lpDeviceName, ;
STRING lpPort, ;
LONG iIndex, ;
STRING@ lpOutput, ;
STRING@ lpDevMode
***************
Declare Integer DocumentProperties in WinSpool.Drv ;
Integer hwnd,;
Integer hPrint, ;
String pDeviceName, ;
String pDevModeOutput, ;
String pDevModeInput, ;
Integer fMode
********************
Declare Integer OpenPrinter in WinSpool.Drv;
String pPrinterName, ;
Integer @phPrinter, ;
String pDefault
****************
Declare Integer ClosePrinter in WinSpool.Drv;
Integer hPrinter
Local 印表機,埠,印表機陣列(1),行號,紙張編號緩衝區,紙張名稱緩衝區,印表機資料,自定義長度,自定義寬度
Local ii,jj,ii1
if type ("t_size") # "L"
印表機 =s_current_printer
if at (",",印表機) >0
印表機 =substr(印表機 ,1,at (",",印表機)-1)
endif
else
印表機=getprint() &&必須有預設列表機
endif
If empt(m.印表機)
Retu .f.
Endif
jj=aprint(印表機陣列)
If m.jj=0
Retu .f.
Endif
If _vfp.Version<"7.0" &&6.0以下用戶
For ii=1 to m.jj
If UPPE(印表機陣列(M.ii,1))==uppe(m.印表機)
Exit
Endif
Next
行號=iif(m.ii>m.jj,0,m.ii)
Else
*行號=ascan(印表機陣列,m.印表機,1,0,0,9)
行號=ascan(印表機陣列,m.印表機,1,9)
Endif
If m.行號=0
Messageb("不可識別!",16,"錯誤")
Retu .f.
Endif
印表機=印表機陣列(m.行號,1)
埠 =印表機陣列(m.行號,2)
jj = DeviceCapabilities(m.印表機, m.埠, DC_PAPERS, 0, 0)
If m.jj<0
Retu .f.
Endif
紙張編號緩衝區 = SPACE((m.jj*2))
紙張名稱緩衝區 = SPACE((m.jj*64))
= DeviceCapabilities(m.印表機, m.埠, DC_PAPERS, @m.紙張編號緩衝區, 0)
= DeviceCapabilities(m.印表機, m.埠, DC_PAPERNAMES, @m.紙張名稱緩衝區, 0)
Dime 紙張類型陣列[m.jj, 2]
For ii = 1 TO m.jj
紙張類型陣列[m.ii, 2] = (ASC(SUBSTR(m.紙張編號緩衝區, (m.ii*2), 1))*256) +(ASC(SUBSTR(m.紙張編號緩衝區, (m.ii*2) - 1, 1)))
紙張類型陣列[m.ii, 1] = SUBSTR(m.紙張名稱緩衝區, ((m.ii - 1)*64) + 1, 64)
If LEFT(紙張類型陣列[m.ii, 1], 1) = "\"
紙張類型陣列[m.ii, 1]="\" + 紙張類型陣列[m.ii, 1]
Endif
If LEFT(紙張類型陣列[m.ii, 1],6)=="使用者" &&-定義大小 "
#Define DM_IN_BUFFER 8
#Define DM_OUT_BUFFER 2
Local hPrint,nSize,aDevMode
hPrinter = 0
nSize = 0
aDevMode = replicate(chr(0),122)
If OpenPrinter(m.印表機, @hPrinter, 0)>0
nSize = DocumentProperties(0, hPrinter, m.印表機, 0, 0, 0)
If nSize>0
aDevMode = replicate(chr(0),nSize)
nSize = DocumentProperties(0, hPrinter, m.印表機, @aDevMode, 0, DM_OUT_BUFFER)
Endif
Endif
印表機資料=subs(aDevMode,49,4)
自定義寬度=ASC(SUBS(M.印表機資料,3,1))+ASC(SUBS(M.印表機資料,4,1))*256
自定義長度=ASC(SUBS(M.印表機資料,1,1))+ASC(SUBS(M.印表機資料,2,1))*256
紙張類型陣列[m.ii, 1]="使用者定義大小 ("+STRT(LTRI(STR(m.自定義寬度/10,10,1)),".0")+" x "+STRT(LTRI(STR(m.自定義長度/10,10,1)),".0")+" mm)"
Endif
Next
Crea curs 印表機資訊 (紙張名稱 c(64),紙張編號 n(3))
Appe from arra 紙張類型陣列
Go top
if type ("t_size") # "L"
do while not eof()
if 紙張編號 =t_size
return 紙張名稱
endif
skip
enddo
endif
Local 最大紙張,最小紙張,最大長度毫米,最大寬度毫米,最小長度毫米,最小寬度毫米
最小紙張=DeviceCapabilities(m.印表機, m.埠, DC_MINEXTENT, 0, 0)
最大紙張=DeviceCapabilities(m.印表機, m.埠, DC_MAXEXTENT, 0, 0)
最大長度毫米=INT(M.最大紙張/65536)
最大寬度毫米=INT(MOD(M.最大紙張,65536))
最小長度毫米=INT(M.最小紙張/65536)
最小寬度毫米=INT(MOD(M.最小紙張,65536))
Brow titl "印表機: "+m.印表機+" 的資料, 紙張長度(mm):"+ltri(str(m.最小長度毫米))+"..."+ltri(str(m.最大長度毫米))+" 紙張寬度(mm):"+ltri(str(m.最小寬度毫米))+"..."+ltri(str(m.最大寬度毫米)) ;
fields 紙張名稱 :R:64, 紙張編號 :R:16 noappend nodelete
* titl "印表機: "+m.印表機+" 的資料, 紙張長度(mm):"+ltri(str(m.最小長度毫米))+"..."+ltri(str(m.最大長度毫米))+" 紙張寬度(mm):"+ltri(str(m.最小寬度毫米))+"..."+ltri(str(m.最大寬度毫米))
Retu
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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