PDA

View Full Version : اشکال در درج اطلاعات در جداول Master/Detail



code_project
پنج شنبه 29 فروردین 1392, 07:20 صبح
با سلام خدمت دوستان
من یه برنامه دارم که به یه بانک با دوتا جدول وصله. توی یه جدول شماره ثبت کالاها میشینه که این جدول جدول master منه و توی جدول دوم ردیف های کالا قرار می گیره که این جدول جدول detail من میشه.
این برنامه تحت شبکه اجرا میشه و شماره ثبت را خود سیستم بسته به آخرین شماره ثبت کالای ثبت شده در جدول master می اندازه و کاربر می تونه ردیف های کالا را در یه جدول temp اضافه کنه(این جدول temp دقیقا ساختارش شبیه جدول detail ماست) و پس از زدن دکمه ثبت نهایی، اطلاعات توی جدول detail میشینه.
حالا مشکل من اینه:
فرض کنید یه کاربربرنامه را باز کرده و مثلا داره ردیف های کالا برای شماره ثبت کالای 100 را میزنه. در همین حین یه کاربر دیگه از یه سیستم دیگه وارد میشه و قاعدتا اون هم شماره ثبت 100 را می بینه(چون هنوز دکمه ثبت نهایی زده نشده که سطر جدیدی به جدول اصلی اضافه بشه و شماره ثبت یکی اضافه بشه). من چطور می تونم کاری کنم که شماره 100 برای کاربر اول قفل بشه و کاربر دوم شماره 101 را ببینه؟ البته میشه این کار را کرد که سیستم شماره ثبت را از جدول temp بندازه ولی یه مشکل بوجود می آد. اگه کاربر اول از زدن دکمه ثبت نهایی منصرف بشه اونوقت شماره ثبت 100 در جدول master خالی رد میشه که من این را نمی خوام. حالا شما میگید من چکار کنم؟

veniz2008
پنج شنبه 29 فروردین 1392, 10:42 صبح
سلام.
چندبار خوندم ولی نگرفتم دقیقا چی میخواید.
مگر دکمه ثبت نهایی برای جدول detail نیست؟. پس چطور به جدول اصلی اضافه میشه؟.
آیا برای هر شماره ثبت، فقط یه کاربر میتونه ردیف اضافه کنه؟.
آیا با ثبت در جدول detail ، بصورت خودکار در جدول master داده ثبت میشه؟!!!!!!!!!
کلا جملاتتون ابهام داره و نمیشه راهنمایی درستی انجام داد.

code_project
پنج شنبه 29 فروردین 1392, 11:16 صبح
سلام مجدد
توی جدول master شماره های ثبت میشینه که یه کد 5 رقمیه و برنامه آخرین کد این جدول را میخونه و یکی بهش اضافه میکنه و به کاربر نشون میده.
حالا کاربر برای اون شماره ثبت لیست کالا و مشخصات هر کالا را اضافه میکنه. که این ردیف کالاها یکی یکی اضافه میشه و توی یه جدول موقت نگهداری میشه.
مثلا:
واسه شماره ثبت 12423 سه ردیف کالای 1و2و3 ثبت میشه.
حالا کاربر کل موارد درج شده را چک میکنه و با زدن دکمه ثبت نهایی، شماره ثبت توی جدول master و شماره ردیف کالاهای مربوط به اون شماره ثبت توی جدول detail میشینه و جدول موقت کاملا خالی میشه. بعد از زدن دکمه ثبت نهایی، حالا کاربر شماره ثبت 12424 را می بینه و میتونه ردیف کالاهای این شماره را طبق روال قبل درج کنه.
اما مشکل وقتی بوجود میاد که دو تا کاربر از دوتا سیستم متفاوت وارد بشن و مشغول عملیات بشن که در این صورت ممکنه واسه یه شماره ثبت یکسان، ردیف کالاهای نادرستی به بانک اضافه بشه.

code_project
پنج شنبه 29 فروردین 1392, 11:22 صبح
یه نکته که خیلی روش تاکید دارم اینه که شماره های ثبت وارد شده در جدول master بایستی پشت سر هم وارد بشن. نمیشه از شماره ثبت 1و2و3 یهو رفت 7! مگر اینکه عملیات حذف انجام بشه که این کار به صلاحدید کاربر انجام میشه.

veniz2008
پنج شنبه 29 فروردین 1392, 11:26 صبح
خوب درون sp خودتون و قبل از دستور درج، با متد EXISTS چک کنید که اون شماره ثبت قبلا ثبت نشده باشه و اگر وجود داشت، شماره ثبت جدید رو از جدول بخونید و کار رو ادامه بدید.