請問 QR 的 Detail 可否做自動換列呢? |
|
kant
一般會員 發表:18 回覆:32 積分:10 註冊:2002-06-08 發送簡訊給我 |
小弟是 QR 初學者.想請教各位先進.
在 QuickReports 的 Detial Bank 中.
DBText 如果因資料過長時, 可否做到自動換列到下一行,並自動加大列高成兩列.(正常為一列) 如果 DBText 使用 Word warp , 變成要 Detial 固定列高.
我想做的是自動調節列高, 省下不必要的空白.
該如何達成呢? qrdbtext屬性設定:
AutoSize:=False
AutoStretch:=True
WordWrap:=True Kant 發表人 - Kant 於 2002/07/09 09:18:16
------
Kant |
delphiwww
資深會員 發表:145 回覆:363 積分:368 註冊:2002-03-13 發送簡訊給我 |
|
gordon
一般會員 發表:0 回覆:3 積分:0 註冊:2002-03-22 發送簡訊給我 |
|
kant
一般會員 發表:18 回覆:32 積分:10 註冊:2002-06-08 發送簡訊給我 |
|
天外來客
初階會員 發表:22 回覆:199 積分:44 註冊:2001-11-27 發送簡訊給我 |
|
kant
一般會員 發表:18 回覆:32 積分:10 註冊:2002-06-08 發送簡訊給我 |
|
kulius
一般會員 發表:13 回覆:23 積分:17 註冊:2002-03-15 發送簡訊給我 |
呵。。樓上都說要寫程式了. 還不自己去找。
如下。這不是我寫的。
是從深度論談的高手寫的 // 判斷所截斷的字是否為中文
// instr : 要被截斷的字句
// cutlength : 截掉的Byte數
function TReportBase.TruncNonChiChar(instr: string;
cutlength: integer): string;
var
sCuted: string;
temp: string;
iCutLength: integer;
j: integer;
bIsDBCS: boolean;
begin
temp := '';
// 截出 _LengthPerLine 個字元出來
iCutLength := cutlength;
repeat
sCuted := Copy(instr, 1, iCutLength);
iCutLength := Length(sCuted);
bIsDBCS := False;
// 看看最後一個字元是不是中文的前半個字
for j := 1 to iCutLength do
begin
if bIsDBCS then
bIsDBCS := False
else
if Windows.IsDBCSLeadByte(byte(sCuted[j])) then
bIsDBCS := True;
end;
// 如果最後一個字是中文的話, 少截一個字元
if bIsDBCS then Dec(iCutLength);
temp := temp (Copy(instr, 1, iCutLength)) #13;
instr := Copy(instr, iCutLength 1, Length(instr) - iCutLength);
until Length(instr) <= 0;
TruncNonChiChar := temp; end;
|
kolin903
一般會員 發表:3 回覆:8 積分:2 註冊:2003-05-20 發送簡訊給我 |
引言: 呵。。樓上都說要寫程式了. 還不自己去找。 如下。這不是我寫的。 是從深度論談的高手寫的 // 判斷所截斷的字是否為中文 // instr : 要被截斷的字句 // cutlength : 截掉的Byte數 function TReportBase.TruncNonChiChar(instr: string; cutlength: integer): string; var sCuted: string; temp: string; iCutLength: integer; j: integer; bIsDBCS: boolean; begin temp := ''; // 截出 _LengthPerLine 個字元出來 iCutLength := cutlength; repeat sCuted := Copy(instr, 1, iCutLength); iCutLength := Length(sCuted); bIsDBCS := False; // 看看最後一個字元是不是中文的前半個字 for j := 1 to iCutLength do begin if bIsDBCS then bIsDBCS := False else if Windows.IsDBCSLeadByte(byte(sCuted[j])) then bIsDBCS := True; end; // 如果最後一個字是中文的話, 少截一個字元 if bIsDBCS then Dec(iCutLength); temp := temp (Copy(instr, 1, iCutLength)) #13; instr := Copy(instr, iCutLength 1, Length(instr) - iCutLength); until Length(instr) <= 0; TruncNonChiChar := temp; end;請問這段程式是要加在哪是要加在TQRDBText裡嗎 因為剛接觸程式不太董還請大大說明一下 |
qekhfn
一般會員 發表:8 回覆:9 積分:3 註冊:2003-06-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |