نمایش نتایج 1 تا 9 از 9

نام تاپیک: یک سوال در زمینه تحلیل سیستم

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709

    یک سوال در زمینه تحلیل سیستم

    دوستان سلام
    من مشغول نوشتن برنامه ای برای سوپر مارکت هستم. سوالی در مورد تحلیل برنامه داشتم . کسانی که در این زمینه دارای تجربه هستند لطفا راهنمایی نمایند.
    ما برای هر کالا کد مشخصی را در نظر گرفته ایم که موقع خرید یا فروش کالا با دادن کد نام کالا مشخص میشود ( از طریق بارکد) اما هر کالا به غیر از نام و کد دارای مشخصه دیگری نیز هست و آن تاریخ خرید و تاریخ انقضاء آن میباشد . ما از این فیلد خیلی استفاده میکنیم مانند گزارش کالاهایی که مدت کمی تا انقضای آنها ماند ه و غیره . ما میتوانیم با هر بار خرید کالای تازه تاریخ انقضای آنرا نیز ثبت نمائیم اما مشکلی که هست این است که مثلا ما در ماه 5 تعدادی کالا خرید کرده ایم که 2 ماه دیگر تاریخ انقضای آنهاست ( یعنی ماه 7 ) و ما در ماه 6 نیز تعدادی دیگر از همین کالا خریداری میکنیم با تاریخ انقضای 2 ماه بعد ( یعنی ماه 8) این در حالی است که هنوز از خرید قبلی این کالا در انبار موجود است برنامه ما باید هم تاریخ انقضای خرید قبلی و هم تاریخ انقضای خرید فعلی را تشخیص دهد . و با هر بار فروش ما باید موجودی را از انبار کم کنیم و در این کم کردن هم باید برنامه تشخیص دهد از کدام خرید ( خرید ماه 5 یا 6 ) کم کند که معمولا ماه اول باید باشد.
    امیدوارم که توانسته باشم مشکلم را به خوبی بیان کرده باشم .

    حال از دوستانی که در این زمینه تجربه دارند خواهشنمدم راهنمایی نمایند .

  2. #2
    سلام
    دوست عزیز اتفاقا من در پروژه «داروخانه» با این چنین مشکلی روبرو بودم.
    برای اینکار باید اول ببینید که موجودی کالای x در انبار چقدر هست. اگر به اندازه‌ای که می‌خواستید وجود داشت باید بر اساس تاریخ‌های خرید بصورت نزولی اقدام به کم کردن موجودی هر خرید نمائید. بعنوان مثال چنانچه خریدی با انقضای 2 ماه دیگر و موجودی 7 بسته و خرید دیگری با انقضای 8 ماه دیگر و 20 بسته در انبار باشد و شما بمقدار 10 بسته بخواهید از انبار خارج کنید، باید ابتدا موجودی انبار را بصورت صعودی مرتب کنی و رکوردهای حاضر را پیمایش کنی تا به مقدار 20 بسته برسی. اینکار با یک حقله Do بدین صورت امکان پذیر است(بدنه اصلی برنامه):

    Count = 20
    Do
    If rst!Cnt < 20 Then
    Count = Count - rst!Cnt
    rst!Cnt = 0
    Else
    rst!Cnt = rst!Cnt - Count
    Count = 0
    End If
    rst.MoveNext
    Loop While Count > 0

    آخرین ویرایش به وسیله PalizeSoftware : دوشنبه 16 آبان 1384 در 15:32 عصر

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    دوست عزیز

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

    در مورد برنامه هایی که کالای آنها تاریخ مصرف ندارد کار خیلی راحت است مانند برنامه ای برای فروشگاه مصالح ساختمانی . طرف با خرید مثلا تیرآهن - به مقدار خرید به انبار اضافه میشود و هنگام فروش هم به تعداد فروش از انبار کم میشود . میتوان موجودی انبار را در جدولی که نام و کد کالا ذخیره میشود قرار داد و هر بار به آن اضافه یا از آن کم نمود
    اما در مورد کالاهایی که تاریخ انقضا دارند مسئله فرق میکند ما با هر بار خرید کالا نمیتوانیم به تعداد آن به انبار اضافه نمائیم زیرا دارای دو تاریخ انقضای مختلف هستند . در مورد فروش خوب مشخص است ما به قول جنابعالی سورتی بر اساس تاریخ انقضا به بانک میزنیم و از قدیمیترین تاریخ انقضا کم میکنیم . اما سوال من در مورد خرید کالا است که با هر بار خرید کالا فیلد تاریخ انقضا را در کدام جدول قرار دهیم ؟ نمیدانم توانستم بهتر منظورم را برسانم یا خیر ؟

  4. #4
    کاربر دائمی آواتار ehsan_ansaripoor
    تاریخ عضویت
    تیر 1384
    محل زندگی
    isfahan
    پست
    706
    دوست عزیز در سوپر مارکت ها معمولا از روش FIFO استفاده می کنند یعنی اولین صادره از اولین وارده به علت اینکه کالاهای فاسد شدنی است در این مواقع شما موقعی که کالایی را وارد انبار می کنی و در واقع سند خرید (فاکتور خرید) را می زنی اطلاعات به طور معمول وارد Table می گردد ولی در زمانی که سند فروش یا فاکتور فروش زده می شود کالاهای شما باید از تاریخ کوچکتر صادر گردد
    در مورد Table قطعا شما باید یه جدول خرید و یه جدول فروش داشته باشی
    در مورد فیلدها هم قطعا شما باید فیلدهایی مثل شماره فاکتور - تاریخ خرید - تاریخ انقضا - تاریخ فروش - تعداد - وزن -
    فی - مبلغ کل - مبلغ وجه - تخفیف و چند مورد دیگر بنا به درخواست مشتری
    در مورد فیلد تاریخ انقضا خب داخل Table خرید قرار می گیره و در زمان فروش از Table خرید می کشی بیرون و داخل Table فروش میریزی

  5. #5
    در این گونه موارد بهتر است از شناسه استفاده بکنی
    هر کالا علاوه بر کدی که داره برای هر ورود به انبار شناسه منحصر به فرد باید داشته باشه
    موقعی که کالایی فروخته می شه علاوه بر کد که مشخص میشه , شناسه آن کالا هم مشخص میشه

    مثلا این ماه کالایی با کد 111 و با شناسه 1-111 وارد انبار می شه
    ماه بعد باز از این کالا با کد 111 وارد انبار می شه ولی با شناسه متفاوت 2-111 با استفاده از شناسه ها می تونی این مشکل رو حل کنی
    موقعی هم که انبار موجودی کالا میده همیشه موجودی کد کالا با شناسه کالا داده میشه یعنی هر کد کالا می تونه با شناسه های مختلف برای چندین بار تکرار بشه


    باز هم اگه سوالی داشتی بنده در خدمتم

  6. #6
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    با سپاس از پاسخ همه دوستان

    دوست عزیز جناب JK به نظر من روش شما روش مناسبی است اگر امکان داره بیشتر توضیح بدهید .

  7. #7
    این روش را من برای یک شرکت تولید کننده مواد غذایی بکار بردم

    قبل از بکار بردن این روش لازم می دونم موردی رو خدمت شما یادآوری بکنم و برای این منظور روال استفاده شده در اون شرکت برای سوپرمارکت بکار می برم

    فرض کنید کد آبلیمو 111 هستش این ماه دو کارتن آبلیمو وارد انبار سوپر مارکت می شه شناسه 1 برای این دو کارتن صادر می شه باید به این نکته توجه داشته باشید که توسط برچسبی شناسه 1 برای این دو کارتن باید مشخص گردد. ماه بعد هم 3 کارتن آبلیمو وارد سوپرمارکت می شه و برای این سه کارتن شناسه 2 صادر می شه الان دو رسید ورود به انبار داریم با تاریخ های مشخص و شناسه های مشخص

    زمانی که کالای آبلیمو به قسمت فروش ارائه می شه از شناسه 1 هستش و حواله انبار هم به همین مشخصات صادر می شه

    خوب با این روش شما می تونید موجودی انبار خود رو داشته باشید

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

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

  8. #8
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    دوست عزیز سپاس از توضیحاتت

    برنامه من از بارکد خوان استفاده میکند اما این اولین پروژه من با بارکد است و سوالی هم در مورد آن داشتم اگر شما قبلا تجربه کرده اید لطفا راهنمایی نمائید .

    در همه فروشگاههایی که از بارکد خوان استفاده میکنند از بارکدهایی که کارخانه تولید کننده بارکد روی کالا میزند استفاده میکنند یا فروشگاهها خودشان بارکد را تولید میکنند . چون قبلا با بارکد کار نکرده ام این نکته را نمیدانم اما اگر کارخانه تولید کننده کالا خود بارکد را بزند چون طرف از تولید کننده های مختلف میخرد امکان دارد دو کالا یک داشته باشند . من فکر میکنم شخص خریدار خود بارکد مخصوص خود را روی کالا بزند آیا اینطور است ؟

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

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

    در ضمن اگر برنامه ای جهت تولید بارکد داشته باشی و امکان عرضه آنرا داشته باشی خیلی ممنون میشوم من خودم برنامه ای دارم و خودم آنرا نوشته ام اما اگر برنامه ای کاملتری از نمونه خودم داشته باشم خیلی بهتر است .

    با سپاس مجدد

  9. #9
    در مورد تکراری بودن بارکد گفته باشم که امکان تکراری بودن بارکد وجود ندارد و جا داره به این نکته اشاره کنم که بارکدی که برای کالا صادر می شه در کل دنیا منحصر به فرد هستش !!! و امکان تکراری بودن وجود نداره
    ولی برای پیاده کردن سیستم شناسه شما باید از این بارکد صرف نظر کنید و بارکد جدید با شناسه ایجاد کنید

    در مورد سوال شما در مورد بزرگ شدن بانک
    شما می تونید بر روی گروه کالاها کار کنید
    مثلا برای ورودی دو کارتن آبلیمو برای این ماه یک شناسه و برای سه کارتن آبلیمو برای ماه بعدی شناسه دیگه صادر بکنید در این حالت برای هریک از ورودی ها یک رکورد ایجاد میشه

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

    ولی زمانی که دو کارتن آبلیمو وارد انبار می شه این موقع یک رکورد با کد کالا و شناسه و تعداد ایجاد می شه البته اینو گفته باشم واحد شمارش عدد هستش نه کارتن
    فرض کنیم هر کارتن حاوی 24 عدد آبلیمو هستش در این موقع رکورد رسید انبار شما حاوی مقادیر زیر هستش
    مقدار 48 عدد آبلیمو با شناسه 1 و کد 111 منظور می شه

    دلیل اینکه واحد رو عدد گرفتیم اینه که واحد فروش تو سوپر مارکت عدد هستش
    در جاهایی که عمده فروشی می کنند این واحد به کارتن تغییر می کنه

    در مورد کار با دستگاه بارکدخوان بنده تجربه برنامه نویسی ندارم
    آخرین ویرایش به وسیله jk : پنج شنبه 19 آبان 1384 در 09:35 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •