PDA

View Full Version : سوال: نحوه درج روزهای هفته در ساب فرم با ورود عدد هفته در فرم ؟



Profesorjd
جمعه 04 شهریور 1390, 15:08 عصر
با سلام و آرزوی قبولی طاعات و عبادات در این ماه پر برکت
آیا راهی وجود دارد که با وارد کردن عدد یک ( 1 ) در فرم و با استفاده از تاریخ سال جاری ، در ساب فرم تاریخ روزهای هفته وارد شود ؟
توضیح اینکه میخواهم با وارد کردن مثلاً عدد 20 ( بیست ) در فرم ، در ساب فرم تاریخهای 01/05/90 و 02/05/90 و 03/05/90 و الی آخر در فیلد مربوط وارد شود ( البته تاریخهای درست مربوط به هفته بیستم سال 90! )

khalil-s
شنبه 05 شهریور 1390, 18:03 عصر
سلام
دوست من برات یک نمونه ساختم که امیدوارم همون چیزی باشه که دنبالش بودی
البته چون عجله داشتم برنامه رو با 2تا کلک رشتی و ناقص نوشتم!:افسرده:
امیدوارم سر نخی به شما داده باشم و خودتون بتونید تکمیلش کنید
در ضمن تاریخ سیستم شما باید روی حالت YYYY/MM/DD تنظیم باشه

Profesorjd
دوشنبه 07 شهریور 1390, 13:18 عصر
با سلام و تشکر از بذل توجه جنابعالی
من اکسس 2003 دارم اگر امکانش هست تبدیل به اکسس 2003 فرمایید . از تأخیرم در رویت پست عذرخواهی میکنم

khalil-s
دوشنبه 07 شهریور 1390, 15:08 عصر
سلام
متاسفانه وقتی به 2003 تبدیل می کنم ، اجرای برنامه دچار مشکل میشه و علت اون رو متوجه نمیشم!

Profesorjd
دوشنبه 07 شهریور 1390, 15:59 عصر
با سلام و تشکر مجدد .
احتمال زیاد بخاطر سیستم 64 بیتی شماست و احتمال میدهم که از اکسس 2010 هم استفاده میکنید و ایضاً‌ آن نیز 64 بیتی !
بهر حال اگر راهنمایی متنی یا کدنویسی بفرمایید شاید به نتیجه برسم .

khalil-s
دوشنبه 07 شهریور 1390, 17:14 عصر
فایل 2003 برنامه رو برات گذاشتم که حداقل کدهای اون رو ببینید
http://up6.iranblog.com/files/f2Database1.rar

Zero Defect
دوشنبه 07 شهریور 1390, 17:27 عصر
سلام

الگوريتم مورد استفاده در مثال درست نيست و نياز به بازنگري داره

وقتي ميگيم يك هفته خاص ، تنها روزهايي مد نظر هست كه در حد فاصل بين شنبه تا جمعه همون هفته قرار ميگيرند

شماره هفته الزاما اشاره به هفته اي خاص كه هفت روزه هستش نيست به طور مثال هفته اي كه با روز پنج شنبه شروع ميشه ، تنها شامل روزهاي پنجشنبه و جمعه خواهد بود (‌اين هفته دو روزه محسوب ميشه )
و يا در همين سال جاري ، هفته اول از روز دوشنبه شروع ميشه و در جمعه خاتمه پيدا ميكنه ( 5 روز )

پس بر همين اساس محاسبه صرفاً بر اساس يك حلقه 7 تايي صحيح نيست

مشكل شما توسط PDC قابل حل هستش

توابع مورد استفاده در اين پروسه GetSpecificWeekRange و PartSelector هستند

البته با تركيبي از حلقه و شرط كه بايد استفاده كنيد

علي ايجال نمونه تبديل شده فايلي كه دوستمون زحمتش رو كشيده بودن ضميمه ميشه

موفق باشيد

Profesorjd
دوشنبه 07 شهریور 1390, 18:38 عصر
با سلام و تشکر
1- البته من دو فایل رو دیدم از نظر کدهای فرم هر دویکی بودند ولی در اولی خطای user-defind type not definded داد ولی در دومی اجرا شد.
2- در فایل دومی اشتباه محاسبه میکند . امروز که هفته 23 هستیم طبیعتاً باید از تاریخ 5/6/90 شروع کند که از تاریخ 4/6/90 شروع میکند ! البته آنهم یکبار نه هر دفعه که فیلد آپدیت میشود تاریخ هفته را درج کند .
3- جناب پیروزمهر ، همانگونه که میدانید بنده بدلایل مختلف نمیتوانم از اکتیوایکس ( خصوصاً اکتیوایکس عالی شما ) استفاده کنم بنابراین مجبورم از ماژولهای تاریخ موجود استفاده کنم .
4- برای توضیح بیشتر : بنده میخواهم در برنامه اداره برنامه رئیس را تنظیم کنم که در هفته ( منظور از شنبه تا پنج شنبه) چه برنامه‌هایی دارد . متأسفانه کاربر نهایی ممکن است در ثبت تاریخها اشتباه کند ( چه در درج روز هفته یا تاریخ روز) بنابراین مناسب است که از تاریخ سیستم برای درج برنامه‌ها استفاده کرد . طبیعتاً در یک روز ممکن است رئیس چند برنامه داشته باشد یا در یکروز برنامه‌ای نداشته باشد یا تعطیل باشد که میباید در هولدر وی مشخص باشد . اگر راهش باشد ( که با زحمت دوستان و استاد گرامی یافت شد) اینگونه میشد در دیتا ثبت شود . این حالت مانند برنامه‌های مثل اوت لوک یا قرار ملاقاتهاست که اگر نمونه‌ای از آن بود خیلی عالی میشد و میشد با بهره‌گیری از آن برنامه مد نظر را تنظیم کرد ( این خواسته من با قرار ملاقات کمی فرق دارد چون در برنامه قرار ملاقات ساعتها مشخص است و در ساعت مد نظر قرار درج میشود ولی در این برنامه قرار مشخص و برای آن ساعت درج میشود مثلاً جلسه اداری در ساعت 9 صبح )

Zero Defect
دوشنبه 07 شهریور 1390, 19:48 عصر
2- در فایل دومی اشتباه محاسبه میکند . امروز که هفته 23 هستیم طبیعتاً باید از تاریخ 5/6/90 شروع کند که از تاریخ 4/6/90 شروع میکند ! ....

سلام

هفته 23 در اون محدوده اي كه شما فرموديد نيست
هفته 23 در حد فاصل زماني 29/05/1390 تا 04/06/1390 هستش نه اينكه بخواد از چهارم و يا پنجم شهريور ماه شروع بشه ! ( ميتونيد به تقويمهايي كه شماره هفته هم در اونها درج شده رجوع كنيد )


میدانید بنده بدلایل مختلف نمیتوانم از اکتیوایکس استفاده کنم

حق با شماست ، فراموش كرده بودم ( شما دسترسي ادمين نداشتيد )

.... به هر حال قاعده به دست آوردن محدوده هفته رو مد نظر داشته باشيد


در فایل دومی اشتباه محاسبه میکن

باور كنيد بنده فقط كار كانوريت رو انجام دادم و دست به كدهاش نزدم :خجالت:

خدانگهدار

Profesorjd
دوشنبه 07 شهریور 1390, 21:58 عصر
با سلام و تشکر مجدد
1- بهر حال به نظر میرسد کانورت شما درست انجام شده است ( البته نگفته‌اید چگونه اینکار را انجام می‌دهید )
2- اینکه هفته 23 از 29/5/90 شروع میشود بدلیل همان قاعده‌ای است که شما بیان کردید . ولی این برنامه هفته 23 را اینگونه نمایش میدهد . یا ماژول فارسی درست نیست ( که بعید است ) یا کد نوشته شده برای Text12 صحیح نیست ( که بدلیل تعیین علت این خطا دست به آن نمیزنم ) یا کد نوشته شده برای رویداد After Update .
3- حال با توجه به موارد بیان شده در خصوص اصل خواسته و موارد مندرج بند 4 ، راهنمایی یا برنامه‌ای مد نظرتان نیست . میخواهم چنین کاری انجام دهم :
( اینکه بنده از اکتیوایکس نمیتوانم استفاده کنم بخاطر دسترسی ادمین نیست یکی از دلایلش این است که نمی‌توانم برای همه رایانه‌ها اکتیوایکس را رفرنس کنم و بدلیل تنوع کاری و نیازهای متعدد کاربران نمیتوانم با ستاپ‌ساز که خودش اکتیوایکس را نصب کند اینکار را نیز انجام دهم . بعبارتی کار من آمار و اطلاعات و روشهاست و برنامه‌هایی که دارم در حد یک دیتابیس برای این امور است که راه‌اندازی برنامه و نصب آن برای کاربران دیگر در توانایی و یا دسترسی بنده نیست )

Zero Defect
دوشنبه 07 شهریور 1390, 23:10 عصر
سلام

بعضي وقتها آدم از كنار يكسري مسائل بر حسب اطمينان ميگذره و به اين جمله توجه نميكنه كه :


البته چون عجله داشتم برنامه رو با 2تا کلک رشتی و ناقص نوشتم!

Professorjd جوابيه اي كه اين بنده خدا ارسال فرمودن مشكل داره

به هفته هاي نهم و 18 و 26 و 35 نگاهي بندازيد !!

ميدونيد علت اين اتفاق چيه ؟

اين دوست خوب ما از تابع DateAdd‌ خود اكسس استفاده كردن و از اون براي جمع كردن تاريخ شمسي بهره بردند در واقع كل اون كدهايي كه توي ماژولهاست بدون استفاده هستند

اگر همين الگوريتم اين دوستمون مورد تاييدتون هستش و مشكل گشاست ، از تابع J_ADDDAY به جاي اين تابع استفاده كنيد ( صحت اون رو ديگه تستس نكردم )

...................


اینکه هفته 23 از 29/5/90 شروع میشود بدلیل همان قاعده‌ای است که شما بیان کردید

اين طبق قاعده اي نيست كه بنده عنوان كردم ، بلكه طبق يك استاندارد تعريف شده هستش ، شما هم چون برنامه رو براي مديرتون مينويسيد ابتدا از ايشون استعلام بگيريد كه تابع كدوم رويه هستند چون در مثل ميگن : علف بايد به دهن بزي شيرين بياد !


يا علي

Profesorjd
دوشنبه 07 شهریور 1390, 23:28 عصر
با سلام و تشکر مجدد
1- منظورم از قاعده همان استانداری است که شما بیان کرده‌اید ( هفته اول سال ممکن است از پنج شنبه شروع شود و قاعدتاً هفته اول دو روز است )
2- بنده دقت شما را نداشتم و فکر کردم تابع dateAdd را از ماژول فارسی پیوست برنامه استفاده کردند . البته اکثر مدیران ( نه فقط مدیر ما ) توجهی به دقت تاریخ ندارند که هفته اول سال از شنبه شروع میشود یا از جمعه ! منظور از هفته اول هفته شروع کاری است که اگر از اواسط هفته به بعد شروع شده باشد آنرا به حساب نیاورند . بااین حساب هفته اول اولین هفته سال است که از شنبه شروع شده است !
3- با توجه به تصویر پیوست ( یا مشابه آن ) و موار مندرج در بند 4 پست قبلی ، هنوز هم منتظر راهنمایی هستم !