在dbgrid 中如何把一个记录的一个字段分多行显示

解决方案 »

  1.   

    真的很难,我以为自带的DBGrid办不到。
      

  2.   

    这个问题你可以通过改变表的结构来解决,西方的报表一般都是二维表,中国的多是极其复杂的,excel 97才解决了中国表格斜线的问题。实践表明,绝大部分表都可以变为二维表的。
      

  3.   

    谢谢。问题我已解决了。下面是代码:
    procedure TDBGrid.DrawColumnCell(const Rect: TRect; DataCol: Integer;Column: TColumn; State: TGridDrawState);
    var
      R : TRect;
    begin
    If Assigned(DataSource) And Assigned(DataSource.DataSet) And DataSource.DataSet.Active Then Begin
        If Assigned(Column.Field) Then Begin
          If (Column.Field.DataType=ftMemo) Then Begin
            If FDrawMemo<>gedmNo Then Begin
              R:=Rect;
              Canvas.FillRect(R);
              Inc(R.Top,2);
              Inc(R.Left,2);
              DrawText(Canvas.Handle, PChar(Column.Field.AsString),
                         Length(Column.Field.AsString), R,
                         DT_WORDBREAK OR DT_NOPREFIX);
            End
           End
    end;