Форум: "Базы";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];
ВнизDBGrid со вставленными строками Найти похожие ветки
← →
lejik (2003-03-21 08:05) [0]Доброе время суток!
Помогите с проблемкой. На форме лежит DBGrid связанный с ADODataSet
упорядоченного следующим образом ORDER BY Field1, Field2, Field3. Можно ли
в Gride вставлять что-то типа заголовка для следующего значаения поля
Field2, Field 3.
Для примера:
Отдел сбыта
Иванов И.И.
Отдел снабжения
Петров П.П.
← →
sniknik (2003-03-21 08:16) [1]SELECT Field1, Field2 AS "Отдел сбыта", Field3 AS "Отдел снабжения
" .... ORDER BY Field1, Field2, Field3
также можно DisplayLabel у поля поправить (после получения датасета)
(определить руские названия можно в Deccriptoin поля, чтобы было связано с таблицей, можно в программе но исправлять хужее)
определить поля жестко с установленым DisplayLabel
ну и у грида Title исправить.
все приведет к желаемому результату, выбирай.
← →
lejik (2003-03-21 08:22) [2]Но ведь тогда получится что это поле будет в одной строке с данными. Это сделать легко, и другими способами, а вот что то типа заголовка в таблице перед группой записей с одинаковым значением Field2. Ну тапа вставки в Grid строки со значениями не привязанными к DataSet.
← →
sniknik (2003-03-21 08:33) [3]значит в гриде.
1
во время разработки двойной клик по гриду и определяй колонки и отображаемые названия колонок.
(если в таком варианте колонки в датасете будут неопределены в гриде то не будут показыватся)
2
после получения рекордсета когда в гриде сформируются колонки "пробежатся" по ним и установить титле у тех чьи имена полей равны Field2 ...
> Это сделать легко, и другими способами
какими другими? вроде все перечислил.
← →
ЮЮ (2003-03-21 08:45) [4]
Твой запрос
UNION
ВЫБРАТЬ строки, который будут заголовками к группам строк
и в DBGride увидишь, что хочешь.
Т.е. наоборот - всё что хочешь увидеть в Grid-е должно в соответствующем порядке находиться в отображаемом DataSete
← →
lejik (2003-03-21 08:51) [5]Мне нужны не колонки, а строки. Строку вставить надо.
А насчет других способов, я использую LoockUp поля, т.е. вот так сделать легко и непринужденно:
-------------------------------
| Отдел | Ф.И.О. |
-------------------------------
Отдел снабжения | Иванов И.И. |
Отдел снабжения | Петров П.П. |
Отдел кадров | Сидоров С.С.|
-------------------------------
А мне хотелось бы вот так:
-------------------------------
| Ф.И.О. |
-------------------------------
Отдел снабжения |
Иванов И.И. |
Петров П.П. |
Отдел кадров |
Сидоров С.С. |
-------------------------------
← →
lejik (2003-03-21 08:52) [6]>>ЮЮ
А примерчик запроса можно
← →
Sergey13 (2003-03-21 09:34) [7]2lejik © (21.03.03 08:52)
Запросом тут ничего путного не сделаешь, ИМХО. Что хорошо для печати отчета не всегда подходит для отображения в гриде. Хотя я где то видел подобные навороты.
ИМХО это вообще порочный путь. Я бы посоветовал рядом с гридом приладить комбобокс какой-нить и в нем показывать "отдел" а в гриде сотрудников только этого отдела. Это, было бы правильнее и с точеи зрения клиент-серверного подхода к программированию БД.
← →
jocko (2003-03-21 09:38) [8]я бы посоветовал отказаться от DBGrida и вообще грида, раз требуется такое представление используй или TreeView или ListView, последний каж. наиболее подходит.
← →
ЮЮ (2003-03-21 09:39) [9]А я структуру знаю ? :-)
SELECT 2 ord, FIO, DEPT, OTHER FROM TABLE
UNION ALL
SELECT DISTINCT 1 ord, DEPTNAME, DEPT, 0 FROM TABLE
ORDER BY DEPT, ord, FIO
получим
1, Отдел1, 1, ...
2, Ианов, 1, ...
2, петров, 1, ...
1, Отдел2, 2,...
2, Сидоров, 2, ...
← →
Dmitry Filippov (2003-03-21 09:43) [10]Один совет переписывай метод Paint в Gride, он все рабно не верный, а также придется поправить навигацию и где-то еще, так что стоит-ли?
← →
lejik (2003-03-21 09:53) [11]Спасибо всем!
Честно говоря форум на этом сайте во много раз круче чем в Королевстве!
← →
ShuraGrp (2003-03-24 10:21) [12]В Наборе Infopower 4000 сетка умеет делать такое без проблем. Там даже пример такой есть.
← →
lejik (2003-03-24 10:28) [13]Кинь ссылочку, а то у меня Infopower3000
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c