delphi4arab منتديات دلفي للعرب
التعامل مع عتاد نظام المبيعات POS hardware - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6)
+--- قسم : دلفي والتعامل مع الوسائط المتعددة (https://delphi4arab.net/forum/forumdisplay.php?fid=17)
+--- الموضوع : التعامل مع عتاد نظام المبيعات POS hardware (/showthread.php?tid=11878)

الصفحات: 1 2 3


التعامل مع عتاد نظام المبيعات POS hardware - Lam.Abdeldjalil - 05-04-2022

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

إضافة دعم عتاد نظام المبيعات إلى برنامجك عملية سهلة تابع معنا الموضوع لتتعلمها
العتاد الذي سنتطرق له في هذا الموضوع
قارئ الباركود ، درج النقود ، عارض الزبون ، طابعة التذاكر ، طابعة الباركود ، طابعة البلوتوث في الأندرويد

[صورة: RQgrEc.jpg]


1 BarcodeReader قارئ الباركود

[صورة: 0Exidl.jpg]

قارئ الباركود متوفر بعدة أنواع ، كمبرمجين ما يهمنا في قارئ الباركود هو نوع المنفذ port( usb/ps2(wedge) /com)
لحسن الحظ الأنواع المتواجدة في السوق حاليا أغلبها usb
لذا سيكون التعامل بالبرمجة مع قارئ الباركود سهلا منعدما) لأنه يقرأ الباركود و يكتبه على المكون الموضع المؤشر عليه مع إضافة
 enter في النهاية كخاصية افتراضية
