استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين
#1
السلام عليكم ورحمة الله وبركاته ،
في الحقيقة لست أدري كيف أبدأ كتابة موضوعي اليوم ، فالأفكار مضطربة و الوقت  يمر سريعا ، والإنسان يريد أن يفيد إخوانه  بما استطاع.
المهم ،
طُلب مني إعداد برنامج (جزء من برنامج تسيير المخزون) ، هذا البرنامج يقوم بطباعة قائمة باركود خاصة بمنتوج معين ، هذه القائمة سوف يطبعها الزبون على ورقة لاصقة (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;


الملفات المرفقة
.rar   65.rar (الحجم : 9.69 KB / التحميلات : 44)
.rar   65_2.rar (الحجم : 12.11 KB / التحميلات : 50)
.rar   IDAutomationHC39M.rar (الحجم : 9.53 KB / التحميلات : 44)
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
[-] كل من 6 users say قال شكرا ل Unprogramme على المشاركة المفيدة
  • azertyuihayat2013, bassem_43, kito, mohamed49, wadoud, لؤي
الرد
#2
والآن لطباعة الملف مباشرة عن طريق الدلفي :
قم بوضع زر 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;



هنا انتهى الشطر الأول من الموضوع ،
والشطر الثاني سيكون بعد مشاركة الإخوة وتفاعلهم .
أرجو أن أكون قد وفقت في طرح الموضوع.
دعواتكم.....
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
[-] كل من 2 users say قال شكرا ل Unprogramme على المشاركة المفيدة
  • kito, wadoud
الرد
#3
السلام عليكم
بارك الله فيك مشرفنا العزيز Unprogramme
موضوع مهم ورائع
اكمل شوقتنا للشطر الثاني
و شكرا لك
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
[-] كل من 1 user says قال شكرا ل bassem_43 على المشاركة المفيدة
  • Unprogramme
الرد
#4
نسيت نقطة مهمة و هي الخروج من برنامج وورد دون حفظ التغييرات على الملف حتى يبقى هذا الأخير مرجعا .
أضف زرا و أعطه عنوانا مناسبا وليكن 'الخروج من البرنامج'

كود :
var  SaveChanges: OleVariant;
begin
 SaveChanges := wdDoNotSaveChanges;
 WordApplication1.Quit(SaveChanges);
 Close ;
 
end;
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
[-] كل من 1 user says قال شكرا ل Unprogramme على المشاركة المفيدة
  • wadoud
الرد
#5
السلام عليكم
شكرا لك اخونا و استاذنا على كرمك و تقاسمك لخبرتك معنا ...جزاك الله خيرا.
هل من مزيد؟ نحن ننتظرك.....
الخوف من أي محاولة جديدة طريق حتمي للفشل.
[-] كل من 1 user says قال شكرا ل wadoud على المشاركة المفيدة
  • Unprogramme
الرد
#6
السلام عليكم
هذا الموضوع ظل يشغل بالى اكتر من كذا سنة
حتى توصلت من حوالى سنة الى طريقة تنفيذ هذه الفكرة باستخدام Rave report
بارك الله فيك وزادك من علمه
[-] كل من 1 user says قال شكرا ل justnick على المشاركة المفيدة
  • Unprogramme
الرد
#7
موضوع مهم و يستحسن العمل بيه ايام الازمات
الرد
#8
بارك الله فيك
الرد


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف