Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TcxDBPivotGrid без суммирования / 21 сообщений из 21, страница 1 из 1
03.01.2018, 14:46
    #39578969
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
В базе (Firebird 3) везется логирование того, что изменил пользователь.
В процедуре генерируется динамический SQL и в таблицу записываются все изменения.
Особенность такая, что количество строк может быть разное. Например, пользователь может добавить некоторые поля в исключения, чтобы те данные не записывались.

Примерно так:
Код: plaintext
| ID | Название поля | значение поля | ID записи | Дата/время |

Теперь из этого нужно сделать сводную таблицу (pivot), чтобы записи стали колонками, а заголовки были датами,
вот так оно должно выглядеть:


Проблема в том, что данные cxDBPivotGrid не показывает.

Данные - это текстовое поле.
Может нужно что-то отключить/подключить, какие-то свойства покрутить?

Я соединил между собой frxReport + frxCrossObject + frxDBDataset и подключил к тому же НД, но у frxReport есть возможность отключить суммирование:


и данные отобразились.
Но в FR всё это просматривать очень неудобно.

Думал, что можно как-то с группировкой это всё вывести в cxGrid, но там не смог сделать, чтобы было наглядно и удобно.
...
Рейтинг: 0 / 0
03.01.2018, 21:12
    #39579113
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
Три раза прочитал, не понял....
...
Рейтинг: 0 / 0
04.01.2018, 09:30
    #39579203
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
Ну вот примерно так это должно выглядеть (это так в FR).
Т.е. группа записей (группа строк), которые относятся к одному и тому же моменту времени и к одному и тому же ID объекта, выстраиваются в одну колонку. Следующая группа записей, которые относятся к одному и тому же моменту времени и к одному и тому же ID объекта, выстраиваются в соседнюю колонку. Сколько изменений одного и того же объекта, столько и колонок.



тут вопрос в другом: почему cxDBPivotGrid не хочет показывать :(

А у Delphi есть из коробки другие Pivot компоненты?
...
Рейтинг: 0 / 0
04.01.2018, 09:53
    #39579210
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
в таблицу записываются данные о том, какое поле изменилось и когда



Ноги растут из этой темы 5909303 и они очень длинные.
Процедура на сервере генерирует SQL INSERT примерно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  FOR SELECT TRIM(F.RDB$FIELD_NAME), TRIM(F.RDB$DESCRIPTION) FROM RDB$RELATION_FIELDS F
    LEFT JOIN JOURNAL_DET_FIELDS_SKIP S ON S.NAME = F.RDB$FIELD_NAME
    WHERE S.NAME IS NULL AND UPPER(F.RDB$RELATION_NAME) = UPPER(:TABLENAME) AND F.RDB$FIELD_NAME IS NOT NULL INTO :FNAME, :FDESCR

  DO
  BEGIN
    --получаем значение поля
    SQL = 'SELECT ' || :FNAME || ' FROM ' || :TABLENAME || ' WHERE ID = ' || :ID_OBJ;
    EXECUTE STATEMENT SQL INTO :VAL;
    --записываем значение в детальный аудит
    INSERT INTO JOURNAL_DET (ID_JOURNAL, FNAME, FDESCR, FVAL, ID_OBJ) VALUES(:ID_JOURNAL, :FNAME, :FDESCR, :VAL, :ID_OBJ);
  END
...
Рейтинг: 0 / 0
04.01.2018, 10:34
    #39579222
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
насколько я помню, PivotGrid не отображает текстовые поля
только числовые
...
Рейтинг: 0 / 0
04.01.2018, 10:35
    #39579223
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
потому что то, что отображается в ячейках, должно быть агрегатом
...
Рейтинг: 0 / 0
04.01.2018, 10:39
    #39579224
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
может быть, посмотреть в сторону VerticalGrid ?
...
Рейтинг: 0 / 0
04.01.2018, 10:40
    #39579225
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
Плохо.
Тем не менее, FR отображает :)
Видать, придётся что-то самому писать, чтобы наполнять обычную сетку.
...
Рейтинг: 0 / 0
04.01.2018, 10:41
    #39579226
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
defecator, конечно же, я смотрел в сторону cxVerticalGrid, тоже не то.
...
Рейтинг: 0 / 0
04.01.2018, 10:44
    #39579228
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
Как вариант, можно это всё обычным способом отображать в cxGrid с группировкой

...
Рейтинг: 0 / 0
04.01.2018, 10:45
    #39579230
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
а если написать хранимку, которая развернёт запрос по горизонтали и вернёт курсор ?
Такое можно отобразить даже в DBGrid
...
Рейтинг: 0 / 0
04.01.2018, 11:06
    #39579241
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
Да, я уже думал и читал об этом. Количество выходных параметров (столбцов) заранее неизвестно.
Т.е. какой-то объект 1 раз отредактировали = 1 дата = 1 столбец. а какой-то объект 5 раз отредактировали = 5 столбцов.
...
Рейтинг: 0 / 0
04.01.2018, 11:22
    #39579248
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
X11Да, я уже думал и читал об этом. Количество выходных параметров (столбцов) заранее неизвестно.
Т.е. какой-то объект 1 раз отредактировали = 1 дата = 1 столбец. а какой-то объект 5 раз отредактировали = 5 столбцов.
так в том и суть транспонирования.

У тебя процедура получает на вход базовый запрос,
а на выходе оборачивает этот запрос в запросы, которые данные переворачивают,
и возвращает текст запроса.
И вот его ты просто выполняешь в любой квери.
То есть процедура транспонирования универсальная.

Я бы тебе подсказал, но у тебя FB, а я с ним не работаю.
Вот для Oracle очень известная процедура транспонирования:
http://www.sql.ru/faq/faq_topic.aspx?fid=281
...
Рейтинг: 0 / 0
04.01.2018, 11:46
    #39579260
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
defecatorи возвращает текст запроса.

аааа
...
Рейтинг: 0 / 0
04.01.2018, 11:47
    #39579261
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
defecatorВот для Oracle очень известная процедура транспонирования:

это я видел
...
Рейтинг: 0 / 0
04.01.2018, 11:48
    #39579262
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
X11defecatorи возвращает текст запроса.

аааа
ну а ты как хотел ? если агрегатов нет, то транспонирование становится страшной вещью ))))
...
Рейтинг: 0 / 0
04.01.2018, 11:50
    #39579263
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
Ну FR же отображает :)
...
Рейтинг: 0 / 0
04.01.2018, 11:53
    #39579265
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
X11Ну FR же отображает :)
Ты имеешь ввиду FastReport ?
Так это отчётник, он уже внутри себя там всё перестроил, как надо.

А Pivot'ы всякие работают с агрегатами
...
Рейтинг: 0 / 0
04.01.2018, 11:54
    #39579266
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
Попробуй FastCube от того же FastReport - с вероятностью 95% он тоже ничего тебе не покажет
...
Рейтинг: 0 / 0
04.01.2018, 11:56
    #39579268
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
У меня куплена 4я версия, а в 4ой версии я его не наблюдаю. Это отдельный продукт?
...
Рейтинг: 0 / 0
04.01.2018, 14:23
    #39579359
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TcxDBPivotGrid без суммирования
X11У меня куплена 4я версия, а в 4ой версии я его не наблюдаю. Это отдельный продукт?
конечно отдельный
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TcxDBPivotGrid без суммирования / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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