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

請問依各quickreport的問題(關於QRShape)

尚未結案
kolin903
一般會員


發表:3
回覆:8
積分:2
註冊:2003-05-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-31 08:02:45 IP:61.222.xxx.xxx 未訂閱
想請問一下我於subdetail中用QRShape這個元件畫了依各垂直線 我現在希望這條垂直線的高度會隨者subdetail的高度變化 請問這樣寫對嗎 QRShape.Height :=QRSubDetail.Height 如果這樣寫是對的請問要把他加在哪才會使線的長短變動 我原來是加在subDetail的裡面但是一點作用都沒有還 請各位前輩能夠指點一下
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-31 17:56:39 IP:61.216.xxx.xxx 未訂閱
QRSubDetailBeforePrint裡面,TOP設為0,Width=1 發表人 - chih 於 2003/05/31 17:57:33
kolin903
一般會員


發表:3
回覆:8
積分:2
註冊:2003-05-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-01 00:06:35 IP:61.64.xxx.xxx 未訂閱
引言: QRSubDetailBeforePrint裡面,TOP設為0,Width=1 發表人 - chih 於 2003/05/31 17:57:33
您好 我是這樣寫的 QRShape1.TOP :=0; QRShape1.width:=1; QRShape1.Height:=QRSubDetail1.Height; 但是我在 preview看時還市一點作用都沒有 是否是在列印時才會有效果能還請大大能夠幫忙告知一下
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-01 02:05:47 IP:211.76.xxx.xxx 未訂閱
preview看到只是參考,應該以列印出來結果為準.
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-01 12:53:36 IP:61.216.xxx.xxx 未訂閱
as cmj Sir說的preview看到只是參考,應該以列印出來結果為準. 不知道你有沒有實際印看看,不過我在測試的結果preview時就有看到QRShape1顯示了,如果你印出來還是不行,請把程式上傳到求助區幫你看是否有地方沒設定好吧.
引言: 您好 我是這樣寫的 QRShape1.TOP :=0; QRShape1.width:=1; QRShape1.Height:=QRSubDetail1.Height; 但是我在 preview看時還市一點作用都沒有 是否是在列印時才會有效果能還請大大能夠幫忙告知一下
發表人 - chih 於 2003/06/01 12:54:22
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-01 13:17:43 IP:218.16.xxx.xxx 未訂閱
QRShape1.Height:=QRSubDetail1.Height; 沒用是因為在 beforeprint 時 QReport 還沒有最後修訂 Band 的 Height,原因是你還可以修改Band 裡的內容。 最後修訂 Band.Height 是發生在 BeforePrint 之後但那時你已不能定 QRShape1 的 Height 了 我的經驗是若你想畫會隨著 AutoStretch 元件變高的垂直線,最好就是直接使用該元件的 Frame,因為 QReport 會在BeforePrint 後調整該元件高度時調整 Frame 那些線 若你真的不能直接使用該元件的 Frame ,可使用獨立的 QRLabel 設定 autoStretch 是 True, 使用合用的 Frame, 設定 Transpernt True,在 BeforePrint 時似最多行的元件的行數搜入空行到該 QRLabel,這樣比較煩但能達到伸繽長度。
kolin903
一般會員


發表:3
回覆:8
積分:2
註冊:2003-05-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-02 08:49:32 IP:61.222.xxx.xxx 未訂閱
我的程式是這樣寫的,這邊是用QRLabel但我不知道要如何蒐入DetailBand的空行 procedure TDEV_PRINT_FORM.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin QRLabel77.Top:=0 ; QRLabel77.Width:=1; QRLabel77.Height:= DetailBand1.Height ; end; 而這邊我適用QRShape.Height 來作依樣沒有反應 procedure TDEV_PRINT_FORM.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin QRShape.Height .Top:=0 ; QRShape.Height .Width:=1; QRShape.Height .Height:= DetailBand1.Height ; end; 不知道是哪寫錯了還請前輩們幫忙一下
kolin903
一般會員


發表:3
回覆:8
積分:2
註冊:2003-05-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-02 08:49:41 IP:61.222.xxx.xxx 未訂閱
我的程式是這樣寫的,這邊是用QRLabel但我不知道要如何蒐入DetailBand的空行 procedure TDEV_PRINT_FORM.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin QRLabel77.Top:=0 ; QRLabel77.Width:=1; QRLabel77.Height:= DetailBand1.Height ; end; 而這邊我適用QRShape.Height 來作依樣沒有反應 procedure TDEV_PRINT_FORM.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin QRShape.Height .Top:=0 ; QRShape.Height .Width:=1; QRShape.Height .Height:= DetailBand1.Height ; end; 不知道是哪寫錯了還請前輩們幫忙一下
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-02 09:07:24 IP:211.74.xxx.xxx 未訂閱
如果你紅色部分是筆誤的話,應該是這樣 QRShape.Top:=0; QRShape.Width:=1; QRShape.Height:= DetailBand1.Height; 另外這裡我做了一個範例 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31559 preview 跟Print都正常的,參考看看
引言: . . 而這邊我適用QRShape.Height 來作依樣沒有反應 procedure TDEV_PRINT_FORM.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin QRShape.Height .Top:=0 ; QRShape.Height .Width:=1; QRShape.Height .Height:= DetailBand1.Height ; end; 不知道是哪寫錯了還請前輩們幫忙一下
發表人 - chih 於 2003/06/02 09:50:49
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-06-02 10:19:48 IP:218.16.xxx.xxx 未訂閱
我己經說了, DetailBand1.Height 在 BeforePrint 時是未經調整的,所以你這樣設一樣沒用 請問你會改變高度的元件叫甚麼名字和是甚麼元件? TQRDBMemo?
kolin903
一般會員


