PDA

View Full Version : سوال: datagrid سه بعدی



Meisam9180
جمعه 25 دی 1394, 00:42 صبح
با سلام به همه دوستان
داریم یه نرم افزار ارزیابی عملکرد کارکنان با ویندوز فرم در سی شارپ طراحی می کنیم. تا اونجایی که میدونم، کنترل گریدویو موجود فقط از یکی از جداول دیتابیس استفاده می کنه. اما پروژه ما طوریه که جدول امتیازدهی به کارکنان توسط مدیراشون 3 بعدیه و مشکل اصلی اینه که هر بعدش از یه جدول میاد (لیست اسامی از جدول پرسنل، معیارهای ارزشیابی از جدول معیارها و در تقاطع ایندو نمره هر کارمند از هر معیار توسط مدیرش وارد میشه که قراره توی جدول سوم با نام نمرات ثبت بشه) بازم تاکید می کنم این کنترل صرفا برای نمایش اطلاعات درج شده نیست بلکه برای ورود اطلاعات استفاده میشه. عکس پیوست رو لطفا ببینید.
خیلی ممنون میشم اگه راهنمایی بفرمایید.

khokhan
جمعه 25 دی 1394, 02:19 صبح
با سلام به همه دوستان
داریم یه نرم افزار ارزیابی عملکرد کارکنان با ویندوز فرم در سی شارپ طراحی می کنیم. تا اونجایی که میدونم، کنترل گریدویو موجود فقط از یکی از جداول دیتابیس استفاده می کنه. اما پروژه ما طوریه که جدول امتیازدهی به کارکنان توسط مدیراشون 3 بعدیه و مشکل اصلی اینه که هر بعدش از یه جدول میاد (لیست اسامی از جدول پرسنل، معیارهای ارزشیابی از جدول معیارها و در تقاطع ایندو نمره هر کارمند از هر معیار توسط مدیرش وارد میشه که قراره توی جدول سوم با نام نمرات ثبت بشه) بازم تاکید می کنم این کنترل صرفا برای نمایش اطلاعات درج شده نیست بلکه برای ورود اطلاعات استفاده میشه. عکس پیوست رو لطفا ببینید.
خیلی ممنون میشم اگه راهنمایی بفرمایید.


خب کوئری رو به شکل crosstab query یا به عبارتی pivot و البته به صورت جوین از سه جدول ، نوشته و اطلاعات رو واکشی می کنین و هنگامی هم که ویرایش انجام گرفت تغییرات رو در جدول یا جداول ثبت کنین
البته اینطور که معلومه تغییرات بایستی توی یه جدول ذخیره بشه
لینکhttps://www.simple-talk.com/sql/t-sql-programming/creating-cross-tab-queries-and-pivot-tables-in-sql/

khokhan
جمعه 25 دی 1394, 12:42 عصر
خیلی ممنون از khokhan عزیز
لینکی که فرستادید رو در اسرع وقت مطالعه می کنم و اگه بازم ایرادی داشتم زحمت میدم بهتون. فقط گفتم شاید لازم باشه، تصویر دیاگرام بانک اطلاعات رو هم گذاشتم.
یه سوال هم داشتم، این pivot که فرمودید برای data entry هم استفاده میشه؟
با سپاس
من متوجه منظور شما از data entry نمی شم ............... معمولا data entry مقعی به کار می ره که مت بخواهیم اطلاعاتی رو وارد دیتابیس کنیم
در هرصورت pivot table و crosstab query هنگام واکشی اطلاعات از منبع داده به کار می ره

در رابطه با دیاگرامی هم که قرار دادین جدول پرسنل با اون دوتای دیگه ارتباطی نداره و هنگام جوین کردن جداول مشکل ساز می شه براتون

khokhan
جمعه 25 دی 1394, 12:44 عصر
خیلی ممنون از khokhan عزیز
لینکی که فرستادید رو در اسرع وقت مطالعه می کنم و اگه بازم ایرادی داشتم زحمت میدم بهتون. فقط گفتم شاید لازم باشه، تصویر دیاگرام بانک اطلاعات رو هم گذاشتم.
یه سوال هم داشتم، این pivot که فرمودید برای data entry هم استفاده میشه؟
با سپاس
.......................................

khokhan
جمعه 25 دی 1394, 12:44 عصر
...............................

Meisam9180
جمعه 25 دی 1394, 12:56 عصر
خیلی ممنون از khokhan عزیز
لینکی که فرستادید رو در اسرع وقت مطالعه می کنم و اگه بازم ایرادی داشتم زحمت میدم بهتون. فقط گفتم شاید لازم باشه، تصویر دیاگرام بانک اطلاعات رو هم گذاشتم.
یه سوال هم داشتم، این pivot که فرمودید برای data entry هم استفاده میشه؟
با سپاس

