上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
vvchou36

註冊時間: 2004-07-15 文章: 16
第 1 樓
|
發表於: 星期四 八月 05, 2004 11:52 am 文章主題: 自訂報表的諸多問題 |
|
|
承蒙各位前輩的經驗傳承與指導我已會使用自訂報表ㄌ,謝謝大家!但至今初學的小妹尚有問題請教前輩
1.一定要將.frx自專案中移出另存在別的目錄ㄇ?(例如\report)如未移出而將報表檔包含在執行檔中,會有什ㄇ樣的情形?
2.小妹有一支程式一次印五種自訂格式報表(同紙張格式不同報表檔),我使用的程式是之前ICTANG前輩所提供的FUNCTION USEPRINT,需要每印一個報表就要下一次M.REPFORM=USERPRINT('C:\REPORT\XXX.FRX')ㄇ,還是只要設一次,之後的只要下REPORT FORM (M.REPFORM) NOCONSOLE TO PRINT PROMPT NOWAIT 就可以ㄌ ?
3.如何在程式中寫死要印出的紙張大小(我有多種自訂紙張)
承蒙回覆不勝感激,謝謝! |
|
回頂端 |
|
 |
goto-dream
註冊時間: 2004-05-11 文章: 909
第 2 樓
|
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 3 樓
|
發表於: 星期四 八月 05, 2004 12:52 pm 文章主題: |
|
|
2.ICTANG提供的程式 USERPRINT 傳回值是修改後的報表檔名, 所以只要須要改紙張你就要執行一次. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
vvchou36

註冊時間: 2004-07-15 文章: 16
第 4 樓
|
發表於: 星期五 八月 06, 2004 2:33 pm 文章主題: |
|
|
謝謝二位前輩的指導,所以如果紙張大小相同我只要設定一次就可以了是嗎?
但是我目前還有一個問題,如果我一次要印5個報表檔但是並非每一個檔案都有資料我除ㄌ設變數去判斷是否設定過印表機的紙張格式之外還有什麼更好的方法,我的寫法是
SELECT TEMP1
IF .NOT. EOF()
M.REPFORM=USERPRINT('C:\REPORT\AAA.FRX')
REPORT FORM (M.REFORM) NOCONSOLE TO PRINT PROMPT NOWAIT
ENDIF
SELECT TEMP2
IF .NOT. EOF()
M.REPFORM=USERPRINT('C:\REPORT\BBB.FRX')
REPORT FORM (M.REFORM) NOCONSOLE TO PRINT PROMPT NOWAIT
ENDIF
...
...
這樣的寫法會每印一種表單就出現一次印表機設定的畫面
承蒙回覆不勝感激,謝謝! |
|
回頂端 |
|
 |
hsiaoswj
註冊時間: 2003-08-30 文章: 1
第 5 樓
|
發表於: 星期五 八月 13, 2004 1:54 am 文章主題: |
|
|
我自己的徹底做法是利用程式 (ActiveX 控制項) 來改變 windows 系統印表機的屬性 (預設印表機、紙張方向、紙張大小、紙張長寬),這樣就能得到自己想要的輸出。(目前我在98與2000下測過是沒問題,但或許還有我沒考慮到的地方)
為避免改到原屬性,我先用一些vfp函數取得將會被我更改到的屬性後,再套用自訂印表屬性來列印,最後輸出完畢後再回復原系統印表機的屬性。
所以我並沒有額外儲存任何的 frx 檔 (直接照原vfp建議編入exe檔)。
不知這樣的做法是否可解決你的問題。 |
|
回頂端 |
|
 |
goto-dream
註冊時間: 2004-05-11 文章: 909
第 6 樓
|
|
回頂端 |
|
 |
|