|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
| Добрый вечер. Суть задачи - необходимо добавить пустой лист в отчете. Поясню зачем это нужно - Есть отчет с группировко по нескольким полям, в котором каждая группа начинается с нового листа. При печати на принтере с двусторонней печатью за раз всего отчета может получиться что если в группе нечетное кол-во листов, то первый лист новой группы напечатается на обороте последнего листа предыдущей группы, что неприемлемо. Можно конечно печатать интервалами начиная с первого листа группы и заканчивая последним, но в отчете в среднем каждый месяц бывает около 400 листов, и перемещение между ними для того чтобы найти начало следующей группы происходит очень медленно. Очень. Такое ощущение что Access каждый раз заново пересоздает весь отчет. Собс-но решением проблемы стало бы добавление к группе, имеющей нечетное количество листов, пустого листа в конец этой группы. (Кол-во страниц в группе известно - спасибо BoNiM). Но можно-ли и как это сделать не представляю. Спасибо всем кто дочитал это послание до конца, а если кто-то еще и поскажет решение буду премного благодарен. best regards!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.03.2008 11:35
Сообщ.: 839,
Visits: 8 738
|
|
1. Создайте примечание раздела.
2. Задайте свойство «Конец страницы» (ForceNewPage) = "До раздела".
3. Обработчик события «Форматирование» (Format) имеет следующий синтаксис:
Private Sub имяРаздела_Format(Cancel As Integer, FormatCount As Integer)
В обработчик события «Форматирование» (Format) примечания раздела напишите, что если кол-во страниц - чётное (это Вы вроде как можете определить), то Cancel=True - в этом случае раздел не будет отпечатан и пустая страница не будет добавлена.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
| Здравствуйте, Михайло! К сожалению воспользоваться Вашим советом не могу, т.к. примечание группы используется в отчете для вывода итоговых значений для этой группы записей. Но мысль понятна, и есть идея попробовать изменение высоты примечания, т.е. если количество страниц нечетное, задаем такую высоту примечания, чтобы она занимала два листа. Вот только есть проблема с колонтитулом всего отчета, там шапка для всех листов, и печатать ее на пустом листе не хотелось бы, а сделав ее невидимой первый раз при изменении высоты примечания, для последующих листов она так и остается невидимой. Но это наверно поправимо. Спасибо, буду пробовать!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.03.2008 11:35
Сообщ.: 839,
Visits: 8 738
|
|
Не в высоте дело... И вообще, это неправильный путь.
Добавьте фиктивный уровень группировки и получите искомое примечание. Уровень можно кроме всего прочего получить путём ввода выражения вместо имени поля таблицы/запроса. Например, так:
=false
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.03.2008 11:35
Сообщ.: 839,
Visits: 8 738
|
|
| А ещё лучше - сделайте копию требуемого уровня группировки, в примечании которого и выполняйте добавление страницы...
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
| Уважаемый Михайло, полностью согласен с Вами по поводу подхода. Просто время поджимает и это первое, что пришло в голову. (Правда в итоге ничего не вышло.) Если добавить группировку по фиктивному выражению (=false) и сделать так, как Вы писали выше, то получается на каждую строку по странице, а сделать копию уровня группировки по нужному полю (NUMR) у меня не получилось. Если сделать еще одну группировку по этому же полю (NUMR), ACCESS ругается на неоднозначную ссылку на это поле. Если Вам не трудно, напишите как правильно сделать копию уровня группировки. Заранее спасибо!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 13.03.2008 11:35
Сообщ.: 839,
Visits: 8 738
|
|
1. Предположим, у Вас есть уровень группировки по полю NUMR таблицы/запроса.
В заголовке группы заполните свойство «Конец страницы» (ForceNewPage) = "До раздела".
2. Создайте ещё один уровень группировки по полю NUMR и в примечании группы:
- заполните свойство «Конец страницы» (ForceNewPage) = "До и после раздела";
- поместите элемент управления "Разрыв страницы".
- в процедуру обработки события «Форматирование» (Format) этого примечания напишите:
If (Page Mod 2) <> 0 Then Cancel = -1
Пример прилагается.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
| Михайло, здравствуйте. Извините, что долго молчал ( командировка ). Спасибо за такой исчерпывающий ответ, но в моем случае это не сработало, я забыл написать, что работаю с SQL Server и источником строк в отчете у меня является ХП, возвращающая некий набор строк. И при попытке добавить еще один уровень группировки по полю, ACCESS ругается на неоднозначную ссылку на это поле. Возможно это происходит только для ХП? Или я не правильно что-то делаю?
|
|
|
| | |