procedure TFormPartsTree.FormShow(Sender: TObject);
Var RegAnt,Registers:Integer;
found:boolean;
begin
// Define the dataset fields
BufDataset1.FieldDefs.Clear;
BufDataset1.FieldDefs.Add('cateid', ftInteger);
BufDataset1.FieldDefs.Add('itemID', ftInteger);
BufDataset1.FieldDefs.Add('category', ftString, 10);
BufDataset1.FieldDefs.Add('masterpno', ftString, 50);
BufDataset1.FieldDefs.Add('partnumber', ftString, 50);
BufDataset1.FieldDefs.Add('ItemName', ftString, 200);
BufDataset1.FieldDefs.Add('ItemDescription', ftString, 200);
BufDataset1.FieldDefs.Add('Type', ftString, 20);
BufDataset1.FieldDefs.Add('Rev', ftString, 20);
// Create the dataset
BufDataset1.CreateDataset;
// BufDataset1CreateDataset;
// BufDataset1Open;
osql:=DMSQL.SQLQParts.SQL.Text;
if( DMSQL.SQLQParts.Active=true) then begin
DMSQL.SQLQParts.close;
end;
// DMSQL.SQLQParts.SQL.Text:='select * from stockparts order by category' ;
// DMSQL.SQLQParts.open;
// Add from mysql table to dataset memory
DMSQL.SQLQCate.Open;
// Registers:=0;
while( not DMSQL.SQLQCate.eof) do begin
BufDataset1.Append;
BufDataset1.FieldByName('cateid').AsInteger := DMSQL.SQLQCate.FieldByName('ID').AsInteger;
BufDataset1.FieldByName('itemid').AsInteger := 0;
BufDataset1.FieldByName('category').AsString := DMSQL.SQLQCate.FieldByName('cateid').AsString;
BufDataset1.Post;
regAnt:= BufDataset1.RecNo;
DMSQL.SQLQParts.SQL.Text:='select * from stockparts where category=:pCateid' ;
DMSQL.SQLQParts.ParamByName('pcateid').AsString:= DMSQL.SQLQCate.FieldByName('cateid').AsString;
DMSQL.SQLQParts.open;
Registers:=0;
found:=false;
While( not DMSQL.SQLQParts.eof ) do begin
Inc(Registers) ;
BufDataset1.Append;
BufDataset1.FieldByName('cateid').AsInteger := DMSQL.SQLQCate.FieldByName('ID').AsInteger;
// BufDataset1.FieldByName('itemid').AsInteger := DMSQL.SQLQParts.FieldByName('itemid').AsInteger;
BufDataset1.FieldByName('itemid').AsInteger := Registers;
BufDataset1.FieldByName('category').AsString := DMSQL.SQLQParts.FieldByName('category').AsString;
BufDataset1.FieldByName('masterpno').AsString := DMSQL.SQLQParts.FieldByName('masterpno').AsString;
BufDataset1.FieldByName('partnumber').AsString := DMSQL.SQLQParts.FieldByName('partnumber').AsString;
BufDataset1.FieldByName('itemname').AsString := Copy(DMSQL.SQLQParts.FieldByName('itemname').AsString,0,150);
BufDataset1.FieldByName('itemdescription').AsString := Copy(DMSQL.SQLQParts.FieldByName('itemdescription').AsString,0,150);
BufDataset1.FieldByName('type').AsString := DMSQL.SQLQParts.FieldByName('Type').AsString;
BufDataset1.FieldByName('Rev').AsString := DMSQL.SQLQParts.FieldByName('Rev').AsString;
BufDataset1.Post;
DMSQL.SQLQParts.next;
// if( registers > 100 ) then break;
end;
DMSQL.SQLQParts.close;
found:= BufDataset1.Locate( 'cateid' ,DMSQL.SQLQCate.FieldByName('id').AsInteger , [loCaseInsensitive, loPartialKey]);
// BufDataset1RecNo:=RegAnt;
if( found) then begin
BufDataset1.edit;
BufDataset1.FieldByName('MasterPno').AsString:= 'Regsitros '+ Inttostr(registers);
BufDataset1.post;
end;
DMSQL.SQLQCate.Next;
end;
BufDataset1.Active:=true;
DataSource1.DataSet.First;
// En transfer data
VirtualDBTreeEx1.Header.AutoSizeIndex := 0; // adjust width of the 1st column when tree width changes.
VirtualDBTreeEx1.Header.Options := VirtualDBTreeEx1.Header.Options + [hoVisible]; // Show the column headers of the tree
VirtualDBTreeEx1.TreeOptions.PaintOptions := VirtualDBTreeEx1.TreeOptions.PaintOptions - [toThemeAware];
VirtualDBTreeEx1.ParentFieldName := 'Cateid'; // field used to group the records by their key field
VirtualDBTreeEx1.KeyFieldName := 'itemid'; // unique identifier of each record
VirtualDBTreeEx1.ViewFieldName := 'Category'; // Field to be displayed in the 1st column
VirtualDBTreeEx1.DBDataFieldNames := 'MasterPno;PartNumber;itemname;itemdescription;type;Rev'; // other fields to be displayed in additional columns
VirtualDBTreeEx1.Header.Columns.Clear;
with VirtualDBTreeEx1.Header.Columns.Add do // The 1st column is field "Text1"
begin
Text := 'Category';
Width := 60;
end;
with VirtualDBTreeEx1.Header.Columns.Add do // The 1st column is field "Text1"
begin
Text := 'MasterPno';
Width := 120;
end;
with VirtualDBTreeEx1.Header.Columns.Add do // The 1st column is field "Text1"
begin
Text := 'PartNumber';
Width := 120;
end;
with VirtualDBTreeEx1.Header.Columns.Add do // The 1st column is field "Text1"
begin
Text := 'ItemName';
Width := 200;
end;
with VirtualDBTreeEx1.Header.Columns.Add do // The 1st column is field "Text1"
begin
Text := 'ItemDescription';
Width := 200;
end;
with VirtualDBTreeEx1.Header.Columns.Add do // The 1st column is field "Text1"
begin
Text := 'Type';
Width := 60;
end;
with VirtualDBTreeEx1.Header.Columns.Add do // The 1st column is field "Text1"
begin
Text := 'Revision';
Width := 80;
end;
// with VirtualDBTreeEx1.Header.Columns.Add do // The 1st column is field "Text1"
// begin
// Text := 'Category';
// Width := 200;
// end;
FormPartsTree.Top:= (FormMain.ToolBar1.Height *2) + FormMain.JvOutlookBar1.top;
FormPartsTree.Left:= FormMain.JvOutlookBar1.Width+20;
// VirtualDbTreeEx1.Nodes();
// ShowMessage( inttostr( BufDataset1RecordCount));
end;