delphi4arab منتديات دلفي للعرب

نسخة كاملة : عرض قائمة الحسابات باستخدام Virtualstringtree
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
استخدم المكون 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;



اين الخطأ في الكود
ولكم جزيل الشكر

النتيجة في الصورة المرفقة