線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1541
推到 Plurk!
推到 Facebook!

Quick Report預覽錯誤後無法重新打開

答題得分者是:bestlong
Reiji
初階會員


發表:30
回覆:57
積分:32
註冊:2008-06-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-08-02 11:47:26 IP:61.219.xxx.xxx 訂閱
 小弟遇上一個問題,搜尋了老久,不曉得是不是關鍵字有問題,總搜尋不到解決方法,上來問問各位前輩是否有處理過類似的問題

小弟用以下程式來判斷報表預覽發生問題

[code delphi]
try
QuickRep1.Prepare;
QuickRep1.Preview;
except
showmessage('格式不符');
end;
[/code]

先來說說這支程式流程
首先由使用者輸入一串英數字,再由Barcode元件在QRImage上繪出
而條碼種類並不限定一種,這是要由使用者自由選擇的

但問題來了,當選擇錯誤的種類時,在Prepare時就會出現問題
例如不支援英文字的條碼種類加上使用者輸入英數字混合內容時
所以在Prepare時小弟會加上一個判斷,如果有問題就警告格式不對
讓使用者重新選擇條碼格式
然而重新選擇後,再執行到Prepare就發生了一個問題,那就是沒有任何動作
小弟研判是Prepare問題發生後QuickReport的某個設定值變更,造成某階段判斷結果直接跳出
因為如果一開始就選對格式是可以直接列印出報表來
所以我想問的是,在except裡,小弟應該要如何讓QuickReport回到預設值?
就像是剛開啟程式時那樣的設定?
------
永遠都是新手
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-08-03 11:54:08 IP:210.242.xxx.xxx 訂閱
可以用動態產生的方法

QuickRep1 := TQuickRep1.Create(self);
try
try
QuickRep1.Prepare;
QuickRep1.Preview;
except
showmessage('格式不符');
end;
finally
QuickRep1.Free;
end;

------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
Reiji
初階會員


發表:30
回覆:57
積分:32
註冊:2008-06-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-08-04 09:00:22 IP:61.219.xxx.xxx 訂閱
 因為整個報表設計超級複雜,要用動態建立實在是個不小的工程
------
永遠都是新手
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-08-04 10:40:12 IP:210.242.xxx.xxx 訂閱
可以討論一下你說的超級複雜是怎樣的狀況
是產生列印資料?還是報表內計算的?
如果你的程式已經具規模, 報表改用動態可以省一些記憶體有較好的效率
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
Reiji
初階會員


發表:30
回覆:57
積分:32
註冊:2008-06-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-08-04 16:20:24 IP:61.219.xxx.xxx 訂閱
這個報表對我來說很複雜
因為它有因使用者選擇而不同的中二刀設定、barcode繪圖設定、印表機設定、文字和圖像位置大小等
動態是個解決方法,但是要修改大概勢必要經過一番修改

好吧!其實是我很懶
我也正在嘗試動態,結果被判斷什麼的弄得眼睛快花了

------
永遠都是新手
系統時間:2024-04-26 5:31:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!