استعمال برنامج وورد في طباعة قائمة باركود لمنتوج معين
#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 ك ب / التحميلات : 127)
.rar   65_2.rar (الحجم : 12.11 ك ب / التحميلات : 124)
.rar   IDAutomationHC39M.rar (الحجم : 9.53 ك ب / التحميلات : 118)
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 7 users say قال شكرا ل أبو معاذ على المشاركة المفيدة
  • لؤي, bassem_43, wadoud, azertyuihayat2013, kito, mohamed49, salim71
الرد
#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 users say قال شكرا ل أبو معاذ على المشاركة المفيدة
  • wadoud, kito, salim71
الرد
#3
السلام عليكم
بارك الله فيك مشرفنا العزيز Unprogramme
موضوع مهم ورائع
اكمل شوقتنا للشطر الثاني
و شكرا لك
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
[-] كل من 2 users say قال شكرا ل bassem_43 على المشاركة المفيدة
  • أبو معاذ, salim71
الرد
#4
نسيت نقطة مهمة و هي الخروج من برنامج وورد دون حفظ التغييرات على الملف حتى يبقى هذا الأخير مرجعا .
أضف زرا و أعطه عنوانا مناسبا وليكن 'الخروج من البرنامج'

كود :
var  SaveChanges: OleVariant;
begin
 SaveChanges := wdDoNotSaveChanges;
 WordApplication1.Quit(SaveChanges);
 Close ;
 
end;
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 2 users say قال شكرا ل أبو معاذ على المشاركة المفيدة
  • wadoud, salim71
الرد
#5
السلام عليكم
شكرا لك اخونا و استاذنا على كرمك و تقاسمك لخبرتك معنا ...جزاك الله خيرا.
هل من مزيد؟ نحن ننتظرك.....
الخوف من أي محاولة جديدة طريق حتمي للفشل.
[-] كل من 2 users say قال شكرا ل wadoud على المشاركة المفيدة
  • أبو معاذ, salim71
الرد
#6
السلام عليكم
هذا الموضوع ظل يشغل بالى اكتر من كذا سنة
حتى توصلت من حوالى سنة الى طريقة تنفيذ هذه الفكرة باستخدام Rave report
بارك الله فيك وزادك من علمه
[-] كل من 1 user says قال شكرا ل justnick على المشاركة المفيدة
  • أبو معاذ
الرد
#7
بارك الله فيك
[-] كل من 1 user says قال شكرا ل mohamed49 على المشاركة المفيدة
  • salim71
الرد
#8
شكرا اخى الكريم على الفكره عندى سؤال ممكن نلغى النجمه و لا هى لازمة حتى يقراء البار كود
الرد
#9
(11-04-2017, 01:15 PM)khalmoh1971 كتب : شكرا اخى الكريم على الفكره عندى سؤال ممكن نلغى النجمه و لا هى لازمة حتى يقراء البار كود

لا لابد من النجمة في البداية و النهاية .
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 1 user says قال شكرا ل أبو معاذ على المشاركة المفيدة
  • salim71
الرد
#10
السلام عليكم

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

[صورة: 654f7176139c106.jpg]

كود :
http://www.m5zn.com/d/?16627116
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • salim71
الرد


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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم