delphi4arab منتديات دلفي للعرب

نسخة كاملة : استعمال الباركود في جلب المعلومات من قاعدة البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة  الله وبركاته ،
في الحقيقة كان كلما سألني شخص : "  هل برنامجك يتستعمل الباركود" ، كان هذا السؤال يضعني في مأزق لجهلي بهذا البراكود . Dodgy 
لكن عزمت على استعماله في برامجي ، اشتريت جهاز الباركود منفذ USB  ، و اتكلت على الله ،
وكانت المفاجأة أن هذا الجهاز ليس إلا  لوحة المفاتيح ، واستعماله غاية في السهولة.
لنفرض أن لدينا جدول اسمه Articles  يحوي قائمة المواد بأسمائها و لنفرض أن هذا الجدول يحوي الخصائص التالية :
 CodeArticle  (أي الكود)
Designation  (أي التعيين)
Qte(أي الكمية الموجودة في المخزون)
Prix(أي ثمن المادة)
البريمج (تصغير برنامج Big Grin ) الذي سنقوم بإنشائه هو إدخال كود المادة  CodeArticle  و البريمج يقوم بجلب جميع معلومات المادة.
نقوم بإنشاء برنامج جديد ، نضع المكونات التالية Edit1 ،  DbEdit1  ، DbEdit2 ، DbEdit3
نضع مكون  Query  أو  ADOQuery أو IBQuery  على حسب الذوق.
في تعليمة ال Query  ندخل التعليمة التالية :

كود :
Select Designation  ,Qte,Prix From Articles   Where CodeArticle = :C

حيث أن C  هو باراميتر.
لحد الساعة لم نأت بشيء جديد.
المكون Edit1  نستعمله في إدخال قيمة CodeArticle .
عندما يدخل الزبون قيمة في Edit1  و يضغط على زر Enter في لوحة المفاتيح ، نقوم بالبحث عن الكود المادة.
في الحدث  OnKeyDown الخاص بال Edit1  نكتب ما يلي :

كود :
If Key = Vk_Return then begin      Query1.close; Query1.ParamByName('C').AsString := Edit1.Text;     Query1.open;   end
 

كود :
if Query1.IsEmpty then showmessage('Not Found')

لنستعمل الآن جهز الباركود ، عندما نقرأ الباركود ل مادة معينة (طبعا داخل ال Edit1) بعد قراءتها جهاز الباركود مباشرة يقوم بالحدث Enter ، وهكذا يقوم البرنامج بالبحث عن المنتوج.

بقيت طباعة الباركود (على الورق)  ، يمكن استعمال مولدات التقارير مثل  CrystalRepot   FastReport QuickReport
كما يمكن طباعته ببرمامج  الWord  باستعمال نمط خط محدد  مثل IDAutomationHC39M.ttf  (النمط في المرفقات) ،
الطريقة سهلة جدا ...
أنشئ ملف وورد جديد   ،
اكتب
**
بين النجمتين (**)  أكتب الكود المراد طباعته ،
مثال
*Delphi4Arab*
قم بتظليل الكلمة كلها بما فيها النجمتين لأنها تعتبران بداية و نهاية الباركود.
ثم اختر نوع الخط (طبعا بعد تثبيته)  IDAutomationHC39M
و انتهى.

أرجو أن لا أكون قد أطلت في موضوعي ، Tongue
كما أرجو أن يستفيد منه المبتدئين أمثالي.
بارك الله فيك مشرفنا Unprogramme على الموضوع
لكن بقيت نقطة صغيرة لم توضحها جيدا
*لنستعمل الآن جهز الباركود ، عندما نقرأ الباركود ل مادة معينة (طبعا داخل ال Edit1) بعد قراءتها جهاز الباركود مباشرة يقوم بالحدث Enter *
لم تشرح كيف نجعل Edit1 يحمل القيمة المقروءة من قارء البار كود تلقائيا ان صح التعبير
وشكرا مجددا
وفيكم بارك الله أخي باسم ،
في الحدث OnCreate للفورم نضع :

كود :
Edit1.setfocus;

في هذه الحالة مباشرة عندما يقرأ الجهاز قيمة الباركود يضعها مباشرة في ال Edit1  ، أي بمعنى عوضا أن تكتب كود المنتوج عن طريق لوحة المفاتيح ، جهاز الباركود يقوم بهذه العملية في مكانك.
شكرا لك  اخي Unprogramme  تستحق 10/10    Big Grin
شرح وافي وكافي
تسلم
شكرا لك أخي الكريم Unprogramm على تنويرك لنا و نقل تجربتك بارك الله فيك.
إستعمال الباركود في غاية السهولة
فقط نرجوا التأكد من أن الكيبور في وضعية الكتابة بالأحرف الكبيرة MAJUSCULES
كي لايقوم الجهاز بإدراج رموز بدل الأرقام

الحدث في الـEdit هو كالتالي:
OnKeyPressed
if Key = #13 then
Table.Locate()
ماذا لو كان الfocus بعيد عن edit1 ؟؟
===
الحل كان عن طريق برمجة القارئ نفسه باضافة prefix عند استخدامه واستخدمت ال prefix علامة الدولار ساين "$"

فى الForm جعل الخاصية KeyPreview:=True
وفى الحدث onkeypress للفورم نجعله ينتظر الرمز "$" ثم يضع الFocus فى الEdit1
كود :
if key = '$' then begin Edit1.SetFocus; end;

فى الحدث onkeypress للEdit1 ينبغى علينا حذف الprefix قبل القيام بعملية البحث

كود :
if key = '$' then begin key := #0; end;
justnick :
(الحل كان عن طريق برمجة القارئ نفسه باضافة prefix عند استخدامه )


كيف ؟
(26-05-2016, 06:52 PM)h-farid كتب : [ -> ]justnick :
(الحل كان عن طريق برمجة القارئ نفسه باضافة prefix عند استخدامه )


كيف ؟
القارئ ياتى معه مجموعة من الباركود لبرمجته
فهناك كود يفتح عملية البرمجة عند تمريره يضع القارئ فى وضع الاعدادات
ثم تقوم باختيار اضافة prefix
وعند الانتهاء تدخل باركود لغلق وضع الاعدادات فى القارئ
--
فى حالة استخدام القارئ فى الوضع العادى
يقوم باضافة ال prefix قبل كل باركود
مثال
افترض انى استخدم الprefix "$"
عندى علبة دواء لها باركود "611501"
عند تمرير الباركود على القارئ
يكون "611501$"
بارك الله فيك أخي, الآن اتضحت الأمور.
الصفحات : 1 2