![]() |
|
عرض قائمة الحسابات باستخدام Virtualstringtree - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : عرض قائمة الحسابات باستخدام Virtualstringtree (/showthread.php?tid=3904) |
عرض قائمة الحسابات باستخدام Virtualstringtree - fored - 22-02-2012 السلام عليكم ورحمة الله وبركاته استخدم المكون Virtualstring لعرض بيانات جدول الحسابات ولكن لايخرج النتائج . يخرج ترتيب الحسابات بدون مسيماتها هذا الكود المستخدم كود : procedure TF_dalel.uptree;
var i,e,b,t,x,y : integer;
str : Tstrings;
NodeT: array[0..1000] of PVirtualNode;
pData: PNodedata ;
begin
vst.Cursor := crhourglass;
vst.BeginUpdate;
str := Tstringlist.Create;
str.Clear;
vst.Clear;
//------------------------------------------
i := 0; x := 0; y := 0;
str.Append('0');
// الحصول على عدد سجلات الحسابات كاملا واسناده الى متغير e
//
with Module1.Qr1 do
begin
Close;
SQL.Clear;
sql.CommaText := 'select * from asset_ss ';
Open;
e := RecordCount;
Close;
SQL.Add('where accfather = :p1 ');
Parameters.ParamByName('p1').Value := str[i];
Open;
First;
end;
for t := 0 to Module1.Qr1.RecordCount-1 do
begin
str.Append(Module1.Qr1.fields.FieldByName('code').AsString);
NodeT[x] := VST.AddChild(nil);
pData := VST.GetNodeData(NodeT[x]);
if assigned(pdata) then
pdata^.Caption := Module1.Qr1.Fields.FieldByName('accname').AsString;
x := x + 1;
Module1.Qr1.Next;
end;
for b := 0 to e-1 do
begin
i := i + 1;
Module1.Qr1.Close;
Module1.Qr1.Parameters.ParamByName('p1').Value := str[i];
Module1.Qr1.Open;
Module1.Qr1.First;
for t := 0 to Module1.Qr1.RecordCount-1 do
begin
str.Append(Module1.Qr1.FieldByName('code').AsString);
NodeT[x] := VST.AddChild(nodeT[y]);
pData := VST.GetNodeData(NodeT[x]);
if assigned(pdata) then
pdata^.Caption := Module1.Qr1.fields.FieldByName('accname').AsString;
x := x + 1;
Module1.Qr1.Next;
end;
y := y + 1;
end;
vst.FullExpand(NIL);
vst.EndUpdate;
vst.Cursor := crdefault;
end;وهذا الكود في الحدث on Get text كود : procedure TF_dalel.vstGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
var
pData: PNodeData;
begin
pData :=sender.GetNodeData(Node);
if assigned(pdata) then
CellText := pData^.Caption;
end;اين الخطأ في الكود ولكم جزيل الشكر النتيجة في الصورة المرفقة |