PDA

View Full Version : سوال: ثبت تغییرات در برنامه



atifeh
دوشنبه 23 مرداد 1391, 10:47 صبح
سلام
توی پروژم دو فرم مخصوص کارمند و مدیر دارم
میخوام تغییراتی که مدیر می تونه رو فرم کارمند ایجاد کنه باقی بمونه و با هربار run برنامه از بین نره
مثلا مدیر یه دکمه در فرم کارمند ایجاد می کنه

b.saminjad
دوشنبه 23 مرداد 1391, 11:58 صبح
سلام

چون در هنگام اجرای برنامه شی رو ایجاد کردی ، بعد از خروج برنامه از رم شی از بین میره . میتونی در هنگام بالا اومدن فرم دوم رویداد ایجاد شی در فرم اول را فراخوانی کنی

gwbasic
دوشنبه 23 مرداد 1391, 12:38 عصر
سلام
توی پروژم دو فرم مخصوص کارمند و مدیر دارم
میخوام تغییراتی که مدیر می تونه رو فرم کارمند ایجاد کنه باقی بمونه و با هربار run برنامه از بین نره
مثلا مدیر یه دکمه در فرم کارمند ایجاد می کنه

از این زاویه به مسئله نگاه نکنید. در عوض این طوری فکر کنید که مدیر دسترسی کارمند رو مشخص می کنه و شما فرم کارمند رو (هنگام نمایش) بر اساس دسترسی هایی که مشخص شده (از طرف مدیر) نمایش می دین

تفکر object oriented خیلی مهمه و اینکه شما در پشت فرم هاتون یکسری موجودیت دارین و در هنگام نمایش براساس دسترسی هایی که مشخص شده فرم ها رو نمایش بدین. تا وقتیکه که موضوع رو درک نکنین به همین شکل هم فکر می کنین. یعنی همه منطق برنامه بر اساس رویداد ها صورت می گیره و اینکه کاربر روی این دکمه کلیک کرد چه شود و چه نشود. در صورتیکه یک سیستم خوش ساخت براساس یک Domain Model و روابط اونها پیش می ره و هیچ وابستگی به UI نداره. در حقیقت UI آخرین لایه هست که در نهایت تمام بخشهای این سیستم رو به نمایش می گذاره.

در هر صورت اگه بیشتر توضیح بدین که اون دکمه که قرار به فرم کارمند اضافه بشه چی هست و چرا باید اضافه بشه شاید بشه دقیقا جواب داد

hakim22
دوشنبه 23 مرداد 1391, 12:44 عصر
برای ذخیره ی خصوصیات فرم یا هر متغیر و خاصیت دیگه درون هارد دیسک ( رجیستری) می تونید از قسمت settings استفاده کنید.
متد های save و Load در هر زمانی به شما کمک میکنه که این خصوصیات رو باز خوانی کنید یا ذخیره کنید !

شما می توانید تمام خصوصیات همه ی اشیا رو با استفاده از formatter یا XML ذخیره و در هر زمانی بازیابی کنید.

harani
دوشنبه 23 مرداد 1391, 14:46 عصر
یادمه که این سوالو یکی دیگه پرسیده بود اما هر چی گشتم برات پیداش نکردم ولی فایل html شو Save کردم ببین خوبه .


91205

atifeh
سه شنبه 24 مرداد 1391, 15:29 عصر
ممنون از همگی برای پاسخگویی اما دونکته :


1. فایل attach شدهخالی بود


2. در جواب دوست عزیزی که توضیح بیشتر خواستن باید بگم که کار کارمنداندر گروه ها و زیر گروه هایی تقسیم شده که روزانه باید بیان اون فرم پر کنن که چهکردن.


منم گروه کارهارو tab وزیر گروهشونو radiobuttomگذاشتم حالا این آقای مدیر میخواد هر وقت دلش خواست tab , radiobuttom بهعنوان کار جدید برای کارمنداش اضافه کنه.:عصبانی++::عصبانی++::عصبان ی++::عصبانی++::عصبانی++::عصبانی ++:

چرا از دیشب هرکار میکنم جوابا ارسال نمیشه

atifeh
سه شنبه 24 مرداد 1391, 15:42 عصر
هرکار کردم نتونستم عکسی از فرم براتون لود کنم

gwbasic
سه شنبه 24 مرداد 1391, 19:17 عصر
هنوز سوالتون گنگ هست اگه با مثال توضیح بدید بهتره. مثلا یک گروه کار چی هست و زیر گروه هاش چی هستند و اینکه کارمند میاد یک گروه رو انتخاب می کنه (tab) و در نهایت از زیر گروه که radiobutton هست یکی رو انتخاب می کنه و یا چرا این کارها ثابت نیستند و مدیر باید اینها رو تغییر بده؟

harani
سه شنبه 24 مرداد 1391, 21:16 عصر
فایل attach شدهخالی بود


