PDA

View Full Version : سوال: چگونگي طراحي فرم ثبت نام در ويندوز فرم



sima_ahmadi
یک شنبه 17 دی 1391, 22:41 عصر
سلام
احتياج ب كمك فكري دارم...
من سه تا جدول دارم توب ديتا بيسم
يكي كارآموز يكي دوره ها يكي ثبت نام....توي جدول ثبت نام كليد خارجي هاي شناسه دوره و شناسه كارآموز ميفته به همراه اطلاعات ثبت نام...مثل تاريخ ثبت نام
حالا سوالم اينه
وقتي توي ويندوز فرم ميخوام فرم طراحي كنم چون برنامه تك كاربر هستش و شناسه كاربرا و دوره ها رو بلد نيست پس ناچارا بايد با اسم كار كنه
ميخوام ببينم چطور طراحي كنم كه اولا فرم شلوغ نباشه و ثانيا اپراتور مجبور نباشه با شناسه كار كنه ؟؟؟؟

zarrinnegar
یک شنبه 17 دی 1391, 22:51 عصر
معمولا توی ثبت نام دوره ها , هر دوره ای در یک مقطع زمانی انجام میشه بنابر این به ازای هر رکوردی که داخل ثبت نام می افته لازم نیست که تاریخ ثبت نام و ... هم تکرار بشه
پس یک جدول چهارمی پیدا میشه به عنوان دوره ( البته اون دوره ای که شما توی جدول دوم آوردیش فکر کنم درس ها باشه مثلا )
حالا یک دوره میسازیم با شماره و تاریخ ساخت و تاریخ شروع و تاریخ پایان و هزینه هر نفر و ...
حالا توی جدول سوم که ثبت نام هست 3 تا فیلد وجود داره کد دوره و کد درس و کد کارآموز


توی ویژوالش هم که قبلا باید یک ویو از جدول ها بسازی که همه اطلاعات لازم رو بتونه نمایش بده مثل ثبت نام

بعد میتونی توی textbox که اسامی رو داره وارد میکنه زیرش یک گرید بزاری که هی اطلاعات رو فیلتر میکنه و نشون میده تا کاربر انتخاب کنه بعد که انتخاب کرد گرید رو مخفی میکنی

sima_ahmadi
یک شنبه 17 دی 1391, 23:01 عصر
ببينيد من نميدونم اصلا لازمه كه درس رو از دوره جدا كنيم؟
ميشه در مورد قسمت دوم حرفتون بيشتر توضيح بدين براي چي گريد مخفي بشه ؟
ويو كه ميگيد رو توي اسكيوال بسازم ؟

zarrinnegar
یک شنبه 17 دی 1391, 23:11 عصر
معمولا اینطوریه که مثلا بقول شما دوره
1 = فیزیک
2 = شیمی
3 = ریاضی
باشه

خوب اگه ریاضی و بخواهیم برگزار کنیم باید بگیم که از چه تاریخی تا چه تاریخی
جدول ثبت نام شما اینطوری میشه

3 - 100 - 1391/11/15 - 1391/11/20
3 - 101 - 1391/11/15 - 1391/11/20
3 - 102 - 1391/11/15 - 1391/11/20
3 - 103 - 1391/11/15 - 1391/11/20
3 - 104 - 1391/11/15 - 1391/11/20
3 - 105 - 1391/11/15 - 1391/11/20
3 - 106 - 1391/11/15 - 1391/11/20
اینجا اعداد 100 تا 106 کد های کارآموزان هست

خوب یک سری اطلاعات داره تکرار میشه

پس میاییم چیکار میکنیم میگیم یک دوره داریم

1 - 1391/11/15 - 1391/11/20 - 3000000 ریال

حالا جدول ثبت نام میشه این
1 - 3 - 100
1 - 3 - 101
1 - 3 - 102
1 - 3 - 103
1 - 3 - 104
1 - 3 - 105
1 - 3 - 106

اینجا کد های 1 اول مربوط به دوره و کد های 3 مربوط که کد درس است

zarrinnegar
یک شنبه 17 دی 1391, 23:24 عصر
درباره قسمت دوم باید بگم زمانی هست که نمیخواهیم یک فرم باز کنیم تا لیست کارآموزان رو نشون بدیم بعد انتخاب کنه بعد بیاد توی فرم نشون بده و میخواهیم توی همون فرم کاربر با یک انتخاب ساده این کار رو انجام بده

97981

توی این حالت گذاشتن یک لیست باکس و یا اشیایی از این دست یخورده دست و بال آدم رو میبنده و کنترل کردنش هم سخت میشه
و ما میخواهیم که کاربر با تایپ کردن اولین حرف از نام خانوادگی , لیست پایینی فقط افرادی رو نشون بده که شامل اون حرف توی نام خانوادگی هستند
و به قولی لیستمون هی فیلتر بشه
خوب اینجا کارمون اینه که یک گرید بزاریم توی فرم و ظاهرش رو به شکل یک لیست درآریم و هی اطلاعات رو با توجه به تایپ کاربر توش فیلتر کرده نشون بدیم
از اونجایی که این گرید همیشه توی این فرم بدردمون نمیخوره یعنی مثلا روی نام درس رفتیم و میخواهیم نام درس رو انتخاب کنیم , نشون دادن این گرید کار قشنگی نیست

بنابراین این گرید رو در حالت عادی مخفی میکنیم و زمانی که توی Textbox نام خانوادگی اومد دوباره نشونش میدیم

zarrinnegar
یک شنبه 17 دی 1391, 23:29 عصر
درباره قسمت سوم باید بگم که جدول اطلاعات سوم ما شامل 3 تا عدد بود خوب اینهارو بخواهیم نشون کاربر بدیم که چیزی سر در نمیاره

باید اینطوری ببینه

1 - دوره اول - از تاریخ 1391/11/15 تا تاریخ 1391/11/20 درس ریاضی علی محمدی
2 - دوره اول - از تاریخ 1391/11/15 تا تاریخ 1391/11/20 درس ریاضی محمد سلامی
3 - دوره اول - از تاریخ 1391/11/15 تا تاریخ 1391/11/20 درس ریاضی زهرا قربانی


خوب برای نشون دادن اطلاعات به این فرم باید توی Sql از View استفاده کرده و جدول های مرتبط با جدول ثبت نام رو با هم Join کنیم و اطلاعات رو کنار هم بچینیم و بعد توی برنامه نشون بدیم

sima_ahmadi
پنج شنبه 21 دی 1391, 12:57 عصر
97981
خوب اینجا کارمون اینه که یک گرید بزاریم توی فرم و ظاهرش رو به شکل یک لیست درآریم

ممنون از راهنماييه خوبتون ... ميگم چطور ظاهر گريد رو ب شكل ليست در بيارم؟؟؟؟