在对数据库进行报表打印时,对长的数据如何进行换行如
 姓名  性别   说明
 刘邦  男     他是个最坏的人
              但同时他也是历
              史上很有成就的
              人
 刘备  男     三国
报表形式为表格形式请各位高手指教!!不胜感激

解决方案 »

  1.   

    用QRRichText1;
    procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    begin
      self.QRRichText1.Lines.Text:='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
    end;
      

  2.   

    从数据库中读数据的话,你用qrrichtext和qrlabel都试一下:用QRRichText1;
    procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    begin
      self.QRRichText1.Lines.Text:=adoquery.fieldbyname('fieldname').asstring;
    end;
    用qrlabel:
    procedure TForm1.QRLabel1Print(sender: TObject; var Value: String);
    begin
      Value:=adoquery.fieldbyname('fieldname').asstring;
    end;
    肯定至少有一个可以,我不方便试,你自己来吧。
      

  3.   

    关于qrrichtext,也许是我没有弄对,但是我不喜欢用他,因为有一个BUG:
        如果输入:fjdskljfdkslfjdkls飞机抗敌素浪费假大空,也许自动折行应该在‘敌’字的位置折行,可是由于richtext把后面所有的汉字认为是一个整体,所以他会在‘飞’字就开始折行。    我的办法是一个字符一个字符的算,当到了我要折行的长度时,判断是汉字还是字母,如果是汉字而且刚好是汉字的一半的话,就少折一个字符…………嘿嘿,有点麻烦的
      

  4.   

    修改一下DBTEXT的源码就可以搞定了。不过原理同上
      

  5.   

    用我的控件简单实现!http://www.csdn.net/cnshare/soft/15/15471.shtm