PDA

View Full Version : نمایش چارت تشکیلاتی



Mbr
چهارشنبه 27 خرداد 1383, 12:25 عصر
من در یک برنامه از چارت سازمانی یک شرکت استفاده نموده ام که آنها را بوسیله کد بندی به هم ارتباط داده ام . حال می خواهم آنها را در یک قسمت طوری نمایش بدهم که تمام زیر مجموعه ها زیر قسمتهای خود قرار گرفته اند . مثل Windows Exploer
با تشکر از تمامی دوستان برنامه نویس دلفی

لطفا عنوان تاپیک خود را دقیق انتخاب نمایید.

hr110
چهارشنبه 27 خرداد 1383, 12:42 عصر
باید از treeView استفاده کنید. استفاده از ان خیلی ساده است ، به سادگی میتوانید نودها مختلف را در هر مکان که نیاز دارید وارد نمایید

Mbr
پنج شنبه 28 خرداد 1383, 10:09 صبح
با تشکر از دوست عزیزم
و معذرت خواستن از اینکه چرا عنوان تا÷یک را انتخاب نکرده ام . سوال دیگرم این است که آیا می توان این اطلاعات را از طریق جدول بانک اطلاعاتی توسط ارتباطهایی که داده ام در داخل treeview قرار دهم .
متشکرم

nasr
پنج شنبه 28 خرداد 1383, 10:20 صبح
سوال دیگرم این است که آیا می توان این اطلاعات را از طریق جدول بانک اطلاعاتی توسط ارتباطهایی که داده ام در داخل treeview قرار دهم .


بله می تونی اینکار را انجام بدی خیلی ساده

nasr
پنج شنبه 28 خرداد 1383, 10:24 صبح
در ضمن کامپوننت treeview در سی دی برنامه نویس وجود داره

Mbr
یک شنبه 31 خرداد 1383, 09:02 صبح
دوستان عزیز خیلی متشکرم از پاسخ شما
می توانم بپرسم چگونه می توان این کار را انجام داد .

مهدی کرامتی
یک شنبه 31 خرداد 1383, 14:20 عصر
بله می تونی اینکار را انجام بدی خیلی ساده
آقای nasr ، بهتر نبود بجای اینکه بگی بله، ممکنه؛ راه حلش رو میگفتی؟

اینجور پستها بیخودی جا اشغال میکنه و وقت تلف کردن نیز هست و بنابر فتوای برادر Sepidar در حکم محاربه با برنامه نویس محسوب میشه.

لطفا تکرار نشود.

moradi_am
دوشنبه 01 تیر 1383, 08:29 صبح
در مجموعه کامپوننتهای 1StClass ابزاری برای اینکار هست .

Mbr
دوشنبه 01 تیر 1383, 10:03 صبح
چرا کسی جواب سوال من رو درست نمی ده
من می خوام راه حل این سوال را بدونم و از آن استفاده کنم . کمک کنید .

hr110
دوشنبه 01 تیر 1383, 12:10 عصر
با سلام
جناب MBR قبل از این که جواب سوال شما را بدهم لازم است چند نکته را تذکر بدهم
1- اینجا یک سایت کاملاً غیر انتفاعی بوده که اعضای ان به خواست خود عضو ان شده و بالاختیار در صورت وجود زمان کافی برای جواب گویی به سوالات ، به هر سوال که دلشان بخواهد جواب میدهند، و اگر جواب هم ندادند نمیتوان به ایشان خرده گرفت، بنابراین به عنوان یک دوست از شما میخواهم که لحن گفتارتان را کمی بهتر نمایید، با تشکر. :تشویق:
2- دوستان زحمت کشیدند و جواب سوال شما را داده اند و اگر کمی در راهنما و دموهای دلفی جستجو نمایید سریعتر و بهتر به نتیجه خواهید رسید. بنابراین در این سایت و یا سایتهای دیگر به دنبال یافتن جوابهایی برای اینگونه سوالات نباشید. :flower:
و اما جواب سوال شما :
1- ابتدا یک کامپوننت treeview بروی فرمتان قرار دهید.
2- سپس یک کلید هم در فرم قرار داده و در پراپرتی onclick ان موارد زیر را بنویسید:

procedure TForm1.Button1Click(Sender: TObject);
var
M : TTreeNode;
begin
M:=TreeView1.Items.AddChild(nil,'First');
TreeView1.Items.AddChild(M,'sub - first');

M:=TreeView1.Items.AddChild(nil,'Second');
TreeView1.Items.AddChild(M,'sub - Second');
end;

3- میتوانید در دموهای دلفی نیز مثال در این رابطه بیابید: CustomDraw

Mbr
دوشنبه 01 تیر 1383, 12:22 عصر
با سلام
جناب مدیر بخش
منظور من این بود که دوستان عزیز به جای اینکه به مسائل حاشیه ای در مباحث بپردازند به یک راهنمایی به سوالهایی که ارسال می شود بپردازند . در ثانی اگر قرار باشد کسی جواب سوال و حتی یک راهنمایی به کسی نکند پس این سایت به چه درد می خورد غیر از این است که باید با همدیگر همکاری داشته باشیم و بتوانیم مشکلات خود را در این زمینه ها حل کنیم .
سوما من اصلا هم بد برخورد نکردم فقط گفتم دوستان به جای اینکه به مسائل حاشیه ای در باره یک سوال بپردازند حداقل یک راهنمایی در این زمینه انجام دهند .
من خودم شخصا شاید در روز سه یا چهار بار به این سایت سر بزنم و از آن استفاده کنم و در اینجا از تمامی دوستانی که در این سایت زحمت می کشند سپاسگزاری می کنم .
جواب سوال خودم را هم پیدا کردم و در اینجا قرار می دهم تا دوستان دیگر نیز بتوانند استفاده نمایند :


procedure TForm1.BitBtn1Click(Sender: TObject);
Var
i,count,L_Acc_Fieldcount:Integer;
L_Acc_Treenode:Packed Array[0..99] of TTreenode;
L_Acc_value:Packed array[0..99] of string;
begin
TreeView1.Items.Clear;
Query1.First;
L_Acc_Fieldcount:=Query1.FieldCount;
While not Query1.Eof do
begin
if L_Acc_Value[0]<> Query1.Fields[0].Value then
L_Acc_Treenode[0]:=TreeView1.Items.Add(nil,VarToSt r(Query1.Fields[0].Value));
L_Acc_Value[0]:=Query1.Fields[0].Value;
for i:=1 to L_Acc_Fieldcount-1 do
L_Acc_Treenode[1]:=treeview1.Items.AddChild(L_Acc_ Treenode[i-1],VarToStr(Query1.Fields[i].Value));
L_Acc_Value[0]:=Query1.Fields[0].Value;
Query1.next;
end;
end;