|
[x]
Posted via EE Mobile
|
||
Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again. |
||
| Question |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
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: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: |
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DB, ZAbstractRODataset, ZAbstractDataset,
ZDataset, ZConnection, ExtCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeView;
Button1: TButton;
ZConnection1: TZConnection;
ZQuery1: TZQuery;
ZQuery2: TZQuery;
procedure Button1Click(Sender: TObject);
private
Procedure Load_Tree ;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Type
PDataRec = ^TData;
TData = Record
ID : Integer;
PID : Integer;
Text: String[150];
end;
function FindParent(ATreeView : TTreeView; ID : Integer) : TTreeNode;
var i : integer;
begin
result := nil;
i := 0;
while (i < ATreeView.Items.Count) and
(assigned(ATreeView.Items[i].Data)) and
(PDataRec(ATreeView.Items[i].Data)^.ID <> ID) do
inc(i);
if i < ATreeView.Items.Count then
result := ATreeView.Items[i];
end;
Procedure TForm1.Load_Tree;
var
ANode : TTreeNode;
RecordCache : PDataRec;
RecordCacheList : TList;
I, PreviousCount : Integer;
begin
TreeView1.Items.Clear ;
ZQuery1.Close;
ZQuery1.SQL.Text := 'Select * from NGroups order by group_id';
RecordCacheList := TList.Create;
try
ZQuery1.Open;
while not ZQuery1.Eof do
begin
RecordCache := New(PDataRec);
RecordCache^.ID := ZQuery1.FieldByName('GROUP_ID').AsInteger;
RecordCache^.PID := ZQuery1.FieldByName('Parent_ID').AsInteger;
RecordCache^.Text := ZQuery1.FieldByName('Name').AsString;
RecordCacheList.Add(RecordCache);
ZQuery1.Next;
end;
ZQuery1.Close;
PreviousCount := RecordCacheList.Count;
i := 0;
While i < RecordCacheList.Count do
begin
If PDataRec(RecordCacheList.Items[i])^.PID = 0 then
begin
ANode := TreeView1.Items.AddChild(NIL,PDataRec(RecordCacheList.Items[i])^.Text);
ANode.Data := RecordCacheList.Items[i];
RecordCacheList.Delete(i);
end
else inc(i);
end;
While (RecordCacheList.Count > 0) and (PreviousCount <> RecordCacheList.Count) do
begin
i := 0;
PreviousCount := RecordCacheList.Count;
while i < RecordCacheList.Count do
begin
ANode := FindParent(TreeView1,PDataRec(RecordCacheList.Items[i])^.PID);
if Anode <> NIL then
begin
ANode := TreeView1.Items.AddChild(ANode,PDataRec(RecordCacheList.Items[i])^.Text);
ANode.Data := RecordCacheList.Items[i];
RecordCacheList.Delete(i);
end
else inc(i);
end;
end;
if RecordCacheList.Count > 0 then
raise exception.Create('XXXX!');
finally
RecordCacheList.Free;
end;
Form1.Caption := Inttostr(TreeView1.Items.Count) ;
I := 0 ;
TreeView1.DoubleBuffered := true;
ZQuery2.SQL.Clear ;
ZQuery2.SQL.Text := 'Select group_kod,group_id,name from NGRP where group_id = :n';
TreeView1.Items.BeginUpdate ;
while i < TreeView1.Items.Count do
begin
begin
ZQuery2.ParamByName('n').AsInteger := PDataRec(TreeView1.Items[i].Data)^.ID;
ZQuery2.Open;
While Not ZQuery2.Eof do
begin
New(RecordCache);
RecordCache^.ID := ZQuery2.FieldByName('group_kod').AsInteger;
RecordCache^.PID := 0;
RecordCache^.Text := ZQuery2.FieldByName('group_kod').AsString +' - '+ZQuery2.FieldByName('Name').AsString;
ANode := TreeView1.Items.AddChild(TreeView1.Items[i],RecordCache^.Text);
ANode.Data := RecordCache;
ANode.ImageIndex := 2;
ANode.SelectedIndex := 3;
ZQuery2.Next;
end;
ZQuery2.Close;
end;
inc(i);
TreeView1.Items.EndUpdate ;
end;
end;
|
Advertisement
| Hall of Fame |