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

[ تمت الإجابة ]عمل ترقيم تلقائي من خلال التيكس

بدأه chairman في 14 يناير 2012 · 10 رد · 2,360 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الاخوة الافاضل وبالاخص الاخ اسد العراق

لدي شاشة فواتير واريد عندما اكبس على زر اضافة (لعمل فاتورة جديدة) يتم مباشرة في التيكس الخاص برقم الفاتورة اضافة رقم للفاتورة (هذا الرقم عبارة عن زيادة بمقدار 1 لرقم اخر فاتورة) ..... طبعا ونوع بيانات حقل رقم الفاتورة هي بيانات رقمية اي (ليست تلقائي)

اذ اني اريد الاضافة تتم من خلال التيكست............

مع جزيل الشكر مقدماً

#2

السلام عليكم

عمليا هذا أكثر موضوع يسبب القلق دائما خاصة في بيئة متعددة المستخدمين

لكن بالنهاية كل واحد أعلم بمتطلبات برنامجه وما هو بين يديه

على كل حال قد تفيدك الأفكار التالية

SELECT MAX(YourInvoiceField) AS InvoiceNo FROM YourHeaderTable INTO CURSOR Test
NewInvoiceNo=NVL(Test.InvoiceNo,0)+1
THISFORM.txtInvoiceNo.VALUE=NewInvoiceNo

أو

SELECT YourHeaderTable
SET ORDER TO YourInvoiceField
GO BOTT
NewInvoiceNo=NVL(Test.YourInvoiceField,0)+1
THISFORM.txtInvoiceNo.VALUE=NewInvoiceN

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

قد تفيدك الأفكار هنا How to create an auto-ID field in a FoxPro table by using ADO and ASP

ولكن هذا كله يعود لك

كحل وسط بالنسبة لي وللتقليل من نسبة الأخطاء

بعد عمل اضافة...

أقوم بتصفير رقم الفاتورة

بعد الانتهاء من تفاصيل الفاتورة الأخرى

والنجاح بعمل FLOCK بشكل يدوي للجدول

استخدم كود Select الموجود بالأعلى * وهنا فقط أُثبت رقم الفاتورة *

انهاء عملية الحفظ وفك حجر الملفات يدويا أيضا

1

أستغفر الله العظيم و أتوب إليه

#3

شكرا لك اخي شادوا وزادك الله علما

جاي التجريب

#4

العفو...وبانتظار النتائج

أستغفر الله العظيم و أتوب إليه

#5

السلام عليكم

ماشاء الله على هذة الحركة في المنتدى

شو الاحوال اخي شادو والاخ العزيز كاتب الموضوع

طريقة جميل فكرة رائعة من الاخ شادو

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

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

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

يقوم باستبدال قيمة الحقل في الجدول المراد تخزين الارقام all2 بقيمة الحقل الحالية+1 ونجلها قيمة متغير ما ليكون m

ثم نستبدل حقل الترقيم في الجدول الرئيسي مع المتغير m

لاحظ المثال المرفق

واتمنى وصولها

تحياتي للجميع

Data1.zip

#6

اسلام عليكم

اخي شاشدو والاخ اسد العراق اشكركما كثيرا

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

يرجى الاطلاع عليه

ولدي سؤال اخر ان امكن...... هل الافضل كتابة الاوامر ضمن النوافذ ام جعلها ضمن برامج واستدعائها مع التقدير

New WinRAR archive.rar

#7
chairman كتب:

اسلام عليكم

اخي شاشدو والاخ اسد العراق اشكركما كثيرا

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

يرجى الاطلاع عليه

ولدي سؤال اخر ان امكن...... هل الافضل كتابة الاوامر ضمن النوافذ ام جعلها ضمن برامج واستدعائها مع التقدير

السلام عليكم

واتمنى افادتك الفكرة او وصول الطريقة

اما بالنسبة لسوالك عن الخطا

قم اولا برفع ارقام الحقل cusno الى 20 لان الارقام كبيرة

ثانيا ً قم بتعديل البسيط في الكود في زر حفظ كما في الصورة

post-210280-046778100 1326867805_thumb.j

تحياتي للجميع

#8

جعلها الله في ميزان حسناتك

تمت التنفيذ على افضل حال

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

#9

الله عليكم يا شموع

انتم ملوك هذا المنتدى

وانا انتظر ليون للاجابة على السوال

#10
lion iraq كتب:

السلام عليكم

واتمنى افادتك الفكرة او وصول الطريقة

اما بالنسبة لسوالك عن الخطا

قم اولا برفع ارقام الحقل cusno الى 20 لان الارقام كبيرة

ثانيا ً قم بتعديل البسيط في الكود في زر حفظ كما في الصورة

post-210280-046778100 1326867805_thumb.j

تحياتي للجميع

اخي العزيز لان سورس البيانات للحقل هو رقمي اصلا

فلا يحتاج الى دالة القيم

المرفقات
screen1.jpg
#11

السلام عليكم 

خلال تصففكرة عن الترقيم حي للموضوع تذكرت اني نسيت ذكر فكرة عن الترقيم التلقائي باسهل طريقة  وبدون نوع integer autoinc 

ويمكن استخدامها مع حقل رقم  مثل N , I او النص C,V

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

مثلا اذا الحقل رقمي 

replace cfieldname WITH RECNO()

اما مع الحقل النصي او الاسمي 

replace cfieldname WITH STR(RECNO())

واتمنى ان يستفاد منها الجميع مع هذة الفكرة السهله في الترقيم التلقائي

تحياتي للجميع

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