المؤلف: Yang Zhongxun التخصص: تطوير برامج الكمبيوتر وتطبيقاتها القدرة اللغوية: TOFEL633 GRE2140
البريد الإلكتروني: [email protected]
في التطوير الفعلي لنظام Mis، نحتاج أحيانًا إلى تنزيل بيانات التقرير على الصفحة الحالية إلى الكمبيوتر المحلي بتنسيق مستند Word. هذا التنفيذ ليس صعبًا. لكن في بعض الأحيان نحتاج إلى إجراء بعض الإعدادات لتنسيق مستند Word الذي تم تنزيله، مثل لون العنوان وحجم الخط وتباعد الكلمات وما إلى ذلك. في هذه الحالة، يتعين علينا استخدام وظيفة الماكرو التي تأتي مع Word.
على سبيل المثال، نريد عرض عنوان هذا التقرير بالتنسيق التالي في مستند Word: خط بحجم 14 نقطة، غامق، ومركزي. نحتاج أولاً إلى تسجيل أمر الماكرو المقابل في Word. افتح Word، وقم بإنشاء مستند جديد، واكتب سطرًا من النص يدويًا، ثم حدد أدوات-> ماكرو-> أمر تسجيل ماكرو جديد، وقم بتسمية الماكرو الجديد مثل Macro1، وقم بتنفيذ الإجراءات المذكورة أعلاه (الحجم 14، غامق، مركزي) -محاذاة)، يقوم Word تلقائيًا بحفظ هذه الإجراءات كأوامر Vbscript المقابلة. ثم حدد أدوات->ماكرو->أمر ماكرو، وحدد الماكرو Macro1 الذي حددناه للتو، ويمكنك عرض محتواه. في هذا المثال، أمر الماكرو الذي حفظناه هو كما يلي:
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'محاذاة المركز
Selection.Font.Bold = wdToggle 'عرض غامق
Selection.Font.Size = 14 '
نظرًا لأن لغة البرنامج النصي لأمر الماكرو هي Vbscript، فيمكننا استخدام العبارة أعلاه في VB دون إجراء أي تغييرات. بهذه الطريقة يمكننا كتابة كود VB التالي لتحقيق الوظائف التي نحتاجها. الكود كما يلي:
WdApp.Selection.Font.Bold = wdToggle 'Bold Display
WdApp.Selection.Font.Size = 14 '14 حجم الخط
WdApp.Selection.TypeText ("عنوان التقرير") 'عنوان التقرير
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter 'محاذاة في المركز
WdApp.Selection.Font.Bold = wdToggle 'إلغاء الخط العريض.
وبالمثل، إذا أردنا إجراء معالجة أخرى على مستند Word، فما عليك سوى تكرار الخطوات المذكورة أعلاه. يوفر ما يلي مثالاً كاملاً عن معالجة مستندات Word:
الوظيفة الخاصة SaveAsWord(ByRef MyRecord As Recordset, ByVal DocFileName As String, ByRef OutMessage As String) As Integer
'********************************************************************************************************************************************************************************* * ***********************
'
'الوصف: احفظ البيانات في مجموعة البيانات كملف DOC
'
"المعلمة:
'
"مجموعة بيانات MyRecord."
'اسم ملف DocFileName WORD (لا يوجد مسار، راجع متغير المثيل sPath لمعرفة المسار)
'إرجاع معلومات عملية OutMessage
'
'العودة: 1 نجاح - 1 فشل
'
'********************************************************************************************************************************************************************************* * ***********************
'تهيئة تطبيق Word
خطأ. واضح
على خطأ GoTo Err_All
خافت WdApp كـ Word.Application
تعيين WdApp = CreateObject("Word.Application")
'إدراج البيانات
خافت Colloop كرقم عمود صحيح
خافت Rowloop كرقم صف صحيح
خافت colMax كعدد صحيح "عدد الأعمدة".
Dim RowMax كعدد صحيح "عدد الصفوف."
خافت wdcell كعرض عدد صحيح
Dim UnitEnd كنقطة نهاية اعتراض لعدد صحيح
Dim UnitName كسلسلة اسم الوحدة
Dim BbDate كسلسلة "فترة التقرير".
ودسيل=12
colMax = MyRecord.Fields.count
rowMax = MyRecord.RecordCount
WdApp.Documents.Add
"احصل على وحدة التقرير."
UnitEnd = InStr(sBBDetail، "الفترة")
اسم الوحدة = منتصف (sBBDetail، 1، UnitEnd - 2)
BbDate = منتصف (sBBDetail، UnitEnd، Len (sBBDetail))
إذا كان MyRecord.Fields.count >= 10 ثم
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
آخر
WdApp.ActiveDocument.PageSetup.Orientation = wdOrientPortrait
نهاية إذا
""اسم التقرير""
WdApp.Selection.Font.Bold = wdToggle
WdApp.Selection.Font.Size = 14
WdApp.Selection.TypeText (sbbmc)
WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter
WdApp.Selection.Font.Bold = wdToggle
WdApp.Selection.TypeParagraph
"اسم وحدة التقارير."
WdApp.Selection.Font.color = wdColorBlack
WdApp.Selection.Font.Size = 11
WdApp.Selection.TypeText(UnitName)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Selection.TypeParagraph
""فترة التقرير""
WdApp.Selection.TypeText(BbDate)
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
WdApp.Selection.TypeParagraph
WdApp.Selection.TypeParagraph
'إنشاء رؤوس الأعمدة
'wdApp.Selection.HomeKey wdLine, wdExtend
'dApp.Selection.Font.Bold = wdToggle
WdApp.ActiveDocument.Tables.Add WdApp.Selection.Range،rowMax، colMax
خافت ط كعدد صحيح
يفعل
لـ Colloop = 0 إلى colMax - 1
WdApp.Selection.Font.Size = 9
إذا كنت = 0 ثم
'يتم عرض العنوان في الجدول بالخط العريض
WdApp.Selection.Font.Bold = wdToggle
"اضبط لون خلفية صف عنوان الجدول على اللون الرمادي، مع تدرج رمادي يبلغ 30
مع WdApp.Selection.Cells
مع التظليل
.Texture = wdTextureNone
.ForegroundPatternColor = wdColorAutomatic
.BackgroundPatternColor = wdColorGray30
نهاية مع
نهاية مع
نهاية إذا
'السطر الأخير محاذاة إلى اليمين والباقي محاذاة إلى اليسار
إذا كنت> 0 ثم
إذا كان MyRecord.Fields.Item(colloop).Name = "ZBMC" أو MyRecord.Fields.Item(colloop).Name = "اسم المؤشر" إذن
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
آخر
WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
نهاية إذا
نهاية إذا
إذا كنت = 0 و (MyRecord.Fields.Item(colloop).Name = "SXH" أو MyRecord.Fields.Item(colloop).Name = "رقم التسلسل") ثم
WdApp.Selection.TypeText ("الرقم التسلسلي")
آخر
WdApp.Selection.TypeText (CStr(MyRecord.Fields.Item(colloop).value))
نهاية إذا
إذا (i <> RowMax - 1 أو (i = RowMax - 1 وcolloop < colMax - 1)) ثم
WdApp.Selection.MoveRight (wdcell)
نهاية إذا
التالي
ط = ط + 1
MyRecord.MoveNext
حلقة حتى MyRecord.EOF
WdApp.ActiveDocument.SaveAs DocFileName، 0، False، ""، صحيح، ""، خطأ، خطأ، خطأ، خطأ، خطأ
WdApp.Quit
حفظ باسم وورد = 1
وظيفة الخروج
خطأ_الكل:
تعيين WdApp = لا شيء
SaveAsWord = -1
OutMessage = err.Description
وظيفة الخروج
وظيفة النهاية
حسنًا، حتى الآن، أعتقد أن لديك بعض الفهم لاستخدام أوامر ماكرو Word لتطوير مكونات ASP في VB. طالما أنك تستخدمه أكثر، فسوف تتعرف عليه بسرعة.