View Single Post
  #1   Spotlight this post!  
Unread 22-01-2011, 09:49
max_22 max_22 is offline
Registered User
no team
 
Join Date: Jan 2011
Location: russia
Posts: 1
max_22 is an unknown quantity at this point
Question Delphi DBGrid and Tchart

hi!I have a problem. There's the Access database embedded into dbrid using ADO.
In db there is a list of goods,quantity and countries where goods were produced

Now I have to build a diagram for db, for example for countries.

It works quite well but the diagram shows EVERY good, writes a country name and makes a column for each good.

I wonder if there's a way to make one column for each country.
Code:
procedure TForm4.BitBtn1Click(Sender: TObject);
var
m: array of string;
  bb: array of integer;
  I: integer;

begin
chart1.show;
  Chart1.Series[0].Clear;
   SetLength(m, Form2.adotable1.RecordCount);     // changes mas size
   SetLength(bb, Form2.adotable1.RecordCount);
   I := 0;
  while not  Form2.adotable1.Eof do
  begin
    if Form2.adotable1.FieldByName('country').AsString <> '' then
    begin
      m[i] := Form2.adotable1.FieldByName('country').AsString;
      bb[i] := 0;
      I := I + 1;
    end;
     form2.adotable1.Next;
  end;
  Form2.adotable1.First;
  I := 0;
  Form2.adotable1.First;
  while not Form2.adotable1.Eof do
  begin
    for I := 0 to length(m)-1 do   
      if m[i] = Form2.adotable1.FieldByName
        (Form2.DBGrid1.Columns.Items[4].DisplayName).AsString then
        bb[i] := bb[i] + Form2.adotable1.FieldByName
          (Form2.DBGrid1.Columns.Items[6].DisplayName).AsInteger;
    Form2.adotable1.Next;
  end;
  Form2.adotable1.First;
  for I := 0 to length(m)-1 do
    if m[i] <> '' then
    begin
      Chart1.Series[0].Add(bb[i], m[i], clTeeColor);
end;
end;
Here is the image of my diagram.

Will be grateful for any help!