PDA

View Full Version : ثبت همزمان چندین فاکتور و عدم تکرار شماره فاکتور



nader.golab
جمعه 30 بهمن 1394, 18:58 عصر
سلام و خسته نباشید.

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

کد شرکت=44 , کد کاربر=111 , کد شروع فاکتور=200 + اندیس=1 ==> 44111201

مشکل این شماره اینکه:

1-طولانیه
2-اگه کاربر ها متفاوت باشن فقط کد کاربرها تغییر می کنه نه شروع فاکتور + اندیس

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

[younes]
جمعه 30 بهمن 1394, 19:12 عصر
کمی در مورد چند نخی و تقارن و قفل ها در c# تحقیق کنید. Thread Synchronization (https://msdn.microsoft.com/en-us/library/ms173179.aspx)

alibilgats
شنبه 01 اسفند 1394, 05:23 صبح
سلام دوست عزیز
واسه اینکه مشکل همزمانی و تکرار نداشته باشی به نظر من بهتره تولید شماره فاکتور رو بذاری به عهده خود بانک اطلاعاتی!
چون موقه باز شدن فرم صدور فاکتور اگه آخرین شماره رو بگیری ممکنه اون شماره قبل از ثبت شما توسط کاربر دیگه ای ثبت بشه!
یعنی پروسیجر درج کردن فاکتور رو طوری بنویس که بعد از درج پروسیجر خودش شماره فاکتور رو برگشت بده!
زمان ثبت فاکتور هم تو بجای شماره فاکتور یه علامت سوال بذار تا وقتی که اون فاکتور ثبت نهایی نشده:چشمک:

من خودم از این روش استفاده کردم البته با کمی مدیریت! خیلی هم خوب جواب میده:چشمک:
موفق باشی

nader.golab
شنبه 01 اسفند 1394, 09:48 صبح
سلام دوست عزیز
واسه اینکه مشکل همزمانی و تکرار نداشته باشی به نظر من بهتره تولید شماره فاکتور رو بذاری به عهده خود بانک اطلاعاتی!
چون موقه باز شدن فرم صدور فاکتور اگه آخرین شماره رو بگیری ممکنه اون شماره قبل از ثبت شما توسط کاربر دیگه ای ثبت بشه!
یعنی پروسیجر درج کردن فاکتور رو طوری بنویس که بعد از درج پروسیجر خودش شماره فاکتور رو برگشت بده!
زمان ثبت فاکتور هم تو بجای شماره فاکتور یه علامت سوال بذار تا وقتی که اون فاکتور ثبت نهایی نشده:چشمک:

من خودم از این روش استفاده کردم البته با کمی مدیریت! خیلی هم خوب جواب میده:چشمک:
موفق باشی

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

درسته حق با شماست اگه بخواد شماره رو دستی وارد کنه می تونه و اگر هم بخواد پشت سر هم بخوره آخر کار شماره فاکتور رو ببینه که ثبت شد.
ممنون که کمک فکریم کردین.سپاس فراوان.

پس دوستان بهترین کار به نظرم همین هستش

حسین.کاظمی
شنبه 01 اسفند 1394, 11:24 صبح
سلام
بله بهترین و مناسب ترین روش همین است.
من خودم یه برنامه دبیرخانه نوشتم و به یک سازمان تو شهرمون فروختم و بعد از مدتی واحد IT تماس گرفتند و همین مشکل را عنوان کردند؛ اومدم یه کلاس برای درج اطلاعات دریافتی و انتساب شماره نامه براساس آخرین رکورد نوشتم.
حالا کاربر وقتی وارد فرم ارسال نامه میشه همه چیز را میبینه جز شماره نامه،و براساس درخواست های کارفرما ثبت نامه را به دوقسمت تبدیل کردم:
1- ثبت موقت
2-ثبت قطعی
حالا وقتی ثبت قطعی شد قبل از شماره میاد شماره آخرین رکورد بانک را میگیره بهش یدونه اضافه میکنه و شماره جدیده را توسط یک مسیج باکسبه کاربرنشون میده و از فرم میاد بیرون.
تاالان که چند ماهی است میگذره و تماسی در این رابطه نگرفتند:لبخند:

موفق باشید.

nader.golab
شنبه 01 اسفند 1394, 18:33 عصر
سلام
بله بهترین و مناسب ترین روش همین است.
من خودم یه برنامه دبیرخانه نوشتم و به یک سازمان تو شهرمون فروختم و بعد از مدتی واحد IT تماس گرفتند و همین مشکل را عنوان کردند؛ اومدم یه کلاس برای درج اطلاعات دریافتی و انتساب شماره نامه براساس آخرین رکورد نوشتم.
حالا کاربر وقتی وارد فرم ارسال نامه میشه همه چیز را میبینه جز شماره نامه،و براساس درخواست های کارفرما ثبت نامه را به دوقسمت تبدیل کردم:
1- ثبت موقت
2-ثبت قطعی
حالا وقتی ثبت قطعی شد قبل از شماره میاد شماره آخرین رکورد بانک را میگیره بهش یدونه اضافه میکنه و شماره جدیده را توسط یک مسیج باکسبه کاربرنشون میده و از فرم میاد بیرون.
تاالان که چند ماهی است میگذره و تماسی در این رابطه نگرفتند:لبخند:

موفق باشید.

عالی بود.از تجربه خوب شما لذت بردم و نهایت تشکر رو دارم.چون موضوع خیلی مهمی بود.

nunegandom
شنبه 01 اسفند 1394, 19:15 عصر
سلام دوست عزیز یه نگاهی به انجمن بنداز و جست و جو کن یه همچین چیزی رو بدون کمک بانک اطلاعاتی یه نفر درست کرده بود
جست و جو رو به عهده خودت میگذارم موفق باشی در ضمن از گوگل برای جست و جو استفاده کن با دستور site:barnamenevis.org chizikemikhay

nunegandom
شنبه 01 اسفند 1394, 19:16 عصر
البته با استفاده از تاریخ بود و درباره کد دانشجویی بود اگه اشتباه نکنم یا حق

davidrobert
یک شنبه 02 اسفند 1394, 03:43 صبح
دوست عزیز من همچین مشکلی داشتم حل کردم .
تو فرم لود میگفتم شماره جدید رو قرار بده و داخل دکمه هم میگفتم اون شماره جدید بزرگ تر رو قرار بده وقتی بزرگ رو قرار دادی تمام اطلاهات همون دقیقه ذخیره کن.
یعنی شما اول تو فرم لود بزرگ ترین عدد رو گیر میاری بعد دوباره کد همون بزرگ ترین عدد رو صدا میکنی و میگی برای ذخیره اول باید بزرگ ترین عدد رو نشان بده و بد همون بزرگترین عدد با اطلاعات دیگه رو ذخیره کنه من انجام دادم جواب داده برای برنامه های شبکه ای