1. مقدمة تعد طباعة التقارير عادةً وحدة مهمة في نظام المعلومات الإدارية، وقد تم استخدام برنامج Excel على نطاق واسع في طباعة التقارير نظرًا لوظائفه القوية وتطبيقه المرن وتعدد استخداماته القوية.
تم تطوير نظام المعلومات الإدارية الأولي بشكل أساسي باستخدام نموذج العميل/الخادم (C/S)، ومع ذلك، مع التطبيق الواسع النطاق لـ WWW، بدأ نظام المعلومات الإدارية الحالي في التحول تدريجيًا من نموذج C/S إلى المتصفح/الخادم. (B /S) تغيير الوضع. يحتوي وضع B/S على العديد من الميزات التي لا يمكن أن يضاهيها وضع C/S التقليدي، مثل كونه أكثر انفتاحًا واستقلالية عن البرامج والأجهزة، وملائمًا لتوسيع التطبيقات وصيانة النظام وترقيته، وما إلى ذلك. لقد أصبح الآن وضع الحوسبة المفضل لشبكات المؤسسات، تم استخدامه في الأصل في C/S وقد بدأ نقل العديد من البرامج الموجودة على الإنترنت إلى وضع B/S. نظرًا لخصوصية وضع B/S، أصبحت وظيفة طباعة تقارير Excel التي يسهل تنفيذها نسبيًا في ظل C/S صعبة في ظل B/S. توفر هذه المقالة أسلوبًا عامًا أفضل استنادًا إلى الخبرة الملخصة في المشاريع الفعلية، مع أخذ ASP كمثال.
2. تنفيذ الوظيفة لتوضيح المشكلة، إليك مثال. النظام الأساسي للنظام هو Windows 2000+SQL Server 2000+IIS 5.0+ASP 3. يستخدم التقرير برنامج Excel. وهو مطلوب لإنشاء تقرير بإحصائيات مبيعات الكتب وفقًا لتنسيق التقرير المحدد والقدرة على طباعته.
2.1 إنتاج قالب تقرير Excel أولاً، قم بإنشاء قالب Excel (أي شكل التقرير المراد طباعته) وفقًا لتنسيق التقرير المحدد، بالطبع، يجب ترك البيانات الناتجة عن الإحصائيات الديناميكية في قاعدة البيانات فارغة. يتم رسم هذا التقرير أولاً في برنامج Excel، ثم يتم حفظه كقالب، ويتم تخزينه هنا، هنا كـ testbook1.xlt.
2.2 إنشاء تقارير Excel وطباعتها يُستخدم هنا مكون تطبيق Excel، والذي يتم تثبيته في النظام عند تثبيت Excel. وتستهدف عملياتنا أيضًا هذا المكون.
(1) قم بإنشاء كائن Excel.Application
تعيين objExcel=CreateObject("Excel.Application")
(2) افتح قالب Excel
objExcel.Workbooks.Open(server.mappath("test")&"book1.xlt") 'فتح قالب Excel
objExcel.Sheets(1).حدد "حدد صفحة العمل".
تعيين SheetActive=objExcel.ActiveWorkbook.ActiveSheet
(3) عمليات الإضافة المنتظمة في Excel مثل SheetActive.range("g4").value=date() 'ما تتم إضافته هنا هو الوقت، وبالطبع يمكن أيضًا أن يكون أي بيانات تحددها.
(4) إضافة السجلات في قاعدة البيانات في Excel من المفترض أن هناك بالفعل مجموعة بيانات adoRset، والتي تقوم بتخزين البيانات الإحصائية التي تم إنشاؤها بواسطة عمليات Sql.
num=7 'ابدأ من الصف السابع في برنامج Excel
افعل حتى adoRset.EOF 'حلقة حتى تتم كتابة البيانات الموجودة في مجموعة البيانات
strRange="d"&num&":f"&num 'قم بتعيين منطقة الوحدة لملء المحتوى
SheetActive.range(strRange).font.size=10 'تعيين حجم الخط
SheetActive.range(strRange).WrapText=false 'تعيين التفاف النص
SheetActive.range(strRange).ShrinkToFit=true 'تعيين ما إذا كان سيتم التكيف تلقائيًا مع حجم وحدة الجدول
SheetActive.range(strRange).value=array(adoRset("bookid"),adoRset("bookname"),adoRset("author")) 'املأ البيانات في مجموعة البيانات في الوحدة المقابلة
الأعداد = الأعداد+1
adoRset.MoveNext
حلقة
(5) حفظ ومعالجة ملفات تقارير Excel المؤقتة، في التشغيل الفعلي، تجدر الإشارة إلى أنه في كل مرة يقوم المستخدم بطباعة تقرير، يتم استخدام ملف Excel مؤقت بدلاً من تحديد اسم الملف بشكل صارم، لأنه إذا كان اسم الملف ثابتًا. المستخدمة، الأولى فقط. بمجرد نجاح الإنشاء، ستفشل العمليات اللاحقة نظرًا لوجود ملف يحمل نفس الاسم بالفعل. لذلك نحن بحاجة إلى إنشاء اسم ملف مؤقت وغير متكرر في كل مرة. هنا يمكننا استخدام وظيفة getTemporaryFile() المخصصة لإنشاءه، ثم تخزينه في اسم الملف المتغير، واستخدام filepos المتغير لتمثيل مسارات هذه الملفات. الملفات المؤقتة.
بالإضافة إلى ذلك، إذا لم تتم معالجة هذه الملفات المؤقتة، فسوف تصبح ملفات غير مرغوب فيها بمرور الوقت، لذلك، عندما يرسل كل مستخدم طلب طباعة تقرير Excel، يجب حذف جميع ملفات الطباعة المؤقتة التي تم إنشاؤها مسبقًا في الدليل المؤقت أولاً.
الكود الرئيسي لمعالجة الملفات المؤقتة هو كما يلي:
وظيفة getTemporaryFile (myFileSystem)
dimtempFile,dotPos
tempFile=myFileSystem.getTempName
dotPos=instr(1,tempFile,".")
getTemporaryFile=mid(tempFile,1,dotPos)&"xls"
وظيفة النهاية
تعيين myFs=createObject("scripting.FileSystemObject")
filePos=server.mappath("test") & "tmp" 'دليل مؤقت لتخزين ملفات الطباعة المؤقتة
fileName=getTemporaryFile(myFs) 'احصل على اسم ملف مؤقت
myFs.DeleteFile filePos&"*.xls" 'حذف كافة ملفات الطباعة المؤقتة التي تم إنشاؤها في الأصل في هذا الدليل
تعيين myFs=لا شيء
رمز الحفظ لملفات Excel المؤقتة هو:
objExcel.ActiveWorkbook.saveas filePos&filename
(6) اخرج من تطبيق Excel
objExcel.quit
تعيين objExcel=لا شيء
(7) طباعة تقرير Excel أدت الخطوات السابقة إلى إنشاء تقرير Excel للطباعة في الخطوة التالية، هناك استراتيجيتان:
الخيار 1: قم بتوفير رابط الملف المؤقت لتقرير Excel الذي تم إنشاؤه أعلاه للمستخدم. يمكن للمستخدم النقر مباشرة لفتح تقرير Excel في المتصفح وطباعته من خلال وظيفة الطباعة في المتصفح. ويمكنه أيضًا النقر بزر الماوس الأيمن وحفظه محليا للطباعة، وما إلى ذلك التعامل معها.
الخيار 2: بعد إنشاء تقرير Excel، قم بتحميله مباشرة في المتصفح من جانب العميل. بالطبع، عندما لا يتم تحميله بالكامل، يجب أن تظهر رسالة "جارٍ التحميل، يرجى الانتظار" وبعبارة أخرى.
2.3 تكوين النظام والاحتياطات على الرغم من أن الكود أعلاه بسيط للغاية، إلا أنه غالبًا ما تحدث أخطاء إذا لم يتم استخدامه بشكل صحيح في الممارسة العملية، لذا فإن تكوين النظام والاحتياطات المذكورة أدناه بالغة الأهمية.
(1) تأكد من صحة إدخال الكود أعلاه، وإلا بمجرد حدوث خطأ في التشغيل، سيبقى كائن Excel في الذاكرة وسيكون من الصعب إزالته، مما يتسبب في أن يكون الاستدعاء التالي بطيئًا للغاية ويؤدي إلى حدوث خطأ في Windows أن الذاكرة لا يمكن قراءتها أو كتابتها. الحل في هذا الوقت هو تسجيل الخروج من المستخدم الحالي. إذا لم ينجح ذلك، يمكنك فقط إعادة التعيين.
(2) تأكد من ضبط أذونات ملف asp المسؤول عن وظيفة الطباعة. الطريقة هي: في إدارة IIS، حدد ملف asp، وانقر بزر الماوس الأيمن وحدد "خصائص"/"أمان الملفات"/"الوصول المجهول والتحكم في المصادقة". هنا، يكون IIS افتراضيًا للوصول المجهول، ويجب عليك تحديد الوصول المصدق ( هنا هي المصادقة الأساسية، يمكن استخدام كلتا الطريقتين ومصادقة Windows المتكاملة، لكن الأولى ليست آمنة بما فيه الكفاية)، وهذا مهم للغاية، وإلا ستحدث أخطاء في التطبيق.
(3) في بعض الأحيان يتم تقسيم التقرير إلى صفحات متعددة، ونريد أن يكون لكل صفحة نفس الرأس، ونطلب طباعة الرأس تلقائيًا على كل صفحة، وهو ما يمكن تعيينه في قالب Excel. الطريقة هي كما يلي: حدد القائمة "ملف"/"إعداد الصفحة"/"ورقة العمل"، ثم أدخل عدد الصفوف في رأسك في "صف العنوان العلوي" (على سبيل المثال، إذا كان الرأس هو الصفوف 1- 3، املأ: $1:$3 ).
3. باختصار، قدمنا مثالاً على إنشاء وطباعة تقارير EXCEL في وضع B/S المكتوب بلغة ASP، والذي تم تطبيقه بشكل جيد في الممارسة العملية. أثبتت الحقائق أيضًا أنه على الرغم من أن كود هذا المثال ليس من الصعب كتابته، إلا أنه يجب عليك الانتباه إلى تكوين النظام، وهذه أيضًا هي الخبرة المكتسبة بعد عدد لا يحصى من الإخفاقات.