PDA

View Full Version : سوال: مشخص کردن اجناس تاریخ گذشته



محمد علی کارگر
چهارشنبه 04 مرداد 1396, 20:40 عصر
با سلام خدمت اساتید محترم
بنده یه برنامه دارم که از طریق یکی از فرم ها اطلاعات اجناس ورود به انبار را وارد می کنم و از طریق فرم دیگر هم اطلاعات اجناس خروج از انبار را وارد می کنم .
و موجودی انبار را هم در یک دیتا گرید ویو نمایش می دهم
فقط مشکل بنده اینه که الان می خوام اجناسی که از تاریخ ثبت ورود به انبار آنها 15 روز گذشته به من نمایش داده شود .یعنی چجوری بگم اجناسی که در انبار موجود دارم وبیش از 15 روز در انبار دپو شده است به من نمایش داده شود.فقط خیلی در گیرشم کمکم کنید .
نوع فیلد های تاریخ هم از نوع nvarchar(50) می باشد .

رامین مرادی
پنج شنبه 05 مرداد 1396, 19:00 عصر
تاریخ رو میلادی ذخیره میکنی یا شمسی؟
اگه میلادیه میشه با تابع datediff اونو با تاریخ امروز مقایسه کنی اگه نتیجه بیشتر از 15 روز بود عملیاتتو انجام میدی

مثلا کد زیر


select * from tblKala
where DateDiff(Day,TarikhEmroz,Tarikhkala)>14


این یه مثاله که کالاهایی که از زمان وردشون تا امروز بیشتر از 14 روز میگذره بهت برمیگردونه. و هر بلایی خواستی سرشون بیار

محمد علی کارگر
پنج شنبه 05 مرداد 1396, 19:09 عصر
تاریخ رو میلادی ذخیره میکنی یا شمسی؟
اگه میلادیه میشه با تابع datediff اونو با تاریخ امروز مقایسه کنی اگه نتیجه بیشتر از 15 روز بود عملیاتتو انجام میدی

مثلا کد زیر


select * from tblKala
where DateDiff(Day,TarikhEmroz,Tarikhkala)>14


این یه مثاله که کالاهایی که از زمان وردشون تا امروز بیشتر از 14 روز میگذره بهت برمیگردونه. و هر بلایی خواستی سرشون بیار

سلام دوست عزیز تاریخ ها به صورت شمسی توسط یک کامپوننت BPersianCalenderTextBox به دیتابیس ارسال میشه .دقیقا مشکلم همینه که نمیدونم چجوری قبل از اینکه بفرستم دیتابیس به میلادی تبدیل کنم بعد ذخیره بشه و بعد چجوری دوباره شمسی نشون بدم

رامین مرادی
جمعه 06 مرداد 1396, 13:08 عصر
خب نیاز نیست زیاد خودتو به دردسر بندازی . تو اس کیو ال تابع های آماده ای نوشتن که موقع انجام محاسبات میتونی هم.نجا تاریختو به میلادی تبدیل کنی و محاسبتو بکنی . من خودم از این روش استفاده میکنم. این لینکو ببین. من از این تابع استفاده کردم.
http://learnbi.ir/1391/09/19/post-32
یه بار تو اس کیو ال کپیش کن و اجراش کن بعد هر وقت لازم داشتی اینطوری صداش بزن
dbo.ShamsitoMiladi('1358/10/11'

و برای مثال فوق هم که گفتم اینجوری میشه.

select * from tblKala
where DateDiff(Day, convert(date,dbo.ShamsitoMiladi(TarikhEmroz)), convert(date,dbo.ShamsitoMiladi(Tarikhkala)))>14

محمد علی کارگر
یک شنبه 08 مرداد 1396, 18:12 عصر
با سلام دوست عزیز .دستت درد نکنه کارم با تاریخ راه افتاد .از دیروز تا الان در گیرم در نحوه هنگام خروج دادن محصول چجوری بفهمم که کدوم تاریخ ورود داشته تا از اون تاریخ کم کنم ..مثلا جنس a در تاریخ 1396/05/08 به انبار وارد شده و تا تاریخ 1396/05/23 اعتبار دارد . شاید دو روز بعد این کالا یعنی a با همین مشخصات فقط در تاریخ دیگری تولید و وارد انبار شود .هنگام خروج دادن اول باید تاریخ 8 خروج بخورد بعد تاریخ 10 .چجوری ارتباط برقرار کنم که اول جنس 8 انتخاب شود بعد جنس تاریخ 10 (البته فقط به صورت سیستمی ) منظورم حالت فیزیکی انبار نیست .ممنون

رامین مرادی
دوشنبه 09 مرداد 1396, 11:25 صبح
با سلام دوست عزیز .دستت درد نکنه کارم با تاریخ راه افتاد .از دیروز تا الان در گیرم در نحوه هنگام خروج دادن محصول چجوری بفهمم که کدوم تاریخ ورود داشته تا از اون تاریخ کم کنم ..مثلا جنس a در تاریخ 1396/05/08 به انبار وارد شده و تا تاریخ 1396/05/23 اعتبار دارد . شاید دو روز بعد این کالا یعنی a با همین مشخصات فقط در تاریخ دیگری تولید و وارد انبار شود .هنگام خروج دادن اول باید تاریخ 8 خروج بخورد بعد تاریخ 10 .چجوری ارتباط برقرار کنم که اول جنس 8 انتخاب شود بعد جنس تاریخ 10 (البته فقط به صورت سیستمی ) منظورم حالت فیزیکی انبار نیست .ممنون

از دکمه تشکر استفاده کنید.



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

تقریبا اینجور میشه

select * from kala where kalaId='123' order by Date1 Asc



خب حالا تو برنامت این کوئری رو اجرا کن و سطر اولش میشه اون کالایی که تاریخ ورودش کوچیکه