Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: А 2002 Нижний колонтитул отчета
 
 автор: ники   (02.04.2008 в 12:40)   личное сообщение
 
 

Подскажите, пожалуйста, кто знает...Такая ситуация: Отчет на 2-х страницах, примечание отчета уходит на вторую страницу, нижний колонтитул на первой странице выводится как ему и положено – внизу, т.е. между данными отчета и нижним колонтитулом получается разрыв. Нельзя ли заставить нижний колонтитул на первой странице печататься сразу после данных. Спасибо

  Ответить  
 
 автор: osmor   (02.04.2008 в 13:17)   личное сообщение
 
 

колонтитул - он на то и колонтитул что бы печататься на краю страницы....
Отключите печать колонтитула на последней странице и сделайте примечание отчета таким что бы и данные из колонтитула тоже были в нем

  Ответить  
 
 автор: Анатолий (Киев)   (02.04.2008 в 15:14)   личное сообщение
 
 

Попробуйте так:
Создайте группировку по выражению "=1", в примечание группы перенесите все из нижнего колонтитула, а его спрячте.

  Ответить  
 
 автор: Ники   (02.04.2008 в 15:58)   личное сообщение
 
 

Не проходит! У меня формируется «Товарная накладная». Если количество записей меньше чем заданное количество, то последняя запись переносится на следующую страницу, на первой странице получается разрыв, а примечание группы выводится в конце всех данных, т.е. на следующей странице. Получается что примечание группы в разрыв данных (строк отчета) я вставить не могу. Есть ли какой то другой способ решить эту проблему? Спасибо!

  Ответить  
 
 автор: alecks_lp   (03.04.2008 в 08:18)   личное сообщение
 
 


Если количество записей меньше чем заданное количество, то последняя запись переносится на следующую страницу, на первой странице получается разрыв, а примечание группы выводится в конце всех данных, т.е. на следующей странице

У Вас же есть обработка этого условия? Включите эту в процедуру подавление колонтитула и вывод требуемого примечания сразу после данных

  Ответить  
 
 автор: Ники   (03.04.2008 в 10:27)   личное сообщение
 
 

Все так и сделано, убрал колонтитул на первой странице, вывел примечание группы... Но так как данные разрываются на две страницы, соответственно примечание группы выводится всего лишь один раз – в конце данных на второй странице. Доступно только использование колонтитула, что нежелательно. Если бы был способ (програмно) разбить данные на группы – для каждой страницы своя, думаю что проблема была бы решена. Что то подскажете? Спасибо.

  Ответить  
 
 автор: Анатолий (Киев)   (03.04.2008 в 11:11)   личное сообщение
 
 

>Если бы был способ (програмно) разбить данные на группы – для каждой страницы своя
Нет такого способа.
Могу предложить пару вариантов.
1. Создать группу по ID записи. Тогда в нужный момент можно показать заголовок или примечание этой группы для конкретной записи..
2. В области данных положить и поля (скрытые), которые сейчас у вас в колонтитуле. В нужный момент скрываете одни поля, показываете другие, и Me.NextRecord=False. На следующей записи всё восстановить. ИМХО, у вас обработка переноса записи на след. станицу выполняется на событии Detail_Print? В данном варианте она не нужна.

  Ответить  
 
 автор: Ники   (03.04.2008 в 13:23)   личное сообщение
 
 

Наверное больше подходит вариант 2. Работает примерно такой код по событию Detail_Format
Dim stroka As Long
stroka =3
If Me.Поле56 Mod stroka <> 0 Then ’ Поле56 - счетчик
Detail.ForceNewPage = 0
Me!П33.Visible = False ‘ поле в области данных
Else
Detail.ForceNewPage = 1
End If
If Me.Поле56 Mod stroka = 0 Then
Me!П33.Visible = True
End If
Здесь П33 выводится вместе с третьей строкой (и далее во всех строках на другой странице), а нужно чтобы П33 выводилось в четвертой (со скрытыми данными) строке на первой странице и далее в других строках не выводилось, подскажите что не так. Спасибо.

  Ответить  
 
 автор: Анатолий (Киев)   (03.04.2008 в 18:17)   личное сообщение
 
 

Судя по приведенному коду ситуация длжна быть другой - каждая запись печатается трижды, и в каждой третей записи поле П33 - показывается.
То, что вы описали может получиться, если не срабатывает условие
If Me.Поле56 Mod stroka <> 0 Then

Для 4-й строки я бы сделал так:
Dim fl As Boolean
fl = (Me.Поле56=4)
Me.ForceNewPage = Not fl
Me!П33.Visible = fl
Me!остальные.Visible = Not fl

  Ответить  
 
 автор: Ники   (03.04.2008 в 18:51)   личное сообщение
 
 

Ситуация была как раз такая как я описывал. На данный момент, благодаря вашему варианту 2, задачу всетаки решил. Пришлось правда подправить код и все заработало. Если хотите посмотреть я пришлю.Там ничего сверхестественного нет так что могу отправить в следующем сообщении. А за идею БОЛЬШОЕ СПАСИБО!!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList