2017-01-10 6 views
0

У меня есть отчет SSRS, который выглядит следующим образом:SSRS строки в табликсе вне группы переходит на следующую страницу

Report Header: 
Page X of Total Page Y (based on change of Customer ID) 
Customer ID (Referring to ReportItem!CustomerID) 

Report Body: 
A tablix page break by change of group Customer ID 

Tablix Header:  Date | Price | Quantities | Description | Hidden Column Customer ID 
Tablix Details: YYYY-MM-DD | 1.00 | 500  | Blah Blah | Customer ID (used for page header referring) 
Row outside group: Empty 
Row outside Group: Sum of Price 
Row outside Group: Sum of Quantities 
Row outside group: Empty 
Row outside group: *** END OF RECORDS *** 

Report Footer: 
Company address 

Иногда, строка за пределами группы будет идти на следующую страницу, если тело отчета для деталей Tablix будут выведены на следующую страницу, будут отображаться только некоторые из строк вне группы (например, * КОНЕЦ ЗАПИСИ *).

Затем в заголовке отчета поле идентификатора клиента не может получить значение ReportItem! CustomerID, которое оставляет его пустым.

Есть ли способ решить проблему? Или заставить строку, находящуюся за пределами группы, присоединяться к деталям tablix на той же странице? По какой-то причине я не могу ограничить количество строк на странице. Благодарю.

+0

Является ли этот отчет для 1 клиента за раз или в несколько раз? – StevenWhite

+0

@StevenWhite, он работает для нескольких клиентов одновременно. И экспортируется в формате PDF. Благодарю. – TinySimonH

ответ

0

Возможно, вы можете попробовать бросить другую скрытую копию окончательного «Идентификатора клиента» где-нибудь в строке группы «КОНЕЦ ЗАПИСИ», а затем использовать IIF для вызова этого, если у вас есть оригинальный скрытый «Идентификатор клиента», на последней странице.

+0

Этот подход также не работает. Я создал еще одно скрытое текстовое поле рядом с «КОНЕЦ ЗАПИСИ». Затем в заголовке страницы используйте ниже IIF для обнаружения КодКлиента: (!! IsNothing (ReportItem CustomerID.Value), ReportItem CustomerID_TABLIX_FOOTER.Value, ReportItems CustomerID.Value) '= IIF' Но это выбросит другое errror: ** Выражение в верхнем или нижнем колонтитуле страницы может ссылаться только на один элемент отчета. ** – TinySimonH

+0

@TinySimonH. Хорошо. У меня есть другая идея. Если ваш выход является файлом PDF, это может сработать. Сохраните это второе скрытое поле «CustomerID», которое вы создали в строке «КОНЕЦ ЗАПИСИ». В своем заголовке используйте 2 текстовых поля, наложенных друг на друга. Один вызывает исходное поле «CustomerID», а другое вызывает новое поле «CustomID». Если оба поля «CustomerID» присутствуют на одной странице одновременно, то текстовые поля заголовка будут просто перекрываться друг с другом с теми же данными, и, теоретически, вы никогда не узнаете, что в области заголовка есть два отдельных текстовых поля. :-) – Rashiki

+0

Спасибо! Хотя ваш метод может отображать идентификатор клиента, он сделает шрифт более смелым, если оба поля перекрываются. Во всяком случае, я буду отмечать этот действительный ответ, поскольку это лучший способ представить отчет. Благодарю. – TinySimonH

0

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

См. Мой ответ here для получения более подробной информации о том, как это сделать.

+0

Похоже, что @TinySimonH в порядке с разрывами страниц в группе строк, но если я правильно понимаю, что происходит в том, что в группе разрыва страницы есть достаточно клиентов данные о том, что он создает дополнительную конечную страницу, которая не будет содержать никаких данных клиента, а только строки группы нижних колонтитулов Tablix. И поскольку в этих строках группы нижнего колонтитула Tablix не хранятся скрытые данные «идентификатора клиента», на которые опирается его поле заголовка, логика его поля заголовка не работает на этой последней странице, потому что он обращается к данным из поля тела, не существует на последней странице. – Rashiki

+0

@ Рашики, вы совершенно правы и полностью понимаете мой вопрос. Теперь я пытаюсь использовать ваш метод, упомянутый выше. – TinySimonH

+0

Я вижу. Я бы по-прежнему предлагал вам разрешить значения фильтров SSRS на основе текущей группировки. Попытка перекрестных ссылок в других объектах не так надежно. Точно так же, как когда вы делаете Sum на разных уровнях стержня. Нет смысла говорить, какие текстовые поля для Sum, когда он уже знает о своей области. – StevenWhite

Смежные вопросы