home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / Delphi / TeeChartPro / TeeChart5Delphi5Eval.exe / %MAINDIR% / Examples / Features / DBChart_CrossTab.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-09-10  |  2.3 KB  |  98 lines

  1. {******************************************}
  2. {    TeeChart. DBChart CrossTabs           }
  3. { Copyright (c) 1995-2000 by David Berneda }
  4. {    All Rights Reserved                   }
  5. {******************************************}
  6. unit DBChart_CrossTab;
  7.  
  8. interface
  9.  
  10. uses
  11.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  12.   TeeProcs, TeEngine, Chart, ExtCtrls, DBCtrls, Grids, DBGrids, Db,
  13.   DBTables, Series, StdCtrls, Buttons;
  14.  
  15. type
  16.   TDBChartCrossTab = class(TForm)
  17.     DataSource1: TDataSource;
  18.     Chart1: TChart;
  19.     Series1: TBarSeries;
  20.     Table1: TTable;
  21.     Table1OrderNo: TFloatField;
  22.     Table1ShipVIA: TStringField;
  23.     Table1Terms: TStringField;
  24.     Table1AmountPaid: TCurrencyField;
  25.     Panel1: TPanel;
  26.     DBGrid1: TDBGrid;
  27.     Panel2: TPanel;
  28.     DBNavigator1: TDBNavigator;
  29.     RadioGroup1: TRadioGroup;
  30.     Button1: TButton;
  31.     CheckBox1: TCheckBox;
  32.     procedure RadioGroup1Click(Sender: TObject);
  33.     procedure FormCreate(Sender: TObject);
  34.     procedure Button1Click(Sender: TObject);
  35.     procedure CheckBox1Click(Sender: TObject);
  36.   private
  37.     { Private declarations }
  38.     Dimension1 : String;
  39.     Dimension2 : String;
  40.     Procedure CrossTab;
  41.   public
  42.     { Public declarations }
  43.   end;
  44.  
  45. implementation
  46.  
  47. {$R *.DFM}
  48.  
  49. { Include the TeeCross unit }
  50.  
  51. uses TeeCross, Base_DBChart;
  52.  
  53. { refresh the Chart showing the "sum" or the "count"... }
  54. procedure TDBChartCrossTab.RadioGroup1Click(Sender: TObject);
  55. begin
  56.   CrossTab;
  57. end;
  58.  
  59. procedure TDBChartCrossTab.FormCreate(Sender: TObject);
  60. begin
  61.   CheckTable(Table1);
  62.  
  63.   Dimension1:='Terms';
  64.   Dimension2:='ShipVia';
  65. end;
  66.  
  67. { swap the cross-tab fields and refresh... }
  68. procedure TDBChartCrossTab.Button1Click(Sender: TObject);
  69. var tmp : String;
  70. begin
  71.   tmp        := Dimension1;
  72.   Dimension1 := Dimension2;
  73.   Dimension2 := tmp;
  74.  
  75.   CrossTab;
  76. end;
  77.  
  78. Procedure TDBChartCrossTab.CrossTab;
  79. var Summary : TGroupFormula;
  80. begin
  81.   if RadioGroup1.ItemIndex=0 then Summary:=gfCount
  82.                              else Summary:=gfSum;
  83.  
  84.   FillDataSet(Table1,Series1,Dimension1,Dimension2,'AmountPaid',Summary);
  85. end;
  86.  
  87. procedure TDBChartCrossTab.CheckBox1Click(Sender: TObject);
  88. begin
  89.   Table1.Open;
  90.   RadioGroup1.Enabled:=True;
  91.   Button1.Enabled:=True;
  92.   CrossTab;
  93. end;
  94.  
  95. initialization
  96.   RegisterClass(TDBChartCrossTab);
  97. end.
  98.