Crystal Reports 11 - Как печатать разные данные на нескольких страницах - PullRequest
4 голосов
/ 02 декабря 2010

У меня есть отгрузочная этикетка, которую нужно распечатать на принтере Dymo Label с немного отличающимися данными на каждой из 3 страниц. Можно ли сделать это только с одним .rpt, чтобы пользователям приходилось печатать только один отчет, а не три?

http://imgur.com/5UUl4

Ответы [ 3 ]

2 голосов
/ 05 декабря 2010

Прошло много времени с тех пор, как я использовал Crystal Reports, но вы можете настроить свой .RPT так, чтобы он содержал три подробных раздела (A / B / C) и чтобы B и C "печатали новую страницу раньше".Таким образом, каждая деталь будет находиться в трех отдельных разделах.

Вам не нужно делать что-то сумасшедшее с пользовательскими формулами.Все, что вам нужно сделать, это отобразить каждый фрагмент данных три раза, по одному на каждой странице, причем каждая страница немного отличается.

(Конечно, вы можете использовать заголовок и просто поместить изменяющиеся данные в раздел сведений.... но на это уйдет больше времени, чем на повторение необходимых данных в каждом разделе данных.)

Подтверждено

  1. Открыть отчет
  2. Щелкните правой кнопкой мыши по разделу Сведения
  3. Выберите «Вставить раздел ниже»
  4. Повторите шаги 2 и 3 дважды
  5. Убедитесь, что вы видите три раздела сведений
  6. Используйте «Эксперт раздела» (или Свойства Visual Studio) для разделов А и В и выберите «Новая страница после».(Если вы используете Section Expert, убедитесь, что вы находитесь на вкладке «Пейджинг».)
  7. Создайте нужное содержимое в каждом разделе сведений.
  8. Возможно, вы хотите отключить все остальные разделы, включая отчет / страницу.Верхние и нижние колонтитулы.

.RPT Подробная настройка раздела

Report Setup

Секция Эксперт

Section Expert

0 голосов
/ 05 декабря 2010

Если вы можете заставить ваши данные повторяться три раза, так что каждая «запись» для вашего отчета дублируется, вы можете сделать что-то с несколькими разделами деталей (из эксперта раздела создайте три раздела подробностей)

А затем используйте «Подавить (без детализации)» с формулой, чтобы показать каждую версию метки по очереди, в зависимости от номера записи. alt text

Для каждого раздела сведений добавить формулу (с использованием основного синтаксиса)

  1. formula = (Remainder(RecordNumber,3) <> 1)
  2. formula = (Remainder(RecordNumber,3) <> 2)
  3. formula = (Remainder(RecordNumber,3) <> 0)

Затем создайте каждый немного другой ярлык на каждом из разделов с подробностями.

Мне удалось получить три строки данных, выполнив перекрестное объединение (SQL Server), предположив таблицу с данными ReportData

;with cte as 
(
select 1 as ver
union
select 2 as ver
union
select 3 as ver
) 
select * from 
cte cross join ReportData
order by OrderNumber, ver;
0 голосов
/ 02 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...