我有个很长很长的字段,我在报表打印时一行不能全部显示。我怎么才能让它分行分行显示。这个字段我用MEMO。不过我在QRPORT中找到QRMEMO它却没有DATASET这个选项。你说我该怎么办?

解决方案 »

  1.   

    procedure TForm2.QRDBText1Print(sender: TObject; var Value: String);
    {begin
    autochangerow(39,value);
    end;}
    var
     bExit : boolean;
     iLen : integer;
     strSource, strTemp : string;
    begin
     if Length(Value) <= 32 then
       exit;
     strSource := Value;
     Value := '';
     while true do
     begin
       iLen := 1;
       while iLen < 32 do
       begin
         if ord(strSource[iLen]) > 128 then
           inc(iLen, 2)
         else
           inc(iLen);
       end;
       dec(iLen);
       strTemp := Copy(strSource, 1, iLen);
       if Value = '' then
       Value := strTemp
       else
         Value := Value + #13 + strTemp;
       strSource := Copy(strSource, iLen + 1, Length(strSource) - iLen);
       if Length(strSource) <= 32 then
       begin
         Value := Value + #13 + strSource;
         exit;
       end;
     end;
    end;
    其中32是宽度,可以改
      

  2.   

    我试了。不好用啊。并且打印出来时,只能打出22个数据。我以前也编过这样的程序。能不能再换种思路。最后想问大家谁知道哪里能下载到Object Pascal的电子书?
      

  3.   

    字太多就把字体改小 ,还是在OnPrint事件中写。还有就是类似Label.wordwrap的属性设为True.