|
|
|
Ссылка на subreport из CrossTable
|
|||
|---|---|---|---|
|
#18+
Всем добрый день! Подскажите, как реализовать подобную задачу. Есть простая Cross-таблица, следующего содержания: Код: plaintext 1. 2. 3. 4. 5. 6. Группировка строк по полю типа DateTime, значащая часть только год. Все данные кроме друх указанных лет (2008, 2009), пусть остаются в "Остальных". Вопрос: как сделать, чтобы, например, двойной клик мышки по полю "2008", "2009", "Остальные" выводил нам отдельный subreport, в котором бы списком отображались наши 45, 32 и 23 записи соответственно. Система отчетов: "Crystal Reports for MS Visual Studio 2005", C# Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2009, 06:55 |
|
||
|
Ссылка на subreport из CrossTable
|
|||
|---|---|---|---|
|
#18+
Lacroix Вопрос: как сделать, чтобы, например, двойной клик мышки по полю "2008", "2009", "Остальные" выводил нам отдельный subreport, в котором бы списком отображались наши 45, 32 и 23 записи соответственно. Заранее спасибо 1. Забыть, что это Cross таблица. Это обычный репорт с группировкой по годам. 2. Выкинуть к черту крамольные мысли о сабрепортах. Все вполне решается на уровне обычного репорта. 3. В Detail вывести нужные вам записи. Всю секцию Detail в Hide 4. Создать группировку по дате со сворачиванием по годам "for each year". А до кучи указываете особый порядок сортировки "In Specified order", где задаете параметры выборки в 2008, 2009 годы, а так же название для группы "Остальные" ("Others") Все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2009, 07:23 |
|
||
|
Ссылка на subreport из CrossTable
|
|||
|---|---|---|---|
|
#18+
Kruchinin Pahan, Спасибо за ответ, все сделал как Вы написали. Однако есть один момент: Значением поля даты, по которой производится группировка может быть равным null в БД. Когда я делал группировку в Cross-таблице, в группе "Остальные" у меня все даты < 2008 года + все записи, у которых это поле null. Когда я сделал по вашему совету (группировка аналогично как в кросс-таблице) у меня в группу не попадают строки с null. Не пойму почему ? Разъясните, пожалуйста, группировку сделал правильно по-моему. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2009, 10:39 |
|
||
|
Ссылка на subreport из CrossTable
|
|||
|---|---|---|---|
|
#18+
LacroixKruchinin Pahan, Спасибо за ответ, все сделал как Вы написали. Однако есть один момент: Значением поля даты, по которой производится группировка может быть равным null в БД. Когда я делал группировку в Cross-таблице, в группе "Остальные" у меня все даты < 2008 года + все записи, у которых это поле null. Когда я сделал по вашему совету (группировка аналогично как в кросс-таблице) у меня в группу не попадают строки с null. Не пойму почему ? Разъясните, пожалуйста, группировку сделал правильно по-моему. Спасибо. Мне казалось, что NULL должны правильно попадать в прочие. Проверить сейчас не на чем, так что попробуйте настройку отчета "Convert database NULL values to Default". Если это по какой-то причине не устраивает, оберните дату в формулу, а уже в формуле укажите "Default values for NULLs". Ну, а группировку уже делайте по формуле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2009, 11:07 |
|
||
|
Ссылка на subreport из CrossTable
|
|||
|---|---|---|---|
|
#18+
Kruchinin Pahan, Выставление параметра "Convert database NULL values to Default" помогло считает все отлично, но появилась еще одна проблема, так как поле группировки у меня типа data он не хочет казать группу "Остальные", так как и любую другую с текстовым названием, и поле груупы оставляет пустое 2008 24 2009 42 53 Хотя в свойствах поля группировки для параметра ZeroValueString выставил даже ручками "Остальные". Почему так, ведь в кросстаблице все нормально отображается и название групп и числа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2009, 13:24 |
|
||
|
Ссылка на subreport из CrossTable
|
|||
|---|---|---|---|
|
#18+
Lacroix Хотя в свойствах поля группировки для параметра ZeroValueString выставил даже ручками "Остальные". Почему так, ведь в кросстаблице все нормально отображается и название групп и числа В XI и XII проверил. Должна быть закладка "Others", выбор должен стоять на "Put all others together, with the name" и здесь задается имя прочих. VS2005, это либо 9, либо 10-я версия. Вполне возможно, если нужных настроек нет, придется все переводить на формулу. Приблизительно так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2009, 13:41 |
|
||
|
Ссылка на subreport из CrossTable
|
|||
|---|---|---|---|
|
#18+
Kruchinin Pahan, Победить настройками группы не удалось - все перепробовал, не хочет он видеть в упор мои специальные группы. Но я решил эту проблему по другому: беру запросом из базы не дату, а делаю extract(year FROM моя_DATE) as мой_year и поле в отчете получается целым, тогда вся группировка работает нормально. Правда отчет переделать малость надо будет.. Спасибо огромное Вам за участие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2009, 13:53 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=35905582&tid=1536273]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 361ms |

| 0 / 0 |
