上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
小桑•無痕

註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
第 1 樓
|
發表於: 星期四 一月 08, 2004 6:02 pm 文章主題: 關於 FoxPro 的報表 |
|
|
FoxPro 6.0 的報表是我最頭痛的,當初會找到這個網站,也是為了要解決報表問題。在這裡我看了大部分跟報表有關的文章,還是不能解決問題。
首先,我們都知道VFP的報表會記錄印表機的型號,所以在2年前,我用了一個方法解決(我發現這裡也有人這麼用),我把同一台印表機安裝成數台,分別命名「LETTER」、「A4」、「中一刀」、「標籤」、「4英吋」、「US」.....等等,我在我的電腦上會安裝和客戶一樣的印表機(很笨的方法),每次改報表前我會先更改印表機。
直到最近,我被一台網路印表機打敗,因為我們公司沒有同類型的 Printer Server(應該說是同名稱),我才發現VFP的報表還會記錄印表機的埠位置。
我用 USE AA.FRX,BROW
Expr 的內容:
DRIVER=winspool
DEVICE=EPSON EPL-6100L Advanced
OUTPUT=LPT:PSBDC9-1
ORIENTATION=0
PAPERSIZE=9
COPIES=1
DEFAULTSOURCE=261
我用 USE BB.FRX,BROW
Expr 的內容:
DRIVER=winspool
DEVICE=Kyocera FS-6700 (KPDL-2)
OUTPUT=LPT:191.1.82.228
ORIENTATION=1
PAPERSIZE=8
SCALE=100
ASCII=100
COPIES=1
DEFAULTSOURCE=15
PRINTQUALITY=600
COLOR=1
DUPLEX=1
YRESOLUTION=600
TTOPTION=3
COLLATE=0
哇勒,居然記錄在 OUTPUT,然後我的程式就會出現「載入印表機驅動程式時發生錯誤」。
唉,我們的報表跟程式是封裝在一起的,也就是說,作成執行檔後,只需COPY .EXE到客戶那就行了,所以無法再客戶那裡重新定義報表。
然後我的客戶要求說,他希望A印表機忙碌時,她可以選擇用B印表機印;這個要求聽起來很合理,做起來卻很難。
不知道有沒有什麼方式解決,另外,請問一下用 VFP 8.0的人,VFP 8.0在這方面是否有改善了,謝謝。
PS:我有試過 梅子 的
http://vfp.sunyear.com.tw/viewtopic.php?t=732 setprint
,還是不行,可能是我太笨了......
<< 正在大幅修改 VFP6.0 的列印方式 >>  |
|
回頂端 |
|
 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 2 樓
|
發表於: 星期四 一月 08, 2004 6:40 pm 文章主題: |
|
|
不要把報表包在一起就好了,我都是這樣子做的. _________________ #############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
學會VFP使用者社區的搜尋,Code才會更有趣~
############################# |
|
回頂端 |
|
 |
小桑•無痕

註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
第 3 樓
|
發表於: 星期五 一月 09, 2004 9:56 am 文章主題: |
|
|
謝謝 Ruey .....
因為公司的把執行檔放在 File Server,這樣在更新程式時只要更新一台就行了,所以改成報表不包在一起,還是會遇到相同的問題,除非把執行檔和報表改放在各台PC內,再到各台PC調整。不過,又會遇到另一個問題,因為我們的更新檔都是放在網站上,讓客戶下載更新(= =|||),所以也無法到各台PC調整。至於出門去更新報表,唉,客戶大都在很遠的地方,公司不會讓我們為了更新一張報表,而出去半天、一天甚至2天。唉,快發瘋了。  |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 4 樓
|
發表於: 星期五 一月 09, 2004 12:05 pm 文章主題: |
|
|
我們公司也是採用FILE SERVER的形式,不過也把報表獨立出來,目的也是為了WIN2000的報表問題,其實只要程式內指定報表路徑及名稱,例如與執行檔放一起,
用 SET DEFAULT 指定執行檔所在目錄,這樣開檔就沒啥問題,這種方式我覺得問題在共用性,當網路多人印表時,因為需要'修正'一下各Client印表機的狀況,就需要特別處理了.
更新時,也是直接MAIL 需要的報表格式給客戶,請他們放在'應該'放的位置,這樣反而節省不少因為報表須配合客戶印表機所額外多出來更新版本的動作 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
小桑•無痕

註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
第 5 樓
|
發表於: 星期五 一月 09, 2004 1:24 pm 文章主題: |
|
|
謝謝 syntech....
我現在正著手修改印表方式,只是不知道方法是否行得通。
1.建立LETTER.MOD、中一刀.MOD、A4.MOD、A3.MOD、標籤.MOD、US.MOD.....等印表模組(註一)。
2.報表的抬頭使用PUBLIC變數。
3.報表內容輸出至暫存檔。
4.列印前,系統複製1份暫存的印表模組(TEMP.MOD),將TEMP.MOD內印表機的資訊改成目前選擇的印表機資訊。
5.使用TEMP.MOD印出暫存檔的內容。
6.刪除TEMP.MOD及暫存檔。
註一:所謂的「印表模組」其實就是 .frx + .frt。
這種方法的優點是客戶可以自由選定印表機和紙張;但是若客戶選錯紙張,可能會造成印出不完整的報表的問題。
 |
|
回頂端 |
|
 |
小桑•無痕

註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
第 6 樓
|
發表於: 星期五 一月 09, 2004 1:28 pm 文章主題: |
|
|
承上
1.印表模組不和執行檔封裝在一起。
2.因為報表是透過印表模組輸出,所以沒有報表檔,新增或修改報表時,只需考慮紙張SIZE,不用考慮印表機。更新時,也只需更新執行檔。 |
|
回頂端 |
|
 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 7 樓
|
|
回頂端 |
|
 |
小桑•無痕

註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
第 8 樓
|
發表於: 星期二 一月 13, 2004 2:17 pm 文章主題: |
|
|
謝謝 Ruey....
我有寫出一個報表程式...
目前測試還算OK...報表可以自動適應使用者的紙張長度。
不過...在某一台電腦上執行會有問題(那台電腦執行FoxPro本來就不太正常,沒機會重灌)。
方法在使用上有點麻煩,在報表的抬頭和標題我都是使用公用變數,若沒事先定義好,報表就會出錯,我還在想辦法簡化中。  |
|
回頂端 |
|
 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 9 樓
|
發表於: 星期二 一月 13, 2004 7:57 pm 文章主題: |
|
|
報表的抬頭和標題我都是使用公用變數
在初始時給定空白字串即可.
不會執行時出錯. _________________ #############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
學會VFP使用者社區的搜尋,Code才會更有趣~
############################# |
|
回頂端 |
|
 |
小桑•無痕

註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
第 10 樓
|
發表於: 星期二 一月 13, 2004 10:18 pm 文章主題: |
|
|
嗯..有啊...我在程式的一開始就設定了...只是太多變數...不好解釋... |
|
回頂端 |
|
 |
michael8051
註冊時間: 2003-09-25 文章: 12
第 11 樓
|
發表於: 星期三 二月 11, 2004 3:27 pm 文章主題: |
|
|
請問一下哪裡有實作的範例可參考呢...
這樣比較好了解.........
不要將報表包入執行檔中..那該如何去執行報表呢....???
vfp菜鳥留.....  |
|
回頂端 |
|
 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 12 樓
|
發表於: 星期三 二月 11, 2004 4:53 pm 文章主題: |
|
|
1.這可用VFP所附的範例或是自己用精靈產生
然後報表不用加入專案中,或是不包含(Exclude)
2.
代碼: |
*!*請先確定有無報表資料
&&檢查報表是否存在
IF !FILE(mgSys_Reports+ALLTRIM(rptName)+".FRX")
MESSAGEBOX("選擇報表不存在!! ",0+64,"提示訊息")
RETURN
ENDIF
frmReportApp = CREATEOBJECT("Form")
WITH frmReportApp
.WINDOWSTATE = 2
.CAPTION = "PreView"
.VISIBLE = .T.
ENDWITH
rptCommand="REPORT FORM ["+ALLTRIM(rptName)+"] Preview window frmReportApp"
&rptCommand |
_________________ #############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
學會VFP使用者社區的搜尋,Code才會更有趣~
############################# |
|
回頂端 |
|
 |
michael8051
註冊時間: 2003-09-25 文章: 12
第 13 樓
|
發表於: 星期四 二月 12, 2004 10:09 am 文章主題: |
|
|
for ruey: 問個笨問題.......
可是我將報表從專案中移出...後..
將執行檔從新編譯......那些被移出的報表又被加入...專案中....
如何可以將它排除呢......
是否我該設定檔案路徑...那該怎麼設呢...
2.vfp的'飯粒'那找呀...我要安裝msdn嗎........
thank's |
|
回頂端 |
|
 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 14 樓
|
發表於: 星期四 二月 12, 2004 2:54 pm 文章主題: |
|
|
1.到要排除報表的位置-->滑鼠右鍵-->選不包含(Exclude)
2.範本程式產生
File-->New-->Wizard
接下來自己用 _________________ #############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
學會VFP使用者社區的搜尋,Code才會更有趣~
############################# |
|
回頂端 |
|
 |
michael8051
註冊時間: 2003-09-25 文章: 12
第 15 樓
|
發表於: 星期二 二月 17, 2004 10:15 am 文章主題: |
|
|
for ruey
謝謝你...............................
我已經知道如何把報表排出了...抱歉之前都搞錯你的意思了
但我用別台電腦(os 是 xp 名稱暫定為A電腦) 連線到server測試報表.....
從A電腦的本機印表機作報表輸出.........
紙張設定的部分還是會抓錯...
伺服器內容也有設相同名稱的紙張了...但還是...抓錯了...  |
|
回頂端 |
|
 |
|