QReport 列印時,若一個欄位資料長度過長,該如何讓它自動換行呢 |
答題得分者是:cmj
|
Nelson Lo
一般會員 發表:35 回覆:87 積分:24 註冊:2003-04-04 發送簡訊給我 |
|
Nelson Lo
一般會員 發表:35 回覆:87 積分:24 註冊:2003-04-04 發送簡訊給我 |
|
Nelson Lo
一般會員 發表:35 回覆:87 積分:24 註冊:2003-04-04 發送簡訊給我 |
|
cmj
高階會員 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
|
niel
一般會員 發表:2 回覆:1 積分:0 註冊:2002-03-13 發送簡訊給我 |
|
Nelson Lo
一般會員 發表:35 回覆:87 積分:24 註冊:2003-04-04 發送簡訊給我 |
之前有一位kulius 大大有回答過
我把原文轉載在此 呵。。樓上都說要寫程式了. 還不自己去找。
如下。這不是我寫的。
是從深度論談的高手寫的 // 判斷所截斷的字是否為中文
// 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;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |