قبل السؤال:
منذ بعض الوقت، ولبعض الأسباب، غادرت هنا لفترة قصيرة، وصلتني رسائل بريد إلكتروني لم يتم الرد عليها تلقائيًا بواسطة BLOG، ووجدت أنه لا يزال هناك الكثير من الأشخاص الذين يتابعونني وينتبهون إلى المقالات التي أقرأها كتبت من قبل بالتفكير في الأمر، ما زلت لا أستطيع تحمل البقاء هنا، ولا أستطيع تحمل مغادرة BLOGJAVA، ولا أستطيع تحمل البقاء هنا يا أصدقائي، فلنتحدث... لا أعرف إذا كنتم كذلك بخير.
اليوم أكتب مقالًا مثل هذا، لقد قمت بطباعة تقرير Word قبل بضعة أيام عندما طلب مني العميل ربط جداول متعددة معًا عند طباعة التقرير، لا يزال من الممكن عرض رأس كل جدول إذا كان تغيير الصفحة مطلوبًا.
الشرط الأخير سهل التنفيذ نسبيًا. يحتوي Word على تكرار صف رأس مدمج، والذي يمكن أن يدرك أنه "لا يزال من الممكن عرض رأس كل جدول عند تغيير الصفحات." هذه الوظيفة لها فرضية: يجب أن تحتوي الصفوف المتكررة على الأول صف من الجدول، والذي يصادف أيضًا أنه أحد متطلبات موكلي.
ومع ذلك، عند توصيل جداول متعددة معًا، بغض النظر عن مدى قرب الجداول العلوية والسفلية عند الطباعة، سيتم عرض سطرين قريبين جدًا، وهو ما لا يلبي متطلبات العميل وليس جميلًا.
لاحقًا، فكرت في هذه الطريقة، وهي إزالة السطر السفلي من الصف الأخير من الجدول السابق، بحيث يكون هناك سطر واحد فقط بين الجدولين العلوي والسفلي، على الرغم من أنه لا يزال هناك مكان قصير قليلاً في المنتصف، إلا أن العميل كان كذلك راض جدا عن ذلك.
هناك خطأ في القيام بذلك: إذا كان الجدول A عبارة عن صفحة واحدة بالضبط، والصفحة التالية عبارة عن جدول آخر، فإن الصف الأخير من الجدول A ليس موجودًا عند الطباعة، ويفتقد الجدول الصف السفلي، وهو أمر قبيح حقًا وهي ليست طاولة.
الحل: استخدم كلمة ماكرو أولاً لمعرفة كيفية رسم السطر السفلي من الجدول وتحديد الصفحة التي يوجد بها المؤشر عند الطباعة باستخدام جافا سكريبت، حدد ما إذا كان الصف الأخير من جدول واحد والصف الأول من الجدول التالي في نفس الصفحة، وإذا لم يكن موجودًا في صفحة واحدة، فسيتم إضافة الجدول السابق أسفل السطر.
وطريقة الحكم هي كما يلي:
صفحة الوظيفة (الجدول 1، الصف 1، الجدول 2، الصف 2) {
myDoc.Tables(table1).Rows(row1).Select();
var page=wordApp.Selection.Information(3);
myDoc.Tables(table2).Rows(row2).Select();
var page1=wordApp.Selection.Information(3);
إذا (الصفحة1>الصفحة)
myDoc.Tables(table1).Borders.OutsideLineStyle=1;
}
العميل الذي كان من الصعب جدًا خدمته ابتسم أخيرًا بعد قراءة التقرير المطبوع، لم يكن الأمر سهلاً، فجهود عدة أيام لم تذهب سدى.