نضع مثالا بسيطا لتنفيذ إجراء بعد إستقبال الباركود: نستعمل الحدث onkeypress الخاص بالمكون TEdit
كود :
procedure TForm1.edtBarcodeKeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = #13) then
  begin
    if edtBarCode.Text <> '' then
    begin
      // البحث
      ShowMessage('البحث عن الباركود' + #10 + edtBarCode.Text);
      edtBarCode.Clear;
    end;
    Key := #0;
  end;
end;
[صورة: giphy.gif]

اعتذر على الجودة

*يمكن التغيير في خصائص القارئ حسب نوعه من اللغة ، سرعة القراءة ، التحكم في الصوت ،الوقت بين القراة و القراءة
,,,,Caps lock ، Prefix and Suffix ، 2D ، Enter
بالكتيب أو الورقة التي تأتي معه و في بعض الأنواع برنامج لتغيير الخصائص

الملف في الرابط اسفله يحتوي صور الموضوع فقط



RE: التعامل مع عتاد نظام المبيعات POS hardware - Lam.Abdeldjalil - 06-04-2022

السلام عليكم

 2 CashDrawer درج النقود
 [صورة: WgCeOW.jpg]

كمبرمجين ما يهمنا في درج النقود هو نوع المنفذusb / Com / Rj11
Rj11 هذا المنفذ يوصل بطابعة التذاكر فتقوم بفتحه أوتوماتيكيا بعد أو قبل الطباعة يمكنك تفعيلها أو تغييرها في خصائص الطابعة
usb  عند تنصيبها تقوم بإنشاءVirtual Com وتتعامل معه مثل منفذcom

للتعامل مع منفذ com
* Delphi
نستعمل المكون المجاني Tcomport

اختر رقم المنفذ المتصل مع الخصائص كما في الصورة

[صورة: AYHiSR.png] 
ثم نقوم بإرسال حرف واحد يفتح الدرج
كود :
ComPort.Connected:=true;
ComPort.WriteStr('a');
ComPort.Connected:=false;

* Lazarus
نستعمل مكتبةSynapse- synaser
أضف وحدة[/font] synaser إلى uses

كود :
var
ser: TBlockSerial;
begin
ser:=TBlockSerial.Create;
try
ser.Connect('COM1');
// Config(baud, bits: integer; parity: char; stop: integer;softflow, hardflow: boolean)
ser.config(9600, 8, 'N', SB1, False, False);
ser.SendString('A');
finally
ser.free;
end;
end;
[صورة: giphy.gif]

ملاحظات
- توجد بعض الأنواع التي تدعم فحص حالة الدرج إذا كان مفتوحا أو لا ( لم أستعملها من قبل )
يوجد جهاز يحول من[/font] Rj11→ usb يستعمل في حالة عدم وجود طابعة
توجد طريقة لفتح الدرج مباشرة دون طباعة في حالة المنفذ Rj11
بإستعمال أمر Esc/pos يبعث مباشرة للطابعة ، و هذا الأمر يختلف حسب نوع الطابعة
مثال
AnsiChar(27) + AnsiChar(112) + AnsiChar(0) + AnsiChar(64) + AnsiChar(240)
[تمرين بدون حل Big Grin


RE: التعامل مع عتاد نظام المبيعات POS hardware - Lam.Abdeldjalil - 06-04-2022

 3 عارض الزبون Customer Display

[صورة: K9De79.jpg]
هو جهاز يستعمل لعرض تفاصيل البيع من اسم المادة و سعرها مع الإجمالي
يوجد نوعين مشهورين في السوق شاشة ذات سطرين مع تكنولوجيةLED
وهذا هو الذي يتمحور عليه موضوعنا و النوع الثاني شاشة صغيرة مثل شاشة الجهاز
النوع الأول نجده في السوق بأحد المنافذ usb / Com
سوف نتعامل معها مثل درج النقود مع الأخذ بعين الاعتبار عدد الحروف و عدد الأسطر في الجهاز
مثال عندي جهاز بسطرين كل سطر فيه 20 حرف

* Delphi

كود :
var line1,line2:string;

   line1:='Product 1  price 200' ;
   while Length(line1)<20 do
    line1:=line1+' ';
   line2:='Total :  500' ;
   while Length(line2)<20 do
    line2:=line2+' ';

ComPort.Connected:=true;
ComPort.WriteStr(line1);
ComPort.WriteStr(line2);
ComPort.Connected:=false;

* Lazarus
كود :
ser.SendString(line1);
   ser.SendString(line2);

[صورة: giphy.gif]
معظم الأنواع تدعم أوامر ESC/POS
من مسح الشاشة، تحريك النص ، مدة العرض ، اللغة ...
مثال عن مسح الشاشة  CLR
 decimal=12

كود :
ComPort.WriteStr(#12);



RE: التعامل مع عتاد نظام المبيعات POS hardware - Lam.Abdeldjalil - 07-04-2022

4 طابعة التذاكر Receipt Printer
 
[صورة: 8RgzEN.jpg]
توجد عدة طرق للتعامل مع الطابعات في Delphi/Lazarus
* الطباعة المباشرة للمنفذ بالنسبة للطابعات ذات المنافذ COM/LPT
* الطباعة باستخدام محرر التقارير
الطباعة اليدوية باستخدام  TPrinter

في موضوعنا نختار الأسهل باستخدام محرر التقارير
التعامل مع هذه الطابعة مثل التعامل مع أي طابعة فقط خذ بعين الاعتبار عرض الورق مثل 8سم

* Delphi
 مثال Fastreport

كود :
frxreport1.LoadFromFile('myReport.fr3');
frxreport1.PrepareReport;
frxreport1.PrintOptions.Printer:='MyPrinter';
frxreport1.PrintOptions.ShowDialog := False;
frxreport1.Print;

يجب اختيار الطابعة و إلا ستتم الطباعة على الطابعة الافتراضية كما يفضل أن تكون الطباعة مباشرة دون معاينة

* Lazarus
مثال Lazreport

كود :
uses LR_Prntr;
var
  prnold :Integer;
...

prnold:=prn.PrinterIndex;
frReport1.LoadFromFile('MyReport.lrf');
prn.PrinterIndex := prn.Printers.IndexOf('Myprinter');
if prnold<>prn.PrinterIndex  then
frReport1.ChangePrinter(prnold,prn.PrinterIndex);
if frReport1.PrepareReport then  
frReport1.PrintPreparedReport('1',1);

[صورة: giphy.gif]

يمكن التغيير في خصائص طابعة التذاكر: من تفعيل أو تعطيل قاطع الورق ، تفعيل أو تعطيل فتح درج النقود قبل أو بعد الطباعة ،طول وعرض الورق ، الجودة إن وجدت ، تفعيل أو تعطيل الصوت قبل أو بعد الطباعة ، عدد النسخ

ملاحظة Fastreport  لا يغير الطابعة أثناء المعاينة بل أثناء الطباعة فقط

سيتم رفع الأمثلة لاحقا


RE: التعامل مع عتاد نظام المبيعات POS hardware - sofiane201 - 07-04-2022

السلام عليكم ورحمة الله, أخ عبد الجليل ما هو سعر كل جهاز من تلك الأجهزة من فضلك؟


RE: التعامل مع عتاد نظام المبيعات POS hardware - Lam.Abdeldjalil - 08-04-2022

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

الأسعار التقريبية بالدينار الجزائري للأجهزة ( سعر التجزئة )

قارئ الباركود العلامة الصينية
النوع البسيط إبتداءا من 6000
النوع الثابت إبتداءا من 14000

درج النقود بالتقريب ( لأن ثمنه في إرتفاع ) 10000

عارض الزبون ( لا أضنه متوفر حاليا ) 11000

طابعة التذاكر العلامة الصينية
14000 -> 22000

Star / Epson
29000 -> 35000

طابعة الباركود الصينية
17000 -> 21000

tsc/zebra
+38000

طابعة البلوتوث الصينية
20000-> 25000



5 طابعة الباركود و الملصقات Barcode & Label Printer
 
[صورة: i6dF4k.jpg]
التعامل معها مثل طابعة التذاكر الفرق فقط في أن الطول و العرض محددان
مثال 2سم على4سم


[صورة: giphy.gif]

الأمثلة مضمنة في تطبيق واحد (الأول خاص بالدلفي و الثاني لازاروس )

[صورة: QJaoPQ.png]


RE: التعامل مع عتاد نظام المبيعات POS hardware - S.FATEH - 08-04-2022

السلام عليكم
رمضان مبارك بارك الله فيك اخ عبد الجليل..


RE: التعامل مع عتاد نظام المبيعات POS hardware - Lam.Abdeldjalil - 08-04-2022

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

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


RE: التعامل مع عتاد نظام المبيعات POS hardware - Agmcz - 09-04-2022

السلام عليكم
رمضان كريم أخي وشكرا على هذا الطرح

أليس من الأفضل أن ترفق الصور في الموضوع بدل إستخدام روابط خارجية...


RE: التعامل مع عتاد نظام المبيعات POS hardware - Lam.Abdeldjalil - 10-04-2022

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

بارك الله فيك أخي و عفا الله عنا وعنكم في هذا الشهر .
إقتباس :أليس من الأفضل أن ترفق الصور في الموضوع بدل إستخدام روابط خارجية...
ظننت أن المنتدى محدود في المرفقات ، اذا كان العكس سأرفعها غدا إن شاء الله