PDA

View Full Version : سوال: طراحی چارت سازمانی



piramit
چهارشنبه 25 مرداد 1391, 11:45 صبح
سلام دوستان ، من تصمیم دارم سیستم مکاتبات اداری رو طراحی کنم و تو همه چیزش مشکلی ندارم و فقط و فقط در طراحی چارت سازمانی مشکل دارم .
یعنی می خوام کارمندان واحد x فقط همدیگر رو و مدیرشون رو ببینن و مدیر هر واحد واحدهای زیر نظر خود را ببیند مثلا مدیر بازرگانی ، کارمندان بخش فروش و بخش تبلیغات رو ببینه و مدیران هم سطح خودش رو هم ببینه .

خلاصه اینکه یه چارت کامل می خوام در بیارم .
اگه کسی نمونه داره یا پیشنهادی داره ممنون میشم .

mehdi_gerami65
چهارشنبه 25 مرداد 1391, 12:51 عصر
سلام دوستان ، من تصمیم دارم سیستم مکاتبات اداری رو طراحی کنم و تو همه چیزش مشکلی ندارم و فقط و فقط در طراحی چارت سازمانی مشکل دارم .
یعنی می خوام کارمندان واحد x فقط همدیگر رو و مدیرشون رو ببینن و مدیر هر واحد واحدهای زیر نظر خود را ببیند مثلا مدیر بازرگانی ، کارمندان بخش فروش و بخش تبلیغات رو ببینه و مدیران هم سطح خودش رو هم ببینه .

خلاصه اینکه یه چارت کامل می خوام در بیارم .
اگه کسی نمونه داره یا پیشنهادی داره ممنون میشم .


با سلام شما برای طراحی چارت سازمانی یناز به یک تابع بازگشتی دارید تمام زیر گروهای اون قسمت رو دربیاره بعد نیاز به یک تابعی دارید که ارتباط بین این زیرگروها رو بده بعد یه تابع دیگه نیاز دارید تا اونها رو در ساختار درختی نمایش بده کار کن هر جا مشکلی داشتی من در خدمت هستم

piramit
چهارشنبه 25 مرداد 1391, 12:57 عصر
91297
فایلی که بالا قرار دادم عمسی از جداول طراحی شده در دیتابیس هست . می خوام برای این کد نویسی کنم که کدش رو هم در زیر گذاشتم اگه میشه راهنمایی کنید .

string Username = HttpContext.Current.User.Identity.Name;
SqlDataReader ReaderAccessUser = dbClass.ReadFromDB("Select SathID,GroupID,manager from tblUsers Where Username = N'" + Username + "'");
ReaderAccessUser.Read();
int sathID = (int)ReaderAccessUser["SathID"];
int GroupID = (int)ReaderAccessUser["GroupID"];
SqlDataReader ReaderGroup = dbClass.ReadFromDB("Select ID,ParentGroupID from tblWorkGroup Where ID = N'" + GroupID + "'");
ReaderGroup.Read();
int ParentGroupID = (int)ReaderGroup["ParentGroupID"];
SqlDataReader ReaderSath = dbClass.ReadFromDB("Select AllSath,SameSath from tblSath Where ID = N'" + sathID + "'");
ReaderSath.Read();
if ((bool)ReaderSath["AllSath"] == true)
{
FillGW("select * from tblUsers", gwUserAccess);
}
else if ((bool)ReaderSath["SameSath"] == true)
{
SqlDataReader ReaderSubGroup = dbClass.ReadFromDB("Select ID,ParentGroupID from tblWorkGroup Where ParentGroupID = N'" + GroupID + "'");
while (ReaderSubGroup.Read())
{
//ReaderSubGroup.Read();
int ParentSubGroupID = (int)ReaderSubGroup["ID"];
FillGW("select * from tblUsers Where SathID = N'" + sathID + "' UNION Select * from tblUsers Where GroupID = N'" + GroupID + "' UNION Select * from tblUsers Where GroupID = N'" + ParentGroupID + "' UNION Select * from tblUsers Where GroupID = N'" + ParentSubGroupID + "'", gwUserAccess);
}
ReaderSubGroup.Close();
}
else if (((bool)ReaderSath["AllSath"] == false) && ((bool)ReaderSath["SameSath"] == false) && ((bool)ReaderAccessUser["Manager"] == true))
{
SqlDataReader ReaderSubGroup = dbClass.ReadFromDB("Select ID,ParentGroupID from tblWorkGroup Where ParentGroupID = N'" + GroupID + "'");
while (ReaderSubGroup.Read())
{
int ParentSubGroupID = (int)ReaderSubGroup["ID"];
FillGW("select * from tblUsers Where GroupID = N'" + GroupID + "' UNION Select * from tblUsers Where GroupID = N'" + ParentGroupID + "' UNION Select * from tblUsers Where GroupID = N'" + ParentSubGroupID + "'", gwUserAccess);
}
ReaderSubGroup.Close();
}
else if (((bool)ReaderSath["AllSath"] == false) && ((bool)ReaderSath["SameSath"] == false))
{
FillGW("select * from tblUsers Where GroupID = N'" + GroupID + "'", gwUserAccess);
}
ReaderGroup.Close();
ReaderAccessUser.Close();
ReaderSath.Close();