آقا واقعاً شرمنده من خودم اتچ کردم درست بود ولی نمیدونم چرا خالی شدش . من اونو بصورت ورد در اوردم و دوباره خدمتون میذارم .

91270


بازم شرمنده قصد جسارت نداشتم .

atifeh
سه شنبه 24 مرداد 1391, 21:36 عصر
91271

شاید با تصویر کاملا منظور منو متوجه شوید
کارهای یک سازمان به چهار دسته تقسیم می شوند که من آنها را tab قرار دادم که شما سه تاشو مشاهده می کنید
هر کدام از این دسته ها چندین زیر گروه دارند که من برای کارمند که مثلا میخواد ثبت کنه امروز چه کرده آنها را radiobuttom قرار دادم
مدیر از من خواسته این امکان داشته باشه که اگر نیاز شد و کار جدیدی پیش آمد که در این tabها قرار ندارد بتونه اضافه کنه
امیدوارم منظورم را خوب رسانده باشم

با تشکر:لبخندساده:

atifeh
سه شنبه 24 مرداد 1391, 21:39 عصر
حالا اگه از تو فرم خودش اونو ایجاد کنه تو فرم کارمند یک بار ایجاد میشه و اگر برنامه را ببندیم و باز کنیم دیگه نیستش

atifeh
سه شنبه 24 مرداد 1391, 21:40 عصر
خواهش می کنم
باز ممنونم دوست عزیز : harani

gwbasic
چهارشنبه 25 مرداد 1391, 07:34 صبح
91271

شاید با تصویر کاملا منظور منو متوجه شوید
کارهای یک سازمان به چهار دسته تقسیم می شوند که من آنها را tab قرار دادم که شما سه تاشو مشاهده می کنید
هر کدام از این دسته ها چندین زیر گروه دارند که من برای کارمند که مثلا میخواد ثبت کنه امروز چه کرده آنها را radiobuttom قرار دادم
مدیر از من خواسته این امکان داشته باشه که اگر نیاز شد و کار جدیدی پیش آمد که در این tabها قرار ندارد بتونه اضافه کنه
امیدوارم منظورم را خوب رسانده باشم

با تشکر:لبخندساده:

اگر درست متوجه شده باشم شما یک فرم کارمند دارین که کارهایی که یک کارمند می تونه انجام بده برای اساس ساختار خاصی گروه بندی و لیست شده و این کارها ثابت نیستند و ممکنه که توسط مدیر اضافه بشه. در این صورت شما باید موجودیتی با نام Job داشته باشید که یک کار رو در بر می گیره و ترجیحا ساختار سلسله مراتبی داره (البته احتمالا تا یک سطح) که بتوان در اون گروه بندی رو نیز لحاظ کرد یعنی اینکه هر Job غیر از عنوان کار و... دارای پراپرتی ای باشه که گروه اون رو مشخص کنه ... . حالا مدیر می تونه در فرم تخصیص کار این Job ها رو اضافه کنه که پیشنهاد می کنم از یک TreeView برای این منظور استفاده کنید بطوریکه مدیر بتونه هم گروه اضافه کنه و هم زیر گروه و در نهایت اطلاعات این treeView که لیستی سلسله مراتبی از کارها هست توسط مدیر ذخیره می شه. از طرف دیگر فرم کارمند این اطلاعات که از قبل ذخیره شده رو نمایش در میاره. به این صورت که برای هر گروه یک tab ایجاد می کنه و برای زیرگروه های مربوطه radiobutton در اون tab ایجاد می کنه. در حقیقت این فرم فرمی نیست که در زمان طراحی توسط برنامه نویس ساخته بشه بلکه اطلاعات اون در زمان اجرا از دیتابیس و یا هر جایی که job ها ذخیره شدن خونده و ساخته می شود.

atifeh
پنج شنبه 26 مرداد 1391, 02:45 صبح
با تشکر از شما

atifeh
پنج شنبه 26 مرداد 1391, 16:21 عصر
آقا واقعاً شرمنده من خودم اتچ کردم درست بود ولی نمیدونم چرا خالی شدش . من اونو بصورت ورد در اوردم و دوباره خدمتون میذارم .

91270


بازم شرمنده قصد جسارت نداشتم .

من از روش که شما ارایه دادید استفاده کردم خیلی خوب بود تونستم جواب بگیرم اما یه مشکل دارم
مدیری که میاد radiobuttom فعال میکنه یک تکس به آن اختصاص میده که می تونه هرچی باشه و مکان قرار گیری تون تکس در فرم متغیر که باعث زشتی و نامرتبی برنامه خواهد شد

gwbasic
پنج شنبه 26 مرداد 1391, 22:26 عصر
من از روش که شما ارایه دادید استفاده کردم خیلی خوب بود تونستم جواب بگیرم اما یه مشکل دارم
مدیری که میاد radiobuttom فعال میکنه یک تکس به آن اختصاص میده که می تونه هرچی باشه و مکان قرار گیری تون تکس در فرم متغیر که باعث زشتی و نامرتبی برنامه خواهد شد

