请问如何使在quickrep的qrdbtext内的中文字自动转行? |
尚未結案
|
jtp
初階會員 發表:39 回覆:81 積分:29 註冊:2003-04-20 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
jtp
初階會員 發表:39 回覆:81 積分:29 註冊:2003-04-20 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
jtp
初階會員 發表:39 回覆:81 積分:29 註冊:2003-04-20 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: 我試出來了,不過仍有部分缺陷
程式碼如下:
procedure TForm1.QRDBText4Print(sender: TObject; var Value: String); VAR I : Integer; OriStr : Array[0..1000] OF Char; V_Chinese : Boolean; begin IF Not (Sender AS TQRDBText).AutoSize THEN BEGIN StrPCopy(OriStr,Value); V_Chinese := False; FOR I := 0 TO Length(Value) - 1 DO BEGIN IF ORD(OriStr[I]) > 127 THEN BEGIN V_Chinese := True; Break; END; END; IF V_Chinese THEN Value := ApartString(Value,10) ELSE Value := Value; END; end; function TForm1.ApartString(InStr : String ;MaxLen : Integer) : String; var P: Integer; S,L : String; OriStr : Array[0..1000] OF Char; OutStr : String; begin P := 0; L := ''; OutStr := ''; StrPCopy(OriStr,InStr); WHILE P <= Length(InStr) - 1 DO BEGIN IF ORD(OriStr[P]) > 127 THEN BEGIN S := Copy(OriStr,P 1,2); Inc(p) END ELSE BEGIN S := Copy(OriStr,P 1,1); END; Inc(p); IF Length(L S) > MaxLen Then BEGIN OutStr := OutStr L #13; L := S; END ELSE BEGIN L := L S; END; END; OutStr := OutStr L; ApartString := OutStr; end;在 TQRDBText 的 OnPrint 事件中重組字串, Function ApartString 主要功能為將列印之字串加入 Enter 強迫 QuickReport 作換行動作,MaxLen 為設定最大可列印之 byte 數,除以 2 即可得到中文字數,若該值可由 TQRDBText 的 Width 與 Font 等相關設定自動算出,那就更完美了,待找到相關資料再行補上,不知到有沒有人知道? -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: 試出了一個更簡單的方法:
1.拉一個 TQRRichText
2.在該 TQRRichText 的 band 的 BeforePrint 事件中,加入以下以下程式碼
procedure TForm1.QRBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin QRRichText1.Lines.Clear; QRRichText1.Lines.Add(Query1.FieldByName(欄位名稱).AsString); end;這樣就行啦,試試看 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |