有關QR的Error |
答題得分者是:T.J.B
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
各位Delphi高手、先進:
目前小弟正開發一進銷存軟體,使用QR發生下列問題:
當進銷存軟體一啟動,若馬上開啟報表則會產生如下錯誤
但是若是先開啟表單再開啟報表則不會產生任何錯誤。
小弟呼叫報表是用以下語法:
QuickRep1.Prepare;
QRTotalPage.Caption := IntToStr(QuickRep1.QRPrinter.PageCount);
QuickRep1.PreviewModal
煩請各位Delphi高手、先進解惑!感激不盡!
------
~小弟淺見,參考看看~ |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: Project Iron.exe raised exception class Ewin32Error with message “Win32Error. Code: 1400.相互驗證失敗。在網域控制站的伺服器密碼已過期。”.Process stopped. Use Step or Run to continue.我找到原因,是我使用了以下的語法: QuickRep1.Prepare; QRLabel1.Caption := QuickRep1.QRPrinter.PageCount; QuickRep1.PreviewModal; 也就取得PageCount在搞怪,若純粹只是QuickRep1.PreviewModal;則不會有任何錯誤,一加上QuickRep1.Prepare;QRLabel1.Caption := QuickRep1.QRPrinter.PageCount;就會有不預期的產生錯誤,不知道K.Top的各位前輩、先進們是否有遇過相同的問題,麻煩指點一二,感激不盡!!
------
~小弟淺見,參考看看~ |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: Prepare盡量不要用...之前Try過會有問題... 一般我開報表都是這樣做的 Form2.Query1.Open;/QuickRep1的DataSet Form2.Query1.First; if not Form2.Query1.Eof then begin Form2.QuickRep1.Preview; Form2.QuickRep1.QRPrinter.Free; Form2.QuickRep1.QRPrinter := nil; end else SHOWMESSAGE('無資料!!!'); TRY TRY SEEchih兄: 為了符合客戶的要求,若一定要在每頁報表顯示"頁次/總頁次"除了使用QuickRep1.Prepare; QRTotalPage.Caption := IntToStr(QuickRep1.QRPrinter.PageCount); 還有其他的方法嗎?麻煩指點一二,感激不盡!!
------
~小弟淺見,參考看看~ |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: QRTotalPage.Caption := inttostr(xPage) '/'IntToStr(QuickRep1.QRPrinter.PageCount); 至於總頁次就可以用PageCount取得吧..chih兄: 這樣做的話,勢必要加上QuickRep1.Prepare才有辦法取得QuickRep1.QRPrinter.PageCount。根據chih兄之前的回覆"Prepare盡量不要用...之前Try過會有問題...",所以我的問題是,不要透過QuickRep1.QRPrinter.PageCount來取得總頁次,應該如何做?麻煩指點一二,感激不盡!! 發表人 - channel 於 2003/02/19 11:06:53
------
~小弟淺見,參考看看~ |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
引言: 各位Delphi高手、先進: 目前小弟正開發一進銷存軟體,使用QR發生下列問題: 當進銷存軟體一啟動,若馬上開啟報表則會產生如下錯誤 但是若是先開啟表單再開啟報表則不會產生任何錯誤。 小弟呼叫報表是用以下語法: QuickRep1.Prepare; QRTotalPage.Caption := IntToStr(QuickRep1.QRPrinter.PageCount); QuickRep1.PreviewModal 煩請各位Delphi高手、先進解惑!感激不盡!QuickRep1.Prepare; show; <---加這行 QRTotalPage.Caption := IntToStr(QuickRep1.QRPrinter.PageCount); QuickRep1.PreviewModal 如此即可 天行健 君子當自強不息~~@.@
------
天行健 君子當自強不息~~@.@ |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
參考一下
frmR0AllowType := TfrmR0AllowType.Create(Application); frmR0AllowType.QuickRep1.Prepare ; frmR0AllowType.Show; TotPages := frmR0AllowType.QuickRep1.QRPrinter.PageCount ; frmR0AllowType.QuickRep1.Preview ; frmR0AllowType.Release ;我在寫報表時 都是用上面的程式 都沒問題的 它是由frmR1AllowType 去 呼叫出 QuickRep1 的 owner (frmR0AllowType) 但是此段程式是寫在frmR1AllowType 的地方 要加frmR0AllowType.Show;的原因是 當frmR0AllowType一開始create出來時 只是把記憶體分配給frmR0AllowType 但是實體尚未建立 而你就去做 QRTotalPage.Caption := IntToStr(QuickRep1.QRPrinter.PageCount); 的動作 但是QuickRep1的owner (frmR0AllowType) 還未產生實體出來 所以當然QuickRep1.QRPrinter.PageCount 會有問題 你不是說 當進銷存軟體一啟動,若馬上開啟報表則會產生如下錯誤 但是若是先開啟表單再開啟報表則不會產生任何錯誤 就是這個問題 不過 只有當你是跟我一樣的做法 (由form1 去呼叫 QuickRep1所在的form2) 才會是這個問題 我是假設你的做法跟我一樣而且也是有用 with..do的做法(把form2提出來) 故只要加show就可以了 ㄏㄏㄏ 說的亂七八糟的 不知道你懂不懂 有問題再討論吧 天行健 君子當自強不息~~@.@
------
天行健 君子當自強不息~~@.@ |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |