fastreport乱码 (100分)

  • 主题发起人 主题发起人 yxjdelphi
  • 开始时间 开始时间
Y

yxjdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
打印报表时
 
2000的和98的完全不一样,甚至会报错,所以我用rx的
 
var
sTmp :TMemoryStream;
begin
if Query1.IsEmpty then
Exit;
sTmp := TMemoryStream.Create;
TBlobField(Query1.FieldByName('RtfTxt')).SaveToStream(sTmp);
// sTmp.Position := 0;
Form1.RichEdit1.Lines.LoadFromStream(sTmp);
sTmp.Free;
end;
 
to:kingdeezj
我的问题是报表出现乱码,你用fastreport出现过吗?
谢谢
 
换行乱码
主要改fr_class.pas中的wrapline过程,其中有一段:
else
if s[last] = ' ' then
OutLine(Copy(s, beg, last - beg)) else
OutLine(Copy(s, beg, last - beg + 1));//造成乱码的根本原因
改为
else
if s[last] = ' ' then
OutLine(Copy(s, beg, last - beg)) else
if ByteType(s,last) = mbLeadByte then
//判断是否是汉字字节
OutLine(Copy(s, beg, last - beg ))
else
OutLine(Copy(s, beg, last - beg + 1));
后面的
LoopPos := cur;
beg := last + 1;
last := beg;
要改为:
LoopPos := cur;
if ByteType(s,last) = mbLeadByte then

begin
beg := last ;
last := beg;
end
else
begin
beg := last + 1;
last := beg;
end;
 
哎,这个贴终于可以结了。
 
多人接受答案了。
 
后退
顶部