Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Матричное отображение данных

62K
16 сентября 2011 года
Alextrim
14 / / 25.12.2010
Добрый день.
Допустим в БД есть 2 таблицы: 1- Даты (список дат от 1990 года до 2100 через 1 день), 2-Оборудование (наименование, дата, вид ремонта)
Нужно получить грид с таким содержимым:
По столбцам даты из таб №1, по стокам наименование из таб №2. И выводятся значение видов ремонтов из таб №2 на пересечении строк с определенной датой из Таб 1 и датой из Таб №2. Причем надо чтобы еще редактировать можно было, допустим вносим значение вида ремонта и создавалась запись в таб №2 если записи не было с такой датой из Таб №1, если была, то меняем вид ремонта. Выглядеть должно примерно так:
01.01.2011 02.01.2011 03.01.2011 ... - таб 1
обор1 рем1 рем2
обор2 рем2
обор3 рем3
...
таб2
В центре грида значения из таб 2 на пересечении дат

Есть ли способ или какие-либо компоненты для реализации данной задачи?
277
16 сентября 2011 года
arrjj
1.7K / / 26.01.2011
Сделать view ?
62K
16 сентября 2011 года
Alextrim
14 / / 25.12.2010
Цитата: arrjj
Сделать view ?


Вопрос стоит в том как отобразить это все на форме. Мне необходимо чтобы заголовки столбцов брались из таб1, заголовки строк из таб 2, а значения на пересечении таб 1 и таб 2 по дате, т.е это как бы виртуальные поля... При чем при их изменении вносились строки или изменялись бы значения в поле вид ремонта в таб 2. Все конечно можно сделать в String Grid:
Т.е перебираем таб 1 – заносим столбцы, перебираем таб 2 – заносим строки, перебираем таб 2 по фильтру на дату – заносим вид ремонта. Просто все не красиво, и на перебор очень много времени уходит....

Во многих прогах видел данную реализацию (1С, MS Navision). Например в Navision это делается при помощи MatrixBox. Вопрос в том можно ли такое забатцать под Builder и какие компоненты использовать, если они в природе существуют.

10
16 сентября 2011 года
Freeman
3.2K / / 06.03.2004
Скорее всего, задачу придётся решать формированием нужного SQL на лету и выводом в обычный DBGrid или что используется вместо него. В некоторых развитых СУБД (MSSQL, Oracle) есть SQL-оператор pivot, упрощающий запрос. В остальных придётся писать на SQL транспонирование матрицы по-старинке. Задачка известная, чаще всего описывается словами "превратить строки в столбцы".
14
16 сентября 2011 года
Phodopus
3.3K / / 19.06.2008
Список дат от 1990 до 2100 через день в виде заголовков столбцов в DBAware-компонентах (равно как наличие таковой таблице в базе) это сразу расстрел на месте.
Только виртуальными данными. И компонентами умеющими с такими данными работать.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог