用QRDBText显示一个字段,后端数据库为SYBASE,该字段为VARCHAR(255),
现在需要折行显示,我将 AutoSize := False; AutoStretch := True;
WordWrap := True; 但还是只显示一行;多余的字符不显示将AutoSize := TRUE 也不行;用QRDBRichText也不行; -- 该字段非TMemoField, 不显示;
用QRRichText也不行; QRRichText.lines.Add(ss); 如果字符串SS的内容较多,则
报内存错!????如何解决

解决方案 »

  1.   

    不行的,我也遇到了这样的问题。如果连接到一个字段更是不行要不你这样看看,要在程序中写,
    QRDBText.text:='sssss'+回车键+'ffffff'
      

  2.   

    用memo把
    把读出的字符放倒memo中
      

  3.   

    onGetText 里面自己點東西試試。
      

  4.   

    fancier(OP&&C/C++)你可以参考
    http://expert.csdn.net/Expert/topic/1314/1314396.xml?temp=.6958734
    http://expert.csdn.net/Expert/topic/1351/1351063.xml?temp=.9529535
    http://expert.csdn.net/Expert/topic/1265/1265250.xml?temp=.2919428
    http://expert.csdn.net/Expert/topic/1302/1302834.xml?temp=.9411737
    http://expert.csdn.net/Expert/topic/1282/1282681.xml?temp=.8808863不过,我自己试过TQRDBText(已经修改了里面QRCtrls单元中的AddWord过程)、QRmemo都不能解决自动换行的问题。
    我自己的解决方法如下:
    1.在需要显示换行的字段的地方用TQRMemo替代TQRDBText,并调整好TQRMemo的长度和宽度(显示字段的最大范围);
    2.在报表所在的Form上放一个TMemo控件,由它来负责解决换行问题,在TQRMemo所在的band的BeforePrint事件中写代码,具体如下
    var
      i: integer;
    begin
      memo1.lines.clear;
      TQRMemo.lines.clear;
      memo1.width:= TQRMemo.Width;
     memo1.lines.text:= ADODataSet1.FieldByName('字段名').AsString;
      for i:= 0 to memo1.lines.Count - 1 do
        QRMemo.lines.Add(memo1.lines.strings[i]);
    end;
    只要在需要的地方依上面的方法处理就行。
      

  5.   

    如果你使用的是delphi5,那么请使用qrlabel或其他控件实现。
    如果是delphi6,
    将QRDBTEXT的属性
    autosize := False;
    autostretch := true;
    wordwrap := true;
    是可以实现自动换行的
    delphi6+win2000+oracle实验通过。