منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الطباعة على الوورد من خلال الفيجوال بطريقة مبسطة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
بسم الله الرحمن الرحيم

في البداية الشكر موصول للجميع وبالاخص الاستاذ / عبدالله الدوسري , لانه هو صاحب الموضوع في الاساس .
وانصح بزيارة قناة الاخ عبدالله الدوسري باليوتيوب فهناك شرح مطول ومفصل عن الطباعة بالوورد
http://www.youtube.com/user/AbdullaAlDosari


اليوم حبيت اختصر الموضوع بطريقة قد تكون مبسطة , حتى يكون لدى المتلقي عدة مراجع عربية


اولا كما هو معروف تصميم قالب بالوورد

الصورة الأول في الوورد تصميم قالب واعطائه اشاراة مرجعية ( يجدر بالذكر الاشارة المرجعية هي عبارة عن مكان يكون لك مرجع داخل الملف ويضع مؤشر الكتابة امامه ليقول لك اكتب )

[ATTACH=CONFIG]225[/ATTACH]


ثانيا حفظ الملف كقالب ( تمبلت )

[ATTACH=CONFIG]227[/ATTACH]
--------------------------------

الان ناتي للفيجوال
اولا فتح مشروع ومن حفظ ملف القالب الوورد داخل مجلد bin ونسمية Word

ثانيا نستدعي مكتبة التعامل مع الوورد
[ATTACH=CONFIG]226[/ATTACH]

ثالثا
Microsoft.Office.Interop.Word
على حسب اصدار الاوفس الموجود في جهاز وقد تجد اكثر من اصدار .
كما هو في الصورة
[ATTACH=CONFIG]228[/ATTACH]

رابعا / ضبط الفورم على حسب ماتريد انا جعلته بسيط عبارة عن 2 تكست .
[ATTACH=CONFIG]229[/ATTACH]

خمسا في حدث اطبع نظع الكود التالي :

كود :
Dim aplication As New Microsoft.Office.Interop.Word.Application 'لتعامل مع ملف الوورد
        Dim appDoc As New Microsoft.Office.Interop.Word.Document 'لفتح ملف الوورد
        appDoc = aplication.Documents.Add(Template:=(Application.StartupPath & "\word\نموذج.dot")) ' هذا الامر لفتح ملف نموذج كقالب تمبلت وهذا مهم
        '========
        'لو كان الامر فتح ملف وورد فالوضع مختلف :رايح يكون الامر كتالي ولكن بدون تفعيل الامر
        'appDoc = app.Documents.Open(Application.StartupPath & "\word\نموذج.doc")
        '=======
        'للتعامل مع الملف الوورد
        aplication.ActiveDocument.Bookmarks("s1").Select() ' ابحث لي عن الاشارة المرجعية وضع المؤشر امامها
        aplication.Selection.Text = TextBox1.Text

        aplication.ActiveDocument.Bookmarks("s2").Select() ' ابحث لي عن الاشارة الاخر المرجعية وضع المؤشر امامها
        aplication.Selection.Text = TextBox2.Text
        'الاشارة المرجعية بالانجليزي بوك ماركس كما هو في الاعلى
        '=====================
        'الان بقي اظهار الملف لانه حتى الان يعمل بالخفى وتسطيع اظهاره بعد فتح الملف
        aplication.Visible = True
        aplication.Activate()

الصورة التالية توضح الكود

[ATTACH=CONFIG]230[/ATTACH]

سادساً / شغل البرنامج واطبع
[ATTACH=CONFIG]231[/ATTACH]


الجدير بالذكر انه يمكن التعامل مع ملف الوورد بأوامر كثيرة ولكن حبيت اتطرق لموظوع الاشارة المرجعية .

Smile ثامناً / انتهت الشرح

(الشرح بفيجوال 2010 واوفس 2010 )

المرفق فيجوال 2010
-----------------------------
اتمنى ان قد وفقت بالشرح

والسلام عليكم
نكمل الموضوع واليوم نتحدث عن التعامل مع الجدول داخل الوورد

في البداية نقوم بصناعة التمبلت بالوورد

ونضيف له الجدول بدون اشارة مرجعية للحقول لاننا راح نتعامع مع الحقول وارقامها

[ATTACH=CONFIG]837[/ATTACH]



ومن ثم نضيف داتا قريد بالفيجوال ونقوم بتعبئتها كما في الصورة

[ATTACH=CONFIG]836[/ATTACH]

الان نظيف الكود التالي وهو الكود السابق مضاف اليه كود التعامل مع الجدول

كود :
Dim aplication As New Microsoft.Office.Interop.Word.Application 'لتعامل مع ملف الوورد
        Dim appDoc As New Microsoft.Office.Interop.Word.Document 'لفتح ملف الوورد
        appDoc = aplication.Documents.Add(Template:=(Application.StartupPath & "\word\نموذج.dot")) ' هذا الامر لفتح ملف نموذج كقالب تمبلت وهذا مهم
        '========
        'لو كان الامر فتح ملف وورد فالوضع مختلف :رايح يكون الامر كتالي ولكن بدون تفعيل الامر
        'appDoc = app.Documents.Open(Application.StartupPath & "\word\نموذج.doc")
        '=======
        'للتعامل مع الملف الوورد
        aplication.ActiveDocument.Bookmarks("s1").Select() ' ابحث لي عن الاشارة المرجعية وضع المؤشر امامها
        aplication.Selection.Text = TextBox1.Text

        aplication.ActiveDocument.Bookmarks("s2").Select() ' ابحث لي عن الاشارة الاخر المرجعية وضع المؤشر امامها
        aplication.Selection.Text = TextBox2.Text
        'الاشارة المرجعية بالانجليزي بوك ماركس كما هو في الاعلى
        '================التعامل مع الجدول
        Dim nnsss As Integer = DataGridView1.RowCount ' هنا لعدد الصفوف في الداتا قريد
        For ta1 As Integer = 2 To nnsss  ' لاحظ اننا بدئنا بالرقم 2 لاننا راح نتعامل مع الصف الثاني بالجدول
            aplication.Application.ActiveDocument.Tables.Item(1).Cell(ta1, 2).Select() ' هنا اخبرنا البرنامج بالذهاب ألى الجدول الأول الصف الثاني فما بعد العمود الثاني الأسم
            aplication.Selection.Text = DataGridView1.Rows(ta1 - 2).Cells(1).Value ' هنا اخذنا سالب 2 حتى نبدا من الصفر
            aplication.Application.ActiveDocument.Tables.Item(1).Cell(ta1, 3).Select() ' العود الثالث الدولة
            aplication.Selection.Text = DataGridView1.Rows(ta1 - 2).Cells(1).Value
            aplication.Application.ActiveDocument.Tables.Item(1).Cell(ta1, 4).Select() ' العود الرابع
            aplication.Selection.Text = DataGridView1.Rows(ta1 - 2).Cells(2).Value
            If ta1 <> nnsss Then ' هنا اذا كان الرقم لايساوي عدد الدتا قريد
                aplication.Application.ActiveDocument.Tables.Item(1).Rows.Add() ' اضف صف جديد
            End If

        Next

        '=====================
        'الان بقي اظهار الملف لانه حتى الان يعمل بالخفى وتسطيع اظهاره بعد فتح الملف
        aplication.Visible = True
        aplication.Activate()

راح تكون النتيجة

[ATTACH=CONFIG]838[/ATTACH]


-------------------------

وهذا رابط المشروع بالفيجوال 2010
[ATTACH]839[/ATTACH]

اتمنى للجميع التوفيق

اخوكم عبدالله الشمري
طيب ياعبدالله اذا كان عندي نموذج جاهز به جدول لنفرض على سبيل المثال ابلكيشن بيانات

هل استطيع استخدام اشارات مرجعية داخل الجداول
ايه تقدر تسوي كل شي .

الاشارة المرجعية هي انك تضع مؤشر الماوس عند النقطة هذي بعده تعطيه امر الكتابة

كود :
aplication.ActiveDocument.Bookmarks("s1").Select() ' ابحث لي عن الاشارة المرجعية وضع المؤشر امامها
        aplication.Selection.Text = TextBox1.Text

شايف كيف الفكرة

اول سطر ابحث عن الاشارة المرجعية s1

بعده راح يحط لك الماوس عند الاشارة هذي ويكتب لك اللي داخل textbox1.text

انت تقدر تغير textbox1.text الى البيانات

--------------------------------------------

اذا كان سؤال عن نموذج جاهز وتبي تغير على النموذج هذا نعم تستطيع تضيف اشارة مرجعية

بس انت احفظه على شكل نموذج ولو جيت تفتح النموذج بزر الماوس الايمن فتح عشان تفتحه على شكل نموذج ( تمبلت )
شكرا ياعبدالله
السلام عليكم ورحمة الله وبركاته ،،

أخي عبد الله بارك الله فيك على الشرح البسيط ، ولدي فكرة كانت تطرق في بالي وهي خاصة بالوورد وهي :

كيف يمكننا بعد نقل البيانات للقالب أن احفظه ( لا اريد استعراضه ولا طباعته ) في مكان معين معد مسبقاً ...؟

ربما أني لم أخرج عن الموضوع ولكن السؤال تتمة للموضوع حتى يغطي جوانب عديده.
اهلا بك اخ عبدالله

الاومر هذي كلها تتعامل مع الوورد وتحاكيه اي شي بالوورد مثلا اغلاق فتح اظافة جديد باسوورد وو الخ


فانت لما تبدا مثلا

aplication.Application

اللي بعده كنترول كامل للورد

هذا امر الحفظ بأسم

وبعده امر الفتح لو تبي والا حط بداله كلوس اغلاق

كود :
aplication.Application.ActiveDocument.SaveAs(FileName:="C:\Test\abdullah.doc") ' امر الحفظ بأسم
        aplication.Visible = True ' اظهار الملف
بارك الله فيك

لكن لدي سؤال : كيف يمكن طباعة ما أرسلناه لبرنامج الوورد على الطابعة ؟
يعطيك ربي العافيه
السلام عليكم .. ما هي الطريقة لنقل بيانات الصورة ؟؟ ... مع التقدير
الصفحات : 1 2