DevExpress QuantumGrid의 footer에 내용을 그리거나 입력하기.

퀀텀을 사용하다보면  Footer에 값을 넣거나 또는 Footer의 내용을 내가 원하는 대로 그려야할 필요가 있습니다.
이런경우 아래와 같이 사용합니다.

직접 그리는 경우

procedure TFRM_Main.cxGrid3DBTableView1CustomDrawFooterCell(
  Sender: TcxGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean);
begin
  if AViewInfo.Index = 2 then // <-- 요값은 헤더의 위치를 나타냅니다.
                              // footer의 위치가 아님..
  begin
    ADone := True;
    ACanvas.FillRect( AViewInfo.Bounds, ACanvas.Brush.Color );
    ACanvas.DrawTexT( '몰라', AViewInfo.Bounds, cxAlignCenter );
  end;

end;

계산이 모두 끝나고 마지막에 Footerd에 값을 직접 넣거나 빼오려는 경우 아래 방법을 사용합니다.

procedure TForm1.cxGrid1DBTableView1DataControllerSummaryAfterSummary(
  ASender: TcxDataSummary);
var
  I: Integer;
begin

  cxGrid1DBTableView1.DataController.Summary.FooterSummaryValues[0] := '합계';

  for i := 0 to   cxGrid1DBTableView1.DataController.DataControllerInfo.DataGroups.Count - 1 do
  begin
   cxGrid1DBTableView1.DataController.Summary.GroupSummaryValues[i, 0 ] := '소계' + Inttostr( i );
   cxGrid1DBTableView1.DataController.Summary.GroupSummaryValues[i, 1 ] := '소계2' + Inttostr( i );
  end;

end;

 

Author: yyjksw