Кросс бэнды для новичка !!!
starcomputer
Украина, Донецк
Помогите кто-нибудь разобраться новичку с кросс-бэндами.
Насколько я понял из документации (а больше из форума), чтобы создать отчет с кросс-бэндами, нужно сначала препарировать все данные, создать уже готовый запрос, в котором все уже просуммировано, а затем уже строить отчет ???
Но тогда зачем все эти кросс-бэнды ? Такой отчет можно создать одним простым запросом с помощью TRANSFORM ..... PIVOT операторов.
Наверно я все таки чего-то не понял (хоть бы разработчики дали в демке пример с базой данных, а не отвлеченное нумерование столбцов).
А задача такая, есть большая база данных, есть запрос, который выбирает из нее ВСЕ.
Поля базы (к примеру):
Область, Город, Район, Количество_жителей.
Как с помощью кросс-бэндов получить допустим такую таблицу:
Город1 Город2 Город3 ....
Область1 - Cell -
Область2
Область3
Cell - это понятно суммарное количество жителей.
Пробовал уже как угодно, даже по одному из обсуждений в форуме создал запрос DISTINCT Область FROM DataBase
Однако результат один и тот же либо ничего, либо получаю первую из областей и длинный список цифр каждый раз начинающийся с новой страницы (этак страниц на 200), либо при обработке отчета где-то на 500-600 странице виснет DELPHI.
Ни разу распределения не получил, хотя-бы какого нибудь.
Можно конечно и создать специальные запросы но ....
Очень прошу подкидывать любые идеи, а то времени мало
Можно на ящик starcomputer@narod.ru
С уважением и ожиданием, Сергей.
Насколько я понял из документации (а больше из форума), чтобы создать отчет с кросс-бэндами, нужно сначала препарировать все данные, создать уже готовый запрос, в котором все уже просуммировано, а затем уже строить отчет ???
Но тогда зачем все эти кросс-бэнды ? Такой отчет можно создать одним простым запросом с помощью TRANSFORM ..... PIVOT операторов.
Наверно я все таки чего-то не понял (хоть бы разработчики дали в демке пример с базой данных, а не отвлеченное нумерование столбцов).
А задача такая, есть большая база данных, есть запрос, который выбирает из нее ВСЕ.
Поля базы (к примеру):
Область, Город, Район, Количество_жителей.
Как с помощью кросс-бэндов получить допустим такую таблицу:
Город1 Город2 Город3 ....
Область1 - Cell -
Область2
Область3
Cell - это понятно суммарное количество жителей.
Пробовал уже как угодно, даже по одному из обсуждений в форуме создал запрос DISTINCT Область FROM DataBase
Однако результат один и тот же либо ничего, либо получаю первую из областей и длинный список цифр каждый раз начинающийся с новой страницы (этак страниц на 200), либо при обработке отчета где-то на 500-600 странице виснет DELPHI.
Ни разу распределения не получил, хотя-бы какого нибудь.
Можно конечно и создать специальные запросы но ....
Очень прошу подкидывать любые идеи, а то времени мало
Можно на ящик starcomputer@narod.ru
С уважением и ожиданием, Сергей.
Комментарии
Ээээээ ... Это реальный пример или ты его только что придумал ?
Я вот сижу и думаю - может ли один и тотже город попадать в несколько областей ? ) ИМХО такой кросс отчёт нафиг никому не нужен - могу объяснить почему... У тебя данные c CELL будут заполнены ТОЛЬКО НА ОДНОМ пересечении Область-Город !!!
Ну пример нереальный, но очень близкий.
... один город в несколько областей ....
Город конечно нет, а вот название .......
А вообще согласен, пример не очень
Если нужно другой, то замени поле Город на поле Наименование_банка, а поле Количество_жителей на поле Количество_клиентов_банка.
Согласись, что филиалы одного и того-же банка могут быть в разных областях и городах.
Но суть не в этом, мне не важно сколько ячеек будут заполнены (будут конечно и пустые), мне нужно разобраться как вообще построить кросс-отчет (без кросс-таб, это использую сейчас, оставляет желать лучшего) на таком примере.
Спасибо за интерес к чужим проблемам, это редкость !!!
Мы можем указать источник данных (здесь назначается только один источник данных), с которым будет связан cross-tab object, и расположить поля источника данных по соответствующим полям отчета (заголовкам «header» по вертикали или горизонтали и, собственно, размножаемым ячейкам).
То есть поле города из твоего примера надро всунуть именно туда.
Хотелось бы отметить возможность создавать сложные заголовки, что сразу же мгновенно отображается в дизайнере
По поводу результатов и суммирования:
Как мы можем видеть, готовый отчет, подобно MS Excel, свободно разбивает на необходимое число страниц. Сходство с MS Excel еще более усиливается тем, что здесь можно задать вывод промежуточных результатов (subtotals), для самих же результатов доступны такие функции:
Sum – сумма;
Min – минимальное значение;
Max – максимальное значение;
Average – среднее значение;
Count – число значений.
Вроде бы всё. Скоро постараюсь статьи выложить на эту тему.
А как !!!
В строках - понятно
А в столбцах ?
Я попробовал сделать вертикальную ориентацию заголовков столбцов и наткнулся на то, что даже при выключенном WordWrap и автоматической ширине слова в заголовке режутся. Похоже высоту заголовка столбца нельзя сделать больше какой-то определенной (какой ?).
Потом можно ли сделать сложные заголовки столбцов, типа:
|1111111111111|
|
|
|22222|2222222|
|
|
|33|33|33|33|33|
|c1|c2|c3|c4|c5 |
Где с1 - с5 это поля, которые я ввожу в поле ячеек.
Я пробовал вносить несколько полей в ячейки - выводятся, что ОЧЕНЬ радует, я такое давно искал (TRANSFORM ...... PIVOT увы .... ), но выводятся одно под одним и естественно без подписей.
С уважением,
Да, верно, есть такая демка. Я уже и раньше рассматривал, но думал, может упустил что
Дело в том, что как ни крути кросс-таб, такой вот формы:
Год
месяц1
месяц2
месяц3
покупка--- покупка-- покупка--
(сум)
(ср)
(кол)
а
1000
100
10
б
800
90
12
в
900
80
11
из него не получишь.
А такая форма как раз и более привычна бывшим советским бюрократам, кому мы отчеты сдаем.
С уважением,
А я так их и получаю !
А вот как их вывести в виде:
МЕСЯЦ
МЕСЯЦ
МЕСЯЦ
|
|
|
|
|
|
|
ПОКУПАТЕЛЬ--СУММА---СРДН---КЛВ----СУММА---СРДН---КЛВ
|
|
|
|
|
|
|
альфа
100
10
10
бета
200
20
10
гамма
300
30
10
........
|
|
|
|
ИТОГО:
600
60----[X?]
никак не соображу !
Да и по моему в ячейку TOTAL ([X?]) нельзя вставить свою формулу ?