الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال حول ترقيم الفواتير في برنامج مربوط بشبكة

بدأه رفيق الامل في 28 ديسمبر 2010 · 7 رد · 2,048 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

سؤالي هو انه يوجد لدي برنامج محاسبي

فاذا تم تركيب البرنامج على جهازين مرتبطين بسرفر وقاعده بيانات واحده في هذا السرفر

وعند ترحيل فواتير مبيعات يقوم البرنامج باصدار ارقام تلقائية

ولكن عند ترحيل هذه الفاتورة من الجهازين بنفس الوقت فان ذلك سينتج تكرار في رقم الفاتورة

لذلك ماهي الطريقه الامنه والمتبعه لعدم تكرار الارقام عند اصدار فواتير بنفس الوقت من الجهازين وشكرا

C# حبيبتي

#2

السلام عليكم ورحمة الله وبركاته

أخي العزيز عليك اولاً بعمل رقم الفاتورة في قاعدة البيانات مفتاح اساسي فريد غير قابل للتكرار

وبرمجيا انا شخصيا اتبع طريقة ناجحة معي وهي عمل ترتيب لأرقام الفواتير مع كل مرة اقوم بعمل الترحيل وزيادة رقم واحد عند التسجيل

كما أنه من النادر أن يتم الترحيل في نفس اللحظة

www.bashmo7aseb.blogspot.com

#3

اخي بازار بالتاكيد يجب ان يكون رقم الفاتورة فريد

وطريقتك صحيحه ولكن بجهاز واحد ولكن بجهازين هناك احتمال ان يوجد تكرار اذا ماتم الترحيل في نفس الوقت وسوف يتم الترحيل في جهاز والاخر لن تقبله قاعده البيانات لان رقم الفاتورة فريد

وانت قلت انه من النادر ان يتم الترحيل بنفس اللحظه ولكن اذا كان النظام مركب في سوبر ماركت فيه اكثر من 10 اجهزة فان الاحتمال سيكون كبير للترحيل في نفس اللحظة

C# حبيبتي

#4

السلام عليكم ورحمة الله وبركاتة

أخي العزيز في طريقة أنا بستخدمها ولحد دلوقتي ماعملتش مشاكل وهية

أنك عند ذر أضافة فاتورة جديدة تضع فية كود أستدعاء رقم الفاتورة المسلسل وبعد كدة تعمل حفظ بيانات الفاتورة في نفس ذر جديد هاتقولي طب لسة الأصناف ماضفتهاش هقولك أحنا لسة في ذر جديد

في ذر الحفظ تستدعي الفاتورة من خلال رقمها الموجود في التيكست الخاص برقم الفاتورة وتقوم بتحديث بياناتها

فابذلك المستخدم أول مايضغط علي فاتورة جديدة هيطلعلوة رقم الفاتورة ويتم حجز الفاتورة في قاعدة البيانات

وبالتالي لو فية مستخدم تاني عمل فاتورة جديد هيطلعلوة رقم تاني

يارب أكون قدرت أوصلك الفكرة

تم تعديل هذه المشاركة بواسطة Mohmed Helmy في 28 ديسمبر 2010 في 19:54

1
#5

اخي محمد

فكرة حلوة ولكن فيها مشكله اذا فرضنا حسب طريقتك ان المستخدم الاول حجز رقم الفاتورة 15 والمستخدم الاخر حجز فاتورة برقم 16

ثم قام المستخدم الاول بالغاء الفاتورة فان الرقم في المستخدم الثاني يظل 16 وهذا يعني ان تخطينا الرقم 15

وهذا سيسبب مشاكل في التسلل

وشكرا

C# حبيبتي

#6

أخي العزيز

المشكلة اللي حضرتك قولت عليها ممكن تتخطاها بأنك تعمل عمود داخل جدول الفواتير

تشيل فية حالة الفاتورة بحيث لو الفاتورة أتلغت تحفظ فية قيمة ملغي

أذا الفاتورة لم يتم ألغائها تحفظ فية كلمة تمت

وبطريقة دي تبقي حافظت علي التسلسل وكمان لو حبيت تعمل تقرير بالفواتير الملغية أو الغير ملغية

#7

أخي الكريم في حالة تم الإضافة في نفس الوقت في هذه الحالة سيقبل الاضافة من لأحد الأجهزة و سيرفض الإضافة من الأجهزة الأخرى وفي هذه الحالة ستقوم بعمل Error Handler وتضع فيه كود يقوم باستدعاء آخر رقم مرة أخرى ويقوم باضافة رقم وتسجيله .

#8

السلام عليكم

فى طريقه اخرى

انك تعمل الحقل مكون من عمودين واحد اﻻوتو نمبر بتاعك العادى والثانى يحتوى رقم الجهاز صاحب العمليه

تم تعديل هذه المشاركة بواسطة sayedall في 2 مارس 2011 في 21:02

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…