1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
type
PTreeData = ^TTreeData;
TTreeData = Record
I : Integer; // the image index of the node
RecKey : Integer; // Clé Primaire
Table : Integer;
Name: string ; // the identifier of the node
end;
...
procedure TClient.PageControl1Change(Sender: TObject);
var CNode : PVirtualNode;
DNode : PTreeData;
procedure GetDetail(ANode : PVirtualNode);
var PNode,INode : PVirtualNode;
DNode : PTreeData;
begin
TDetails.Active:=True;
while not TDetails.Eof do
begin
// 2° niveau
if TDetails.FieldByName('N').AsInteger=0 then
begin
PNode:=vTree.AddChild(Anode);
DNode:=vTree.GetNodeData(PNode);
DNode.Name:=Format('Intervention N°%.5d du %s %s',
[TDetails.FieldByName('I').asInteger,
FormatDateTime('dd/mm/yy',TDetails.FieldByName('DATE_INTERVENTION').asDateTime),
TDetails.FieldByName('NOM').asString]);
DNode.Table:=1;
DNode.I:=3;
DNode.RecKey:=TDetails.FieldByName('I').asInteger;
end
// troisième niveau
else begin
// il me fait ici des doubles images
// et ce , uniquement avec des valeurs d'index >=4
if not Assigned(Pnode) then PNode:=ANode;
INode:=vTree.AddChild(PNode);
DNode:=vTree.GetNodeData(INode);
DNode.RecKey:=TDetails.FieldByName('N').asInteger;
DNode.Table:=2;
case TDetails.FieldByName('TYPE_DETAIL').asInteger of
0 : begin
DNode.Name:=Format('M.O./Déplacements %25s %3.2f',
[TDetails.FieldByName('NOM').asString,
TDetails.FieldByName('MONTANT').asCurrency]);
DNode.I:=4;
end;
1 : begin
DNode.Name:=Format('Fournitures %25s %3.2f',
[TDetails.FieldByName('NOM').asString,
TDetails.FieldByName('MONTANT').asCurrency]);
DNode.I:=5;
end;
else begin
DNode.Name:=Format('Autre %25s %3.2f',
[TDetails.FieldByName('REF').asString,
TDetails.FieldByName('MONTANT').asCurrency]);
DNode.I:=6;
end;
end;
end;
TDetails.Next;
end;
TDetails.Active:=False;
end;
procedure TClient.VTreeGetImageIndex(Sender: TBaseVirtualTree;
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
var Ghosted: Boolean; var ImageIndex: Integer);
var Data: PTreeData;
begin
Data:=Sender.GetNodeData(Node);
ImageIndex:=Data.i;
end;
procedure TClient.VTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
var Data: PTreeData;
begin
Data:=Sender.GetNodeData(Node);
CellText:=Data.Name;
end; |
Partager