PDA

View Full Version : تولید کد اتوماتیک در حسابداری تحت شبکه



ByRoad
چهارشنبه 26 اسفند 1388, 12:58 عصر
با عرض سلام خدمت دوستان

سوال مهمی داشتم درباره با تولید کد فاکتوری و یا حسابداری در سیستم تحت شبکه

2تا جدول به نام T_Factor و T_Buy موجود داریم .
به طور مثال اگر 3 کاربر به طور همزان بخواهند فاکتوری جدید را در سیستم ثبت نمایند و با توجه به

اینکه "کدفاکتور" در دیتابیس AutoInc می باشد به ایرادی برخورد نمی کنیم.(در جدول T_Factor)

سوال اینه که حالا اگه کسی بخواد اقلام یک فاکتور رو در یه جدول جدید وارد کنه ( ارتباط هم بر
اساس "کدفاکتور" در جدول T_Buy) هست , حالا دقیقا بعد از ورود اطلاعات به دیتابیس چطور می تونیم کد هر فاکتور رو درست پیدا کنیم(در جدول T_Factor)؟!!!!!!!!

Mask
چهارشنبه 26 اسفند 1388, 13:51 عصر
ای که وگفتی یعنی چه؟:متفکر::لبخند:
من که متوجه نشدم.

pezhvakco
چهارشنبه 26 اسفند 1388, 18:55 عصر
درود :

سوال اینه که حالا اگه کسی بخواد اقلام یک فاکتور رو در یه جدول جدید وارد کنه ( ارتباط هم بر
اساس "کدفاکتور" در جدول T_Buy) هست , حالا دقیقا بعد از ورود اطلاعات به دیتابیس چطور می تونیم کد هر فاکتور رو درست پیدا کنیم(در جدول T_Factor)؟!!!!!!!!

1) اقلام یک فاکتور یعنی کدوم فاکتور ؟
فاکتور در حال نوشتن یا نوشته شده .

2) ورود کدوم اطلاعات به کدوم دیتابیس ؟
اگه اطلاعات مورد نیاز را پیدا کردی که شماره فاکتور هم همراش هست .

ByRoad
چهارشنبه 26 اسفند 1388, 20:10 عصر
به طور مثال
جدول T_Factor شامل فیلد IdF,DateF,Family
جدول T_Buy شامل IdF,IdProduct,Price

IdF در جدول T_Factor ,Autoinc هست. ابتدا در جدول T_Factor با دستور sql تاریخ و نام خانوادگی رو اضافه می کنیم .دیتابیس به طور اتوماتیک به IdF مقداری رو اضافه میکنه .درهیمن جا اگه سیستم تحت شبکه باشه و باشه و چند کاربر به طور همزمان این کارو انجام بدن می خوام IdF رو بدست بیارم ؟؟؟؟؟


تا ازطریق idF جدول دوم رو پر کنم !

ByRoad
پنج شنبه 27 اسفند 1388, 01:33 صبح
* Rows—an entire row from a database table
* Pages—a collection of rows (usually a few kilobytes)
* Extents—usually a collection of a few pages
* Table—an entire database table
* Database—the entire database table is locked

کسی آشنایی خاصی داره با این عملیات ها؟

pezhvakco
پنج شنبه 27 اسفند 1388, 08:53 صبح
درود :

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

ByRoad
پنج شنبه 27 اسفند 1388, 09:50 صبح
مرسی
2 حالت بیش میاد. یکی اینکه ایجاد کد دستی که مشکلی بیش نمیاره اگه Duplicate باشه خطا بر میگردونه . یکی دیگه اینه که کاربر دوست داره سیستم کدش اتوماتیک باشه ,مشکل من با این هست

جستجو زیاد کردم . راه حلاش : قفل در سطح رکورد , قفل در سطح جدول

اگه کسی راه حلی داره یا کمکی کنه ممنون می شم

mehdimdp
شنبه 29 اسفند 1388, 01:24 صبح
راستش من تا حالا تحت شبکه برنامه نویسی نکردم.
ولی مطمئن هستم که حتما متدهای خاصی وجود دارند که به ما در این زمینه کمک می کنند.
حال با فرض اینکه هیچ متدی و کد و تابع و دستوری در این رابطه وجود نداشته باشه (یا من بلدنیستم) من این الگوریتم رو پیشنهاد میدم:
(به شرط autoinc نبودن)
یک جدول و یا یک آرایه برای ثبت idfهای رزور شده در نظر میگیریم
حالا هر کاربر بخواد فاکتور جدیدی ثبت کنه ، فقط کافیه که یه نگاه به جدول رزو بندازه

اگر خالی بود ، به آخرین id یک واحد اضافه می کنه و اول اونو در جدول رزو ثبت میکنه
بعد شروع به ادامه عملیات که شامل ثبت و ذخیره فاکتور می باشد میکنه

اگر جدول رزو خالی نبود کافیه یک رکورد جدید به اون جدول با اضافه کنه که مقدارش باید برابر با مقدار آخرین رکورد به اضافه یک باشه و کارشو ادامه بده

pezhvakco
شنبه 29 اسفند 1388, 11:41 صبح
2 حالت بیش میاد. یکی اینکه ایجاد کد دستی که مشکلی بیش نمیاره اگه Duplicate باشه خطا بر میگردونه . یکی دیگه اینه که کاربر دوست داره سیستم کدش اتوماتیک باشه ,مشکل من با این هست
میشه یه کم واضح تر بگی ، مشکلی پیش نمیاره و خطا بر میگردونه ؟!
کد دستی میخوای یا اتوماتیک . یه کد توماتیک بده ولی زمان ذخیره بهتره کد رو اصلاح کنی چون امکان داره یکی از کاربران بعد از دریافت کد اتوماتیک انصراف بده و کد خالی زیادی بمونه .

daffy_duck376
یک شنبه 01 فروردین 1389, 14:07 عصر
بهترین کار اینه که در هنگام ذخیره فاکتور باید اطلاعات را ثبت کنی نه اول شماره فاکتور رو بزنی بهد آیتمها رو توی سیستم بزنی. برای راهنمایی میتونی از کامپوننت جدول مجازی اکه از مجموعه SDOC هست استفاده کنی هنگام ذخیره اطلاعات را از اون بخونی و به بانک اصلی بفرستی . در این حالت مشکال CANCEL کردن فاکتور هم از بین میره