發表:3
回覆:8
積分:2
註冊:2003-05-20

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-06-02 11:32:27 IP:61.222.xxx.xxx 未訂閱
引言: 我己經說了, DetailBand1.Height 在 BeforePrint 時是未經調整的,所以你這樣設一樣沒用 請問你會改變高度的元件叫甚麼名字和是甚麼元件? TQRDBMemo?
您好我用的元件是QRRichText1
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-06-02 12:54:02 IP:211.74.xxx.xxx 未訂閱
hi..kolin903 1.不知道你有沒有執行過我上面的範例,QRShape1設計時期left是364,我在DetailBand1BeforePrint將left改變為0,事實上也是可行的 2.你原先問題是有關QRShape,怎麼到現在變成了QRRichText1ㄋ??
引言: 您好我用的元件是QRRichText1
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-06-02 13:07:26 IP:218.16.xxx.xxx 未訂閱
QRRichText 比較難攪,因為內裡的字體可能改變沒固定行高,若是 Label / Memo 就比較好處理因為行高固定可以在 Beforeprint 即時檢查該元件會用來少行然後設定同樣空行給獨立的 TQRLabel / TQRMemo TQRRichText 的話你可試試 1. Copy 原本的 RichText 元件 2. 新的這個設定 Frame 來劃線 3. 字體設白色(或你的底色)放好位置 4. 右按該元件->Control->Send To Back 使之放到最下便不會擋著其他元件 若Load Data 要分別 Load 給兩個元件,這樣這條線便會與原本的 RichText 同樣高了 不過,若 RichEdit 裡有自訂文字顏免的話便不成了,這我也沒想到其他辦法。 Chih 兄, 你的範例是固定欄高的,kolin903 要求的是變化欄高的,問題就是TQRRichText AutoStretch 時線沒跟著變高,若你有好辦法可否加進範例中,謝謝。
kolin903
一般會員


發表:3
回覆:8
積分:2
註冊:2003-05-20

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-06-02 13:23:03 IP:61.222.xxx.xxx 未訂閱
引言: hi..kolin903 1.不知道你有沒有執行過我上面的範例,QRShape1設計時期left是364,我在DetailBand1BeforePrint將left改變為0,事實上也是可行的 2.你原先問題是有關QRShape,怎麼到現在變成了QRRichText1ㄋ??[quote] 您好我用的元件是QRRichText1
chin前輩你可能有點誤會我的意思了 我現在把我的東西POST上來你看一下吧 這張是我還沒有執行pieview時的狀況;在業務部旁的那條線是用QRShap畫的 下面這張是我pieview後的畫面 那條QRShap的線並沒辦法因QRRichText的內容增加而加長因此造成了一段空白部分而我之前照了前輩的方法試了但他都沒作用 可能是我之前沒把問題敘述清楚造成了大大們的誤解深感抱歉
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-06-03 07:57:03 IP:211.74.xxx.xxx 未訂閱
hi..kolin903.. 你貼上來的圖有點不清楚,可以把第一張圖再放清晰點嗎?因為看不到業務部所對應的band是什麼.
kolin903
一般會員


發表:3
回覆:8
積分:2
註冊:2003-05-20

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-06-03 10:06:09 IP:61.222.xxx.xxx 未訂閱
引言: hi..kolin903.. 你貼上來的圖有點不清楚,可以把第一張圖再放清晰點嗎?因為看不到業務部所對應的band是什麼.
chih大大那個band是Detailband其它的都是sub detail 我發現用大大的方法是會增長的但是只會增長到 detailband變動前的長度所以我用了一個奇怪的作法 procedure TDEV_PRINT_FORM.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin QRShape2.Top:=0 ; QRShape2.Width:=1; QRShape2.Height:= DetailBand1.Height 400; 我想不會變動到最後的長度就是如Justmade大所說的因為在 beforeprint 時 QReport 還沒有最後修訂 Band 的 Height,原因是你還可以修改Band 裡的內容。最後修訂 Band.Height 是發生在 BeforePrint 之後但那時你已不能定 QRShape1 的 Height 了 所以我自行加了長度但我覺的這個方法一定會有問題因為有的地方 不會要那麼長會出現超出表格的情況 還有這樣寫在sub detail時也會出現下面的情況 [Error] UDEV_PRINT.pas(394): Undeclared identifier: 'QRSubDetail3' [Error] UDEV_PRINT.pas(394): Missing operator or semicolon [Fatal Error] DEV_PRINT.dpr(6): Could not compile used unit 'UDEV_PRINT.pas' 還請大大們能夠指點一下錯誤謝謝
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-06-03 10:24:06 IP:211.74.xxx.xxx 未訂閱
hi..kolin903.. 請你將我上面貼的範例執行一下看看,我做了一點修正,在DetailBand1Before前去變動band的高度及QRShape的高度,事實上是可行的,另外你的錯誤訊息你要看一下是不是沒有QRSubDetail3這個Band TRY TRY SEE
系統時間:2024-05-07 9:52:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!