Перед вопросом:
Некоторое время назад по каким-то причинам я ненадолго ушел отсюда. В этот период я получал электронные письма, на которые БЛОГ не отвечал автоматически. Я обнаружил, что все еще много людей следят за мной и обращают внимание на мои статьи. писал раньше, думая об этом, я все еще не могу здесь находиться, я не могу покинуть БЛОГЯВУ, я не могу находиться здесь, друзья мои, давайте поговорим... Я не знаю, сможете ли вы. все в порядке.
Сегодня я пишу подобную статью. Несколько дней назад я распечатал текстовый отчет. Когда клиент попросил меня соединить несколько таблиц вместе при печати отчета, заголовок каждой таблицы все равно мог отображаться, если требовалось изменение страницы.
Последнее требование относительно легко реализовать. Word имеет встроенную функцию дублирования строк заголовка, которая позволяет реализовать «заголовок каждой таблицы по-прежнему может отображаться при смене страниц». У этой функции есть предпосылка: повторяющиеся строки должны содержать первые. строку таблицы, что также является одним из требований моего клиента.
Однако при соединении нескольких таблиц вместе, как бы близко ни находились верхняя и нижняя таблицы при печати, будут отображаться две очень близкие строки, что не соответствует требованиям заказчика и некрасиво.
Позже я придумал этот метод, удалив нижнюю строку из последней строки предыдущей таблицы, чтобы между верхней и нижней таблицами была только одна строка. Хотя посередине все еще осталось немного места, клиент был. очень доволен этим.
При этом есть ошибка: если в таблице А ровно одна страница, а следующая страница — другая таблица, то последней строки таблицы А нет. При печати в таблице отсутствует нижняя строка. Это действительно некрасиво. и это не стол.
Решение: сначала используйте макрос Word, чтобы увидеть, как нарисовать нижнюю строку таблицы, и определить страницу, на которой находится курсор. При печати с помощью JavaScript определите, являются ли последняя строка одной таблицы и первая строка следующей таблицы. на той же странице. Если ее нет на одной странице, предыдущая таблица добавляется под строкой.
Метод вынесения решения следующий:
Страница функции (таблица1, строка1, таблица2, строка2) {
myDoc.Tables(таблица1).Rows(row1).Select();
var page=wordApp.Selection.Information(3);
myDoc.Tables(таблица2).Rows(row2).Select();
var page1=wordApp.Selection.Information(3);
если(страница1>страница)
myDoc.Tables(table1).Borders.OutsideLineStyle=1;
}
Клиент, которого было очень сложно обслуживать, наконец, улыбнулся, прочитав распечатанный отчет. Это было непросто. Ведь усилия нескольких дней не прошли даром.