powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Как в КроссТабе обработать заголовки столбцов ...
9 сообщений из 9, страница 1 из 1
Как в КроссТабе обработать заголовки столбцов ...
    #33218237
ZSergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
В общем задача такая: пользователь формирует КроссТаб-отчет, в которой два параметра: начальная и конечная дата. Например: с 05.05.2005 по 10.08.2005
Данные группируюся в sql-представлении по месяцам так
select to_char(t.work_date,'MM/yyyy') as Date1
from sklad t
и т.д.

Вопрос: реально ли в кристале обработать первый и последний столбцы
т.е. чтоб заголовки столбцов в готовом отчете были такими:

05.05.05 | 06.05 | 07.05 | 10.08.2005 |
--------- |-------|------|------------ |
............ |......... |........ |.................|

Если возмодно, то как? Заранее спасибо!
...
Рейтинг: 0 / 0
Как в КроссТабе обработать заголовки столбцов ...
    #33219437
ZSergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели ни у кого никаких идей? :((
...
Рейтинг: 0 / 0
Как в КроссТабе обработать заголовки столбцов ...
    #33219536
gaper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если речь о заголовках, то можно сделать всё, что душе угодно. В диалоге "Format CrossTab" есть кнопка "Group options".
Хотя можно предложить другой рецепт. Создать формулу, формирующую загловок, и сгруппировать сначала по ключевому полю (например по дате), а потом по заголовку. Надписи ключевого поля скрыть (Suppress label).
...
Рейтинг: 0 / 0
Как в КроссТабе обработать заголовки столбцов ...
    #33219690
ZSergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to gaper
изначально подразумевалось создать требуемый заголовок с помощью формул
есть ли в синтаксисе Crystal ф-ции для работы со столбцами, тогда можно было бы решить эту проблему так
//для заголовка первого столбца

if FirstCol then
Left ({?month}, 3)+{VJ_PRODUCER_RASHOD_SERGEY.DATE1}
else
{VJ_PRODUCER_RASHOD_SERGEY.DATE1}

//для последнего столбца КроссТаб таблицы:
if LastCol then
Left ({?month}, 3)+{VJ_PRODUCER_RASHOD_SERGEY.DATE1}
else
{VJ_PRODUCER_RASHOD_SERGEY.DATE1}

Создать формулу, формирующую загловок, и сгруппировать сначала по ключевому полю (например по дате), а потом по заголовку
Я новичок в этом деле и если честно, мало что понял из Вашего совета. Пожалуйста, можно чуть по подробней или приведите пример такой формулы :)
...
Рейтинг: 0 / 0
Как в КроссТабе обработать заголовки столбцов ...
    #33219920
gaper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
работать со столбцами кросстаба нельзя. Кросстаб -- это вещь в себе. Но, основываясь на текущем значении поля (формулы), по которому выполняется группировка, можно сформировать заголовок.
Если значения (в данном случае даты), соответствующие первому и последнему столбцу известны заранее, то нет проблем. Если это не так, то вижу единственный путь: при подготовке данных пометить эти заничения (первый, последний).

Формула будет выглядеть так:
Код: plaintext
1.
2.
3.
4.
select {TABLE.DATA}
case {?date1}: "Первый столбец"
case {?date2}: "Последний столбец"
default: {TABLE.DATA}
, группировать надо по полю {TABLE.DATA}, а в качестве заголовка использовать эту формулу.

Второй вариант -- незначительное видоизменение первого.
...
Рейтинг: 0 / 0
Как в КроссТабе обработать заголовки столбцов ...
    #33219929
gaper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наверное, можно даже так
Код: plaintext
1.
2.
3.
4.
select {TABLE.DATA}
case min({TABLE.DATA}): "Первый столбец"
case max({TABLE.DATA}): "Последний столбец"
default: {TABLE.DATA}
...
Рейтинг: 0 / 0
Как в КроссТабе обработать заголовки столбцов ...
    #33220891
ZSergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to gaper
Большое спасибо за подсказку, прадва после некоторых мучений у меня получилась такая рабочая формула:

select {TABLE.date}
case totext({?date})[4 to 10] : Left (totext({?date}), 2)+'.'+{TABLE.date}
case totext({?date1})[4 to 10]: Left (totext({?date1}), 2)+'.'+{TABLE.date}default: {TABLE.date}

Все работает замечательно :) Однако теперь проблема в сортировке столбцов,
как видно из картинки, Crystal выводит столбцы в порядке возрастания
Всем нутром своим чую, что решение этой проблемы в "Format Cross Tab" - "Cross Tab Group Options"(поля Date) - в CompoBox'e выбираю "Specified order" Но неполучается правильно выбрать параметры/условия сотрировки, Crystal выводит столбец "orders"
Подскажите пожалуйста, кто знает, осталось чуть-чуть, охото все нормально зделать :))
...
Рейтинг: 0 / 0
Как в КроссТабе обработать заголовки столбцов ...
    #33220911
ZSergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, вот сама картина фрагмента отчета :)
Например, отчет сформирован за период с 17.05.2005 по 17.08.2005
что у меня сейчас получается:

| 06.2005 | 07.2005 | 17.05.2005 | 17.08.2005

Подскажите как поменять сортировку, PLZ, чтоб было так

| 17.05.2005 | 06.2005 | 07.2005 | 17.08.2005
...
Рейтинг: 0 / 0
Как в КроссТабе обработать заголовки столбцов ...
    #33220963
gaper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вид формулы не важен, лишь бы она выдавала нужный результат (действительно ужасно)

по поводу группировки:
не совсем так. Группировать (использовать как столбец) нужно именно поле таблицы. При этом можно указать с какой точностью выполнять группировку (день, неделя, и т. д.) А затем (см. прежний пост) в [Group options] настроить выводимый заголовок.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Как в КроссТабе обработать заголовки столбцов ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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