-------------------------------------------------
|  车型    |  地区   |   数量   |   金额   |
-------------------------------------------------
|  普通客运|  铁东   |   3      |   300    |
           --------------------------------------
           |  铁西   |   2      |   400    |             //这一行不必再显示"普通客运"
           --------------------------------------
           |  立山   |   1      |   500    |             //这一行不必再显示"普通客运"
-------------------------------------------------
|  大型客运|  铁东   |   5      |   200    |
           --------------------------------------
           |  立山   |   6      |   100    |             //这一行不必再显示"大型客运"
-------------------------------------------------
//就是按车型和地区分组统计出来的结果,当车型一样时,自动累计为同一组数据,而且统计分组的条件
//是可以让客户自己组成的,如果用DBGridEh的话,每一行都显示相同的车型字段,能不能让他相同分组
//的字段只显示一个???
//不用DBGridEh也可以,有没有什么办法??谢谢了

解决方案 »

  1.   

    用stringgrid强制  抹掉将需合并单元格中间的线盖住就可以了例子:
    合并第三行第二、三两格
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
      if(ARow = 2) and (ACol = 2) then
      begin
        Rect.Left := Rect.Left -2;  end;
      if(ARow = 2) and (ACol = 1) then
      begin
        Rect.Right := Rect.Right + 2;  end;
      StringGrid1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]) ;
    end;
      

  2.   

    或者看看这里的例子:很简单
    maste /detail  等
    C:\Program Files\Borland\Delphi7\Demos\Quickrpt\Qr3
      

  3.   

    我有一同事用API画过类似的表格~~他或许能画出来,我不行~
    可惜,他不来CSDN~~
      

  4.   

    哎,这就是DELPHI要命的地方,要是用PB,小KISS啦
      

  5.   

    这个用DEVExpress控件TCxGrid完全可以做出来,而且不用任何代码,只是行上有点差距,他是把组(列值)单独一行的,
    你下一个看看DEMO