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

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



استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - أبو معاذ - 24-07-2016

السلام عليكم ورحمة الله وبركاته ،
في الحقيقة لست أدري كيف أبدأ كتابة موضوعي اليوم ، فالأفكار مضطربة و الوقت  يمر سريعا ، والإنسان يريد أن يفيد إخوانه  بما استطاع.
المهم ،
طُلب مني إعداد برنامج (جزء من برنامج تسيير المخزون) ، هذا البرنامج يقوم بطباعة قائمة باركود خاصة بمنتوج معين ، هذه القائمة سوف يطبعها الزبون على ورقة لاصقة (Autocollant )  مقطعة مسبقا على حسب حجم بطاقة الباركود (تقريبا 3.8 سم على 2.1 سم) .
من أول وهلة اتجهت لاستعمال FastReport ، لكن في الحقيقة لم أفلح في طباعة الباركود في الحيز المخصص لكل بطاقة Dodgy 
فاتجهت لصديقي Mircosoftword لعلي أجد ضالتي .
علما أن كل ورقة فيها 65 بطاقة باركود. (ملف الوورد مرفق)
في هذا الموضوع سنتعلم مع بعضنا البعض استعمال الوورد وما يتعلق به  (العلامات أو بما يعرف ب les signets de document word)  ، الكتابة و الطباعة لهذا الملف و ربما أشياء أخرى.
الموضوع خاص بالمبتدئين أمثالي فليعذرني الإخوة المحترفين.
هل أكمل أم أن الموضوع ليس ذو أهمية ؟ Tongue

أولا نقوم بتحضير ملف الوورد ، وذلك بإضافة العلامات   signets
الملف يحوي 65 بطاقة  باركود  أي أننا سنستعمل 65 علامة   (في كل بطاقة علامة واحدة).
أسماء العلامات ستكون كالتالي
A1 , A2 ,A3,A4,.......A64,A65
لإضافة العلامات في الوورد نتبع الصورة التالية (اسمحولي على التفصيل الممل)

[صورة: 304596750.png]


فيصبح لدينا ملف وورد فيه 65 علامة كما هو مبين في الملف المرفق.
ويجب في كل علامة تعيين نوع الخط (الخط المختار هو IDAutomationHC39M)  يجب تثبيته ، و أيضا يجب تعيين  حجم الخط وليكن 6

نبدا على بركة الله ، الخوض في البرمجة.
بالنسبة لي لازلت أستعمل دلفي 7  وورد 2007   (والساعة تشير إلى 7 و 27 دقيقة  Big Grin (سبحان الله))
نقوم بإنشاء مشروع جديد ،
1- قم بوضع  مكون Edit واختر له اسما وليكن  MyFileWord هذا المكون  يحوي اسم  ملف الوورد (المسار + اسم الملف)
2- قم بوضع مكون Edit  آخر يحوي الباركود الخاص بمنتوجك  . و أعطه تسمية (أي المكون Edit  ) و ليكن BarreCodeProduct
3- إذهب إلى التبويب Server  وقم بسحب المكون WordApplication  إلى مشروعك.
حسنا ،
المشروع سيكون بسيطا و الإخوة لهم الحق في التعديل على المشروع بما يناسب حاجتهم.
4- قم بسحب الزر BitBtn  واختر له عنونا واضحا وليكن  "  فتح برنامج وورد "
في الحدث Click  لهذا الزر نكتب مايلي :

كود :
    try       Wordapplication1.Connect; // إذا كنت ترغب في إظهار برنامج وورد        WordApplication1.Visible := True ; // إذا كنت  لا ترغب في إظهار برنامج وورد  ضع الخاصية Visible = False       // WordApplication1.Visible := False ;     except       MessageDlg('Word ليس مثبتا عندك', mtError, [mbOk], 0);       Abort;     end;




إذن ، هكذا يتم الاتصال ببرنامج وورد

الآن بعد ما رأينا كيفية الأتصال برنامج وورد ، نقوم الآن بفتح ملف الورد .
اسحب زرا آخر واختر له تعينا و ليكن   :  'فتح ملف الوورد '
في الحدث Click   لهذا الزر قم بإضافة الكود التالي :

كود :
var     DocWord:_Document;     FileName: OleVariant;     Visible: OleVariant; begin     FileName:= :MyFileWord.Text;     Visible:=True;     DocWord:= WordApplication1.Documents.Open(FileName, EmptyParam, EmptyParam,                                                 EmptyParam, EmptyParam, EmptyParam, EmptyParam,                                               EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Visible); end;

علما أن MyFileWord هو اسم ال Edit الذي يحوي مسار و اسم ملف الوورد (المرفق الذي به العلامات)

الآن نأتي إلى مربط الفرس Idea   وهو الكتابة في ملف الوورد .
كما سبق و أن أشرنا أن ملف الوورد يحوي  65  بطاقة قابلة لللصق  ، وكل بطاقة تحوي علامة signet    وعند هذه العلامة علينا كتابة باركود المنتوج.
و تسمية هذه العلامات كما اتفقنا عليه يبدأ من A1  وينتهي ب  A65

ضع زرا آخر في الفورم واختر له عنوانا مناسبا ولكين إضافة الباركود.

ملاحظة هامة :
ليظهر لنا الباركود في ملف الوورد وفق الخط المختار يجب أن نتبع مايلي .
اكتب *رمز الباركود* 
أي أن رمز الباركود يجب أن يكون بين نجمتين **

في الحدث Click لهذا الزر
كود :
Var Signet1:OleVariant;   i  : Integer ;   Zone:Range; begin    For i := 1 to 65 do    begin       Signet1:= 'A' + IntToStr(i)  ;       Zone:=WordApplication1.ActiveDocument.Bookmarks.Item(Signet1).Range;       Zone.Text := '*'+BarreCodeProduct.Text+'*';    end; end;



RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - أبو معاذ - 24-07-2016

والآن لطباعة الملف مباشرة عن طريق الدلفي :
قم بوضع زر Edit  وأعطه عنوان مناسبا وليكن 'طباعة الملف'
وفي الحدث Click الخاص بهذا ال Edit قم بوضع الكود التالي :

كود :
var Range: OleVariant;     PageType: OleVariant;     Background: OleVariant; begin  Range:=wdPrintAllDocument;  PageType:=wdPrintAllPages;  Background:=False;  WordApplication1.ActiveDocument.PrintOut(BackGround,EmptyParam,                                           Range,                                           EmptyParam,EmptyParam,EmptyParam,                                           EmptyParam,EmptyParam,EmptyParam,                                           PageType,                                           EmptyParam,EmptyParam,EmptyParam,                                           EmptyParam,EmptyParam,EmptyParam,                                           EmptyParam,EmptyParam); end;



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



RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - bassem_43 - 24-07-2016

السلام عليكم
بارك الله فيك مشرفنا العزيز Unprogramme
موضوع مهم ورائع
اكمل شوقتنا للشطر الثاني
و شكرا لك


RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - أبو معاذ - 24-07-2016

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

كود :
var  SaveChanges: OleVariant; begin  SaveChanges := wdDoNotSaveChanges;  WordApplication1.Quit(SaveChanges);  Close ;   end;



RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - wadoud - 24-07-2016

السلام عليكم
شكرا لك اخونا و استاذنا على كرمك و تقاسمك لخبرتك معنا ...جزاك الله خيرا.
هل من مزيد؟ نحن ننتظرك.....


RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - justnick - 18-08-2016

السلام عليكم
هذا الموضوع ظل يشغل بالى اكتر من كذا سنة
حتى توصلت من حوالى سنة الى طريقة تنفيذ هذه الفكرة باستخدام Rave report
بارك الله فيك وزادك من علمه


RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - mohamed49 - 08-03-2017

بارك الله فيك


RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - khalmoh1971 - 11-04-2017

شكرا اخى الكريم على الفكره عندى سؤال ممكن نلغى النجمه و لا هى لازمة حتى يقراء البار كود


RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - أبو معاذ - 12-04-2017

(11-04-2017, 01:15 PM)khalmoh1971 كتب : شكرا اخى الكريم على الفكره عندى سؤال ممكن نلغى النجمه و لا هى لازمة حتى يقراء البار كود

لا لابد من النجمة في البداية و النهاية .


RE: استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين - Delphi4Us - 12-04-2017

السلام عليكم

وجود هذا الخط المرفق جعلني افكر بطريقة اخرى
المثال موجود هنا
ولمن يهمه الامر يحتاج الى ضبط عمليات الطباعة ولولا انني مشغول لكنت اكملته
اولا ضبط الـ Loop لتتم الزيادة آليا
ثانيا ضبط كم مريع سوف يتم رصه على الصورة لمعرفة حجمها من حجم A4
اي ضبط حجمها مع ورق الطباعة

[صورة: 654f7176139c106.jpg]

كود :
http://www.m5zn.com/d/?16627116