powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Ссылка на subreport из CrossTable
7 сообщений из 7, страница 1 из 1
Ссылка на subreport из CrossTable
    #35904751
Lacroix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день!

Подскажите, как реализовать подобную задачу.
Есть простая Cross-таблица, следующего содержания:
Код: plaintext
1.
2.
3.
4.
5.
6.
               Всего
 2008             45 
 2009             32 
Остальные    23 
Всего          100 


Группировка строк по полю типа DateTime, значащая часть только год. Все данные кроме друх указанных лет (2008, 2009), пусть остаются в "Остальных".

Вопрос: как сделать, чтобы, например, двойной клик мышки по полю "2008", "2009", "Остальные" выводил нам отдельный subreport, в котором бы списком отображались наши 45, 32 и 23 записи соответственно.

Система отчетов: "Crystal Reports for MS Visual Studio 2005", C#

Заранее спасибо
...
Рейтинг: 0 / 0
Ссылка на subreport из CrossTable
    #35904762
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lacroix
Вопрос: как сделать, чтобы, например, двойной клик мышки по полю "2008", "2009", "Остальные" выводил нам отдельный subreport, в котором бы списком отображались наши 45, 32 и 23 записи соответственно.
Заранее спасибо
1. Забыть, что это Cross таблица. Это обычный репорт с группировкой по годам.
2. Выкинуть к черту крамольные мысли о сабрепортах. Все вполне решается на уровне обычного репорта.
3. В Detail вывести нужные вам записи. Всю секцию Detail в Hide
4. Создать группировку по дате со сворачиванием по годам "for each year". А до кучи указываете особый порядок сортировки "In Specified order", где задаете параметры выборки в 2008, 2009 годы, а так же название для группы "Остальные" ("Others")

Все.
...
Рейтинг: 0 / 0
Ссылка на subreport из CrossTable
    #35905073
Lacroix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan,

Спасибо за ответ, все сделал как Вы написали. Однако есть один момент:
Значением поля даты, по которой производится группировка может быть равным null в БД. Когда я делал группировку в Cross-таблице, в группе "Остальные" у меня все даты < 2008 года + все записи, у которых это поле null. Когда я сделал по вашему совету (группировка аналогично как в кросс-таблице) у меня в группу не попадают строки с null. Не пойму почему ? Разъясните, пожалуйста, группировку сделал правильно по-моему.
Спасибо.
...
Рейтинг: 0 / 0
Ссылка на subreport из CrossTable
    #35905151
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LacroixKruchinin Pahan,

Спасибо за ответ, все сделал как Вы написали. Однако есть один момент:
Значением поля даты, по которой производится группировка может быть равным null в БД. Когда я делал группировку в Cross-таблице, в группе "Остальные" у меня все даты < 2008 года + все записи, у которых это поле null. Когда я сделал по вашему совету (группировка аналогично как в кросс-таблице) у меня в группу не попадают строки с null. Не пойму почему ? Разъясните, пожалуйста, группировку сделал правильно по-моему.
Спасибо.
Мне казалось, что NULL должны правильно попадать в прочие. Проверить сейчас не на чем, так что попробуйте настройку отчета "Convert database NULL values to Default".

Если это по какой-то причине не устраивает, оберните дату в формулу, а уже в формуле укажите "Default values for NULLs". Ну, а группировку уже делайте по формуле.
...
Рейтинг: 0 / 0
Ссылка на subreport из CrossTable
    #35905582
Lacroix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan,
Выставление параметра "Convert database NULL values to Default" помогло считает все отлично, но появилась еще одна проблема, так как поле группировки у меня типа data он не хочет казать группу "Остальные", так как и любую другую с текстовым названием, и поле груупы оставляет пустое

2008 24
2009 42
53

Хотя в свойствах поля группировки для параметра ZeroValueString выставил даже ручками "Остальные". Почему так, ведь в кросстаблице все нормально отображается и название групп и числа
...
Рейтинг: 0 / 0
Ссылка на subreport из CrossTable
    #35905654
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lacroix
Хотя в свойствах поля группировки для параметра ZeroValueString выставил даже ручками "Остальные". Почему так, ведь в кросстаблице все нормально отображается и название групп и числа
В XI и XII проверил. Должна быть закладка "Others", выбор должен стоять на "Put all others together, with the name" и здесь задается имя прочих.

VS2005, это либо 9, либо 10-я версия. Вполне возможно, если нужных настроек нет, придется все переводить на формулу.

Приблизительно так:
Код: plaintext
1.
2.
3.
4.
select Year ({Command.datacr})
case  2008  : '2008'
case  2009  : '2009'
default: 'Остальные'
Но считаться будет дольше. Попробуйте для начала победить настройками группы.
...
Рейтинг: 0 / 0
Ссылка на subreport из CrossTable
    #35905698
Lacroix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahan,
Победить настройками группы не удалось - все перепробовал, не хочет он видеть в упор мои специальные группы. Но я решил эту проблему по другому: беру запросом из базы не дату, а делаю extract(year FROM моя_DATE) as мой_year и поле в отчете получается целым, тогда вся группировка работает нормально. Правда отчет переделать малость надо будет..

Спасибо огромное Вам за участие
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Ссылка на subreport из CrossTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]