Meisam9180
جمعه 25 دی 1394, 16:29 عصر
بله، دقیقا درست فرمودید
یه فرمی هست که مدیران به کارکنانشون توی اون نمره میدن (یعنی ورود اطلاعات به دیتابیس) این فرم سه قسمت داره
1- هدر بالا که بر اساس بخشی که اون مدیر توش کار میکنه و شغل کارکنانش (این معیارها از جدول criteria میان) یه سری معیارهای ارزشیابی رو نشون میده
2- قسمت سمت چپ یا عمودی (که میتونه با توجه به زبان فارسی سمت راست باشه) لیست اسامی کارکنان اون مدیر هست (و از جدول personnel میاد)
3- قسمت تقاطع دو قسمت قبلی (در مرکز) که نمره هر یک از کارکنان از هر یک از معیارهای ارزشیابی توسط مدیرش وارد میشه و بعد از اینکه نمره همه وارد شد با فشردن یه دکمه مثلا ثبت توی دیتابیس میشینه
در مورد دیاگرام هم حق با شماست، اشتباها فایل قدیمی رو باز کرده بودم. اگه لازم باشه در اولین فرصت درستش رو میفرستم.
خیلی ممنون که راهنمایی میفرمایید.

Meisam9180
جمعه 25 دی 1394, 16:31 عصر
لطفا دوباره یه نگاهی به عکس تاپیک اول بنده بندازید
معیارها سبزن، اسامی نارنجی و نمرات که باید توسط مدیر وارد و در دیتابیس ذخیره بشن سفید با کادر آبین.

Meisam9180
دوشنبه 28 دی 1394, 14:49 عصر
کسی راهی به ذهنش نمی رسهههههههههه؟!!!

aslan
دوشنبه 28 دی 1394, 16:01 عصر
کسی راهی به ذهنش نمی رسهههههههههه؟!!!
سلام
برداشتی که در پست اولتون از دیتاگرید ارایه دادین دقیق و کامل نیست ... با هر چند تا تیبل و... میتونین ارتباط بدین
هر جدول در اینجا نشانگر یک "بعد" نیست که با 3 جدول 3 بعدی بشه و ..... شما در نهایت اطلاعات را در یک جدول میخواهید ذخیره کنید ( که اگر بیش از یک جدول هم بود باز مشکلی وجود نداشت ...)
....
شما در نهایت میخواهید با استفاده از 3 تا جدول و با شکل ظاهری مشخص یکسری اطلاعات از کاربر بگیرید و در یک جدول ( یا بیشتر ) ذخیره کنید ... بنظر میرسه که مشکل اصلی شما با شکل دیتاگریدویو هستش
..... دوستمون خوخان راهنمایی خوبی کردن و ظاهرا شما پیگیر نبودین و یا به نتیجه نرسیدین
بهر حال برای حل مشکلتون راه حل های مختلفی میتونه وجود داشته باشه ....... ( شاید بتونین با ایجاد دینامیک سطر و ستون دیتاگریدویو و ... مشکلتون را حل کنین ) و یا خلاقیت های دیگه ای که ..
مشکل حادی نیست ....

khokhan
دوشنبه 28 دی 1394, 20:11 عصر
کسی راهی به ذهنش نمی رسهههههههههه؟!!!
سلام
این روش رو علی رغم میل باطنی براتون پیشنهاد می کنم ...... چون اعتقاد دارم که نبایستی از کامپوننت های آماده در پروژه استفاده بشه
اما یه بار من هم مثل شما دچار این درد سر شده بودم و درنهایت از این کامپوننت استفاده کردم
مجموعه کامپوننت های Telerik در محیط winforms یه کامپوننت داره به نام PivotGrid ..........
که هم هدر ستون و هم هدر ردیف رو می تونی چندین فیلد رو از چندین جدول اتصال بدی :لبخند:



توضیحات کامل ومشروح همراه با طریقه اتصال انواع منبع داده رو می تونی در این لینک (http://www.telerik.com/help/winforms/pivotgrid-overview.html) توی سایتش بخونی




ایضا کامپوننت OLAP Pivot Table (http://www.viblend.com/products/net/windows-forms/controls/winforms-pivot-olap-grid.aspx) هم می تونه مفید باشه

Meisam9180
چهارشنبه 30 دی 1394, 07:34 صبح
سلام
خیلی از محبتتون متشکرم. واقعا لطف کردین. با پوزش فراوان، امتحان می کنم و اگه به مشکل خوردم دوباره مزاحمتون میشم.
با آرزوی بهترین ها برای شما دوستان عزیز