کسی که تازه برنامه نویسی رو شروع کرده معمولا دنبال این هست که سریع جواب بگیره. در این وضعیت اگه راهکار درستی در مورد مسئله به اون داده بشه معمولا یا متوجه نمی شه یا اینکه میگه "اوه کی می ره این همه راهو". خوب قابل درک هست و همه مون این دوران رو تجربه کردیم چونکه دوست داریم در سریع ترین حالت ممکن به جواب برسیم. و دلیل دیگش این هست که نمی تونیم نگرش کل به جزء داشته باشیم. اول کلیات رو بپذیریم بعد سر جزئیاتش کار کنیم و هرجا که به مشکلی برخوردیم جستجو و سوال کنیم تا به جواب برسیم. یک برنامه نویس حرفه ای هیچ وقت در نگاه اول به نحوه پیاده سازی جزئیات فکر نمی کنه! یک مسئله رو به اجزاء کوچکتر تقسیم می کنه و بعد از اینکه ارتباط این اجزاء رو مشخص کرد، به پیاده سازی جزئیات می پردازه.

حالا اگه شما در حال انجام یک پروژه دانشجویی باشین که قرار تحویل داده بشه و دیگه پشتیبانی و توسعه داده نمی شه شاید این معضل زیاد خودشو نشون نده اما اگه این پروژه به فروش خواهد رسید و احتمال توسعه اون زیاد هست این نگرش شما رو بدجوری گرفتار می کنه و عموما مجبور هستید روشهایی که قبلا پیاده سازی کردین رو دور بریزید و دوباره از اول با روش صحیح کدنویسی کنید.

همه این موارد رو گفتم که اگه قرار حرفه ای برنامه نویسی کنید این موارد رو رعایت کنید:
1- در درجه اول نیازتون رو مطرح کنید نه راه کاری که براش پیدا کردید. یعنی بگید که سیستمتون نیاز به چی داره و بعد احیانا راهکاری که در نظر دارید رو مطرح کنید
2- اگر با راهکار بهتر و اصولی تری مواجه شدید تنبلی نکنید و یا اینکه تعصبی برخورد نکنید و یا حتی از این هم نترسید که کدهاتون رو قرار بریزید دور و دوباره از اول بنویسید چرا که دیر یا زود مجبورید این کار رو انجام بدید.
3- همیشه دنبال Best Practice‌ ها باشید تا در ادامه مشکل کمتری داشته باشید.

موفق باشید

atifeh
پنج شنبه 26 مرداد 1391, 22:44 عصر
کسی که تازه برنامه نویسی رو شروع کرده معمولا دنبال این هست که سریع جواب بگیره. در این وضعیت اگه راهکار درستی در مورد مسئله به اون داده بشه معمولا یا متوجه نمی شه یا اینکه میگه "اوه کی می ره این همه راهو". خوب قابل درک هست و همه مون این دوران رو تجربه کردیم چونکه دوست داریم در سریع ترین حالت ممکن به جواب برسیم. و دلیل دیگش این هست که نمی تونیم نگرش کل به جزء داشته باشیم. اول کلیات رو بپذیریم بعد سر جزئیاتش کار کنیم و هرجا که به مشکلی برخوردیم جستجو و سوال کنیم تا به جواب برسیم. یک برنامه نویس حرفه ای هیچ وقت در نگاه اول به نحوه پیاده سازی جزئیات فکر نمی کنه! یک مسئله رو به اجزاء کوچکتر تقسیم می کنه و بعد از اینکه ارتباط این اجزاء رو مشخص کرد، به پیاده سازی جزئیات می پردازه.

حالا اگه شما در حال انجام یک پروژه دانشجویی باشین که قرار تحویل داده بشه و دیگه پشتیبانی و توسعه داده نمی شه شاید این معضل زیاد خودشو نشون نده اما اگه این پروژه به فروش خواهد رسید و احتمال توسعه اون زیاد هست این نگرش شما رو بدجوری گرفتار می کنه و عموما مجبور هستید روشهایی که قبلا پیاده سازی کردین رو دور بریزید و دوباره از اول با روش صحیح کدنویسی کنید.

همه این موارد رو گفتم که اگه قرار حرفه ای برنامه نویسی کنید این موارد رو رعایت کنید:
1- در درجه اول نیازتون رو مطرح کنید نه راه کاری که براش پیدا کردید. یعنی بگید که سیستمتون نیاز به چی داره و بعد احیانا راهکاری که در نظر دارید رو مطرح کنید
2- اگر با راهکار بهتر و اصولی تری مواجه شدید تنبلی نکنید و یا اینکه تعصبی برخورد نکنید و یا حتی از این هم نترسید که کدهاتون رو قرار بریزید دور و دوباره از اول بنویسید چرا که دیر یا زود مجبورید این کار رو انجام بدید.
3- همیشه دنبال Best Practice‌ ها باشید تا در ادامه مشکل کمتری داشته باشید.

موفق باشید

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