۰۸-آبان-۱۳۸۷, ۱۲:۲۱:۴۵
صفحهها: 1 2
۰۸-آبان-۱۳۸۷, ۱۳:۵۵:۰۳
مقداری که تو دیتابیس ثبت شده چی هست ؟
نوع اون فیلد چی هست ؟
نوع اون فیلد چی هست ؟
۰۹-آبان-۱۳۸۷, ۲۲:۵۶:۵۸
ديتابيس توي سورس هست
ولي بازم توي كوئري كه دارم فيلد Data/time هست و Longtime
البته يه چيزي رو بگم
مثله اينكه وي بي اصلا اهميتي به اون نميده
چون من وقتي datagrid رو گذاشتم دوتا فيلد timein و timeout فرمتش درست بود ولي مجبور شدم فرمت اون يكي رو خودم تغيير بدم
اگه لازمه بگين بانك رو دوباره اينجا بزارم
البته شرمنده از اين كه دير سر زدم
اين هم بانك برنامه
ولي بازم توي كوئري كه دارم فيلد Data/time هست و Longtime
البته يه چيزي رو بگم
مثله اينكه وي بي اصلا اهميتي به اون نميده
چون من وقتي datagrid رو گذاشتم دوتا فيلد timein و timeout فرمتش درست بود ولي مجبور شدم فرمت اون يكي رو خودم تغيير بدم
اگه لازمه بگين بانك رو دوباره اينجا بزارم
البته شرمنده از اين كه دير سر زدم
اين هم بانك برنامه
۱۳-آبان-۱۳۸۷, ۲۲:۱۱:۴۴
كسي نيست يه كمكي برسونه
آقا مجتبي كجايي بابا
يه دستي برسون خدا خيرت بده
آقا مجتبي كجايي بابا
يه دستي برسون خدا خيرت بده
۱۵-آبان-۱۳۸۷, ۱۷:۱۰:۱۹
سلام
دیتابیس رو یه بررسی کردم و یک پیشنهاد دارم :
شما بجای اینکه جدول ورود رو از خروج جدا کنین هر دو رو یکی کنین و وقتی کارمند وارد شد اطلاعات ورود رو ثبت کنین و بقیه رو خالی بذارین و یک فیلد به جدول اضافه کنین به عنوان اختلاف (یا همون مجموع کارکرد روزانه که من اسشمو Diff انتخاب کردم) و وقتی کارمند میخواد حارج بشه یعنی اطلاعات خروجش ثبت بشه مجدد همون اطلاعاتی که قبلا ناقص ثبت شده بودن رو اینبار کاملش کنین با درج ساعت و تاریخ خروج و بعلاوه اینکه اختلاف این دو زمان رو تبدیل کنین به ثانیه و در فیلد جدید ثبت کنین
نکته : فیلد اختلاف رو از نوع عددی انتخاب کنین Long Integer
مثلا :
حالا شما هم زمان ورود و هم زمان خروج و هم اختلاف این دو رو که بیانگر ساعت کارکرد کارمند هست رو توی دیتابیس دارین و برای خوندن این اطلاعات و بدست آوردن ساعت کارکرد یک کامند خاص میتونین از کد اس کیو ال زیر استفاده کنین که همون ثانیه رو بصورت ساعت دقیقه و ثانیه جدا بهتون میده در ضمن این کد هیچ محدودیتی مداره و میتونه برای کارکرد یک ساله با فرض 16 ساعت کار در روز محاسبه کنه .
دیتابیس رو یه بررسی کردم و یک پیشنهاد دارم :
شما بجای اینکه جدول ورود رو از خروج جدا کنین هر دو رو یکی کنین و وقتی کارمند وارد شد اطلاعات ورود رو ثبت کنین و بقیه رو خالی بذارین و یک فیلد به جدول اضافه کنین به عنوان اختلاف (یا همون مجموع کارکرد روزانه که من اسشمو Diff انتخاب کردم) و وقتی کارمند میخواد حارج بشه یعنی اطلاعات خروجش ثبت بشه مجدد همون اطلاعاتی که قبلا ناقص ثبت شده بودن رو اینبار کاملش کنین با درج ساعت و تاریخ خروج و بعلاوه اینکه اختلاف این دو زمان رو تبدیل کنین به ثانیه و در فیلد جدید ثبت کنین
نکته : فیلد اختلاف رو از نوع عددی انتخاب کنین Long Integer
مثلا :
کد:
In :
date =2008/11/05
time =07:29:35
out :
date =2008/11/05
time =22:30:45
Differen :
15:1:10
54070
کد:
SELECT trim(str(int(sum(Diff)/3600))) +":" + trim(str(int((sum(Diff) mod 36000)/60))) +":" + trim(str((sum(Diff) mod 3600) mod 60)) as Differen FROM dbin;
۲۲-آبان-۱۳۸۷, ۰۸:۰۴:۳۵
من خواستم یه نمونه برنامه ساده درست کنم که ورود و خروج اشخاص رو ثبت کنه ولی خودم هم توش موندم.
لیست ورود و خروج یک کارمند رو باز کنید و به زمان هاش توجه کنید. با یک جمع سرانگشتی واضحه که بیشتر از 24 ساعت هستند.
حالا وارد لیست ورود و خروج کلی بشین. یه DataGride هست که باید Format مناسبی برای ستون TotalTimes ش انتخاب کنیم تا زمان های بیشتر از 24 ساعت رو درست نشون بده ولی من بلد نیستم.
فرمتی که من براش گذاشتم زمان های زیر 24 ساعت رو درست نشون میده و برای زمان های بزرگتر، باقیمانده زمان ب 24 رو نشون میده.
اگه کسی می تونه این مشکل رو حل کنه تا همه استفاده کنن.
قبلاً یه سری اطلاعات آزمایشی وارد کردم تا راحت باشید.
با تشکر.
لیست ورود و خروج یک کارمند رو باز کنید و به زمان هاش توجه کنید. با یک جمع سرانگشتی واضحه که بیشتر از 24 ساعت هستند.
حالا وارد لیست ورود و خروج کلی بشین. یه DataGride هست که باید Format مناسبی برای ستون TotalTimes ش انتخاب کنیم تا زمان های بیشتر از 24 ساعت رو درست نشون بده ولی من بلد نیستم.
فرمتی که من براش گذاشتم زمان های زیر 24 ساعت رو درست نشون میده و برای زمان های بزرگتر، باقیمانده زمان ب 24 رو نشون میده.
اگه کسی می تونه این مشکل رو حل کنه تا همه استفاده کنن.
قبلاً یه سری اطلاعات آزمایشی وارد کردم تا راحت باشید.
با تشکر.
۲۷-آبان-۱۳۸۷, ۱۰:۲۲:۴۴
من هميشه گفتم بازم مي گم تو ديتابيس همه چيز رو از تاريخ و ساعت گرفته تا عدد و اسم و توضيح و .... همه
رو به صورت استرينگ يا ممو ذخيره كنيد و پس از خوندن اطلاعات از ديتابيس اونها رو تبديل به مقدار مورد نظرتون
كنيد.
اينجا هم به سادگي مي تونيد ساعت رو به صورت استرينگ ذخيره كنيد ، بعد از خوندن ساعت ها اونها رو به سه
قسمت ساعت، دقيقه و ثانيه تقسيم كرده و يك به يك با هم جمع كنيد و نتيجه رو به صورت 85:22 نمايش بديد
كلا توابع حاضر آماده وي بي خيلي دم دستي و فرماليته هستند و اگه بخواين يكم حرفه اي تر باهاشون
كاركنيد به مشكل بر مي خوريد.
مجتبي جان مي دونم خودت اوستايي اما اگه لازم ديدي بگو تا يه نمونه هم آماده كنم
رو به صورت استرينگ يا ممو ذخيره كنيد و پس از خوندن اطلاعات از ديتابيس اونها رو تبديل به مقدار مورد نظرتون
كنيد.
اينجا هم به سادگي مي تونيد ساعت رو به صورت استرينگ ذخيره كنيد ، بعد از خوندن ساعت ها اونها رو به سه
قسمت ساعت، دقيقه و ثانيه تقسيم كرده و يك به يك با هم جمع كنيد و نتيجه رو به صورت 85:22 نمايش بديد
كلا توابع حاضر آماده وي بي خيلي دم دستي و فرماليته هستند و اگه بخواين يكم حرفه اي تر باهاشون
كاركنيد به مشكل بر مي خوريد.
مجتبي جان مي دونم خودت اوستايي اما اگه لازم ديدي بگو تا يه نمونه هم آماده كنم
۲۸-آبان-۱۳۸۷, ۰۳:۲۸:۱۵
سلام
یه تیکه برنامه کوچیک دستو پاشکسته نوشتم
ببینین این نیاز شما رو برطرف میکنه ؟
یه تیکه برنامه کوچیک دستو پاشکسته نوشتم
ببینین این نیاز شما رو برطرف میکنه ؟
۲۸-آبان-۱۳۸۷, ۰۷:۱۹:۱۹
نقل قول: من هميشه گفتم بازم مي گم تو ديتابيس همه چيز رو از تاريخ و ساعت گرفته تا عدد و اسم و توضيح و .... همهتو کار تجاری محض احتیاط همین کار رو می کنم ولی تو این نمونه برنامه میخواستم تا حد امکان از کدنویسی فرار کنم و با چندتا دستور SQL سر و تهش رو هم بیارم.
رو به صورت استرينگ يا ممو ذخيره كنيد و پس از خوندن اطلاعات از ديتابيس اونها رو تبديل به مقدار مورد نظرتون
كنيد.
ظاهراً کار بیخودی کردم چون اگه موفق هم می شدم که TotalTimes رو درست نشون بدم ایندفعه با تاریخ شمسی مشکل پیدا می کردم.
نقل قول: مجتبي جان مي دونم خودت اوستايي اما اگه لازم ديدي بگو تا يه نمونه هم آماده كنمنظر لطفته. من شاگرد شما هستم. نمونه برنامه آقا حامد نکات خوبی داره.
کد:
trim(str(int(sum(Diff)/3600))) +':' + trim(str(int((sum(Diff) mod 3600)/60))) +':' + trim(str((sum(Diff) mod 3600) mod 60)) as Differen
صفحهها: 1 2