استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين
#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 / التحميلات : 26)
.rar   65_2.rar (الحجم : 12.11 KB / التحميلات : 26)
.rar   IDAutomationHC39M.rar (الحجم : 9.53 KB / التحميلات : 28)
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
الرد
#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;



هنا انتهى الشطر الأول من الموضوع ،
والشطر الثاني سيكون بعد مشاركة الإخوة وتفاعلهم .
أرجو أن أكون قد وفقت في طرح الموضوع.
دعواتكم.....
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
الرد
#3
السلام عليكم
بارك الله فيك مشرفنا العزيز Unprogramme
موضوع مهم ورائع
اكمل شوقتنا للشطر الثاني
و شكرا لك
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
الرد
#4
نسيت نقطة مهمة و هي الخروج من برنامج وورد دون حفظ التغييرات على الملف حتى يبقى هذا الأخير مرجعا .
أضف زرا و أعطه عنوانا مناسبا وليكن 'الخروج من البرنامج'

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


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


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