Форум: "Начинающим";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
Вниз
Заполнение Grida Найти похожие ветки
← →
paurlin (2005-08-20 13:01) [0]Здравствуйте.
Есть вот какой вопрос. Необходимо заполнить DBGrid из таблицы данных. Верхний ряд - дисциплины, строки левого ряда - ФИО студентов. Пересечение в матрице студента с дисциплиной - оценка. Короче сводная ведомость по успеваемости, как табличка в Exel. Исходная таблица базы данных содержит 3 столбца. в каждой строке студент, дисциплина, оценка. Надо дисциплины загрузить в шапку Грида, а оценки как в матрице. Не знаю, удалось ли выссказать правильно идею. Куб строить для меня слишком сложно пока, посоветовали воспользоваться EhLib компонентом DBGridEh. Но по описанию не понятно как использовать данных компонент для моих целей. Может кто-нибудь подскажет хотя бы от чего отталкиваться. Принцип решения моей задачи. Спасибо большое.
← →
Defunct © (2005-08-20 20:59) [1]paurlin (20.08.05 13:01)
Воспользоваться StringGrid"ом и отрисовать все вручную.
Имя 3 массива имен, дисциплин и оценок, думаю это не составит труда.
← →
Defunct © (2005-08-20 20:59) [2]> Имя 3 массива имен, дисциплин и оценок
Имея..
← →
paurlin (2005-08-21 10:46) [3]Спасибо. А не могли бы вы чуть подробнее описать решение. Буду очень признателен.
← →
paurlin (2005-08-21 10:54) [4]Речь идет не просто о выводе отчета для просмотра, с такой формой необходимо работать. Нужна привязка к DataSet насколько я понимаю.
← →
Виталий Панасенко (2005-08-22 10:27) [5]Это нужно именно в сетку или все-таки в отчет ? Если в отчет, то это кросс-таб отчет.. Смотри в сторону ФастРепорт/pReport
← →
paurlin (2005-08-22 11:28) [6]Нет, это как раз не отчет. Это форма с которой можно будет работать для заполнения базы данных. В том-то и суть. Надо будет вводить оценки, чтобы они сохранялись в базе. И именно в такой форме, которая была описана ранее. В этом-то и проблема. Я решил воспользоваться DBGridEh только не очень понятка как это сделать. Этот компонент должен по сути дела делать куб, а ка его на это направить не знаю. Всем спасибо за внимание.
← →
Desdechado © (2005-08-22 13:36) [7]сводная ведомость и рабочая ведомость - не одно и то же
интерфейс можно и поменять
← →
paurlin (2005-08-22 22:32) [8]Так я и не понял, как мне подступиться к решению задачи. Все равно спасибо.
← →
Турист (2005-08-22 23:21) [9]Defunct © (20.08.05 20:59) [1]
← →
KilkennyCat © (2005-08-22 23:45) [10]Могу посоветовать TADVStringgrid, http://www.tmssoftware.com
В чем преимущества: можно сохранить таблицу как есть, экспортировать в Ексель и т.д., т.е. не ломаем голову. Честно говоря, если такая простая таблица сложна в реализации, то проще уж так...
← →
Турист (2005-08-22 23:55) [11]Ненормальная таблица - ненормальные решения :-)
← →
alex_*** (2005-08-23 10:16) [12]ручками надо куб делать. Делать набор для столбцов, потом по ним сформировать набор по строкам. ОБыкновенная сводная отчетность
← →
paurlin (2005-08-23 11:29) [13]Хорошо, вручную так вручную. Может тогда кто-нибудь ссылки в и-нет дать, как это сделать.
← →
KilkennyCat © (2005-08-23 11:49) [14]
> [13] paurlin (23.08.05 11:29)
я ж уже дал...
← →
paurlin (2005-08-24 10:18) [15]Никто не знает других ссылок по данной теме? Чтоб без Екселя. Буду очень признателен.
← →
magic (2005-08-24 10:55) [16]Есть в Access-e такая фича, как перекрестные запросы. Сделай это под аксессом и посмотри SQL, который он сгенерирует. Потом сможешь этот запрос в свою прогу воткнуть
← →
alex_*** (2005-08-24 12:21) [17]все равно придется понять как он работает и адаптировать под себя. С таким же успехом можно самому писать
← →
paurlin (2005-08-25 18:33) [18]Попробовал фичу с Аксессом. Адаптированный запрос выглядит так.
TRANSFORM Max(rezult)
Select ID_st from result
GROUP BY ID_st
PIVOT IDdisc
Пишет Capability not supported.
В чем может быть ошибка. Может она не связана с кодом? Спасибо.
← →
paurlin (2005-08-26 13:40) [19]...
← →
paurlin (2005-08-26 20:41) [20]В итоге строю кубик вручную методом тыка. Запрос написал для DecisionQuery вот такой:
"SELECT Дисциплины, Count(Оценки) , Фамилия
FROM result
GROUP BY Оценки, Фамилия, Дисциплины"
Могу воспользоваться только функцией Count почему-то. Мне надо просто значения из столбца считать, а не преобразовывать их. Хотел воспользоваться функцией MAX, но пишет что выражение не соответствует String.
Подскажите, если можете, что можно сделать.
← →
Турист (2005-08-26 23:14) [21]F4 - дисциплина
F2 - фамилия
F5 - оценка
SELECT F4, F2, MIN( F5 ) FROM TABLE4 GROUP BY F4, F2
DecisionQuery1, DecisionCube1, DecisionSource1, DecisionGrid1
← →
Турист (2005-08-26 23:27) [22]Если F5 символьное, то MIN( CAST (F5 AS INT) )
← →
paurlin (2005-08-27 15:16) [23]Здорово. Спасибо большое. А можно ли будет редактировать данные прямо в DecisionGrid или он для этого не предназначен? Если нельзя, то какой может быть выход? И ещё один вопросик. Если мне необходимо чтобы в Dec-nGrid были не только поля, в которых проставлены оценки, а все поля, что нужно для этого сделать? Ещё раз спасибо за помощь.
← →
Турист (2005-08-28 19:38) [24]>paurlin (27.08.05 15:16) [23]
>А можно ли будет редактировать данные прямо в DecisionGrid или он для этого не предназначен?
Наверно, не предназначен.
Можно добавить отдельное диалоговое окно редактирования выбранной ячейки в котором выводить дисциплину, фамилию
оценку, через тоже окно добавлять новую "тройку".
← →
paurlin (2005-08-29 11:44) [25]Не здорово это.
Задача была в том, чтобы создать форму на которой как в экселе можно будет перемещаться по ячейкам и редактировать "оценки".
Все равно спасибо. Попробую придумать другой способ.
← →
Турист (2005-08-29 13:09) [26]Поищи в интернете компонент TDhGridEx. Он подходит для твоей задачи.
← →
Антоныч © (2005-08-29 13:09) [27]Как вариант реализации:
Работа с обычным StringGrid, но придется делать подготовительные действия:
1) количество столбцов и строк в StringGrid будет определяться исходя из запроса SELECT DISTINCT Student FROM Ocenki и SELECT DISTINCT Predmeti FROM Ocenki
2) прогоняется БД от начала в конец и оценка для студента по соотв. предмету записывается в соответствующую ячейку StringGrid
Все эти действия происходят, например, в OnShow.
Далее работается как с обычным StringGrid-ом, а затем по нажатии кнопки "Обновить данные", или на событии смены ячейки StringGrid происходит обновление базы. Немного геморрно, через одно место, но должно работать :)
← →
paurlin (2005-08-31 12:36) [28]Спасибо. Про "подготовительные действия" мысль была.
Хотел бы попробовать использовать DBGridEh или вот тут в [26] подсказали DBGridEx (такого зверя еще не видел).
А можно кратко описать последовательность действий с указанным компонентом для решения моей задачи. Принцип действия.Чтобы знать как к нему подойти.
← →
paurlin (2005-09-01 11:21) [29]...
← →
Sergey13 © (2005-09-01 11:25) [30]2 [29] paurlin (01.09.05 11:21)
В ЕхЛибе есть виртуальная таблица вроде (или есть похожая в Rx или CDS наконец). Возьми ее. В рантайме из своих выборок сформируй структуру и заполни данными. Отображай в гриде как обычно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.015 c