Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBGrid со вставленными строками [D6, MSSQL]


lejik ©   (2003-03-21 08:05:00) 

Доброе время суток!
Помогите с проблемкой. На форме лежит DBGrid связанный с ADODataSet
упорядоченного следующим образом ORDER BY Field1, Field2, Field3. Можно ли
в Gride вставлять что-то типа заголовка для следующего значаения поля
Field2, Field 3.
Для примера:
Отдел сбыта
Иванов И.И.
Отдел снабжения
Петров П.П.


lejik   (2003-03-24 10:28:00) [1]

Кинь ссылочку, а то у меня Infopower3000


ShuraGrp   (2003-03-24 10:21:00) [2]

В Наборе Infopower 4000 сетка умеет делать такое без проблем. Там даже пример такой есть.


lejik   (2003-03-21 09:53:00) [3]

Спасибо всем!
Честно говоря форум на этом сайте во много раз круче чем в Королевстве!


Dmitry Filippov   (2003-03-21 09:43:00) [4]

Один совет переписывай метод Paint в Gride, он все рабно не верный, а также придется поправить навигацию и где-то еще, так что стоит-ли?


ЮЮ   (2003-03-21 09:39:00) [5]

А я структуру знаю ? :-)

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, ...


jocko   (2003-03-21 09:38:00) [6]

я бы посоветовал отказаться от DBGrida и вообще грида, раз требуется такое представление используй или TreeView или ListView, последний каж. наиболее подходит.


Sergey13   (2003-03-21 09:34:00) [7]

2lejik © (21.03.03 08:52)
Запросом тут ничего путного не сделаешь, ИМХО. Что хорошо для печати отчета не всегда подходит для отображения в гриде. Хотя я где то видел подобные навороты.
ИМХО это вообще порочный путь. Я бы посоветовал рядом с гридом приладить комбобокс какой-нить и в нем показывать "отдел" а в гриде сотрудников только этогоотдела. Это, было бы правильнее и с точеи зрения клиент-серверного подхода к программированию БД.


lejik   (2003-03-21 08:52:00) [8]

>>ЮЮ
А примерчик запроса можно


lejik   (2003-03-21 08:51:00) [9]

Мне нужны не колонки, а строки. Строку вставить надо.
А насчет других способов, я использую LoockUp поля, т.е. вот так сделать легко и непринужденно:
-------------------------------
| Отдел | Ф.И.О. |
-------------------------------
Отдел снабжения | Иванов И.И. |
Отдел снабжения | Петров П.П. |
Отдел кадров | Сидоров С.С.|
-------------------------------
А мне хотелось бы вот так:
-------------------------------
| Ф.И.О. |
-------------------------------
Отдел снабжения |
Иванов И.И. |
Петров П.П. |
Отдел кадров |
Сидоров С.С. |
-------------------------------


ЮЮ   (2003-03-21 08:45:00) [10]


Твой запрос
UNION
ВЫБРАТЬ строки, который будут заголовками к группам строк

и в DBGride увидишь, что хочешь.
Т.е. наоборот - всё что хочешь увидеть в Grid-е должно в соответствующем порядке находиться в отображаемом DataSete


sniknik   (2003-03-21 08:33:00) [11]

значит в гриде.

1
во время разработки двойной клик по гриду и определяй колонки и отображаемые названия колонок.
(если в таком варианте колонки в датасете будут неопределены в гриде то не будут показыватся)

2
после получения рекордсета когда в гриде сформируются колонки "пробежатся" по ним и установить титле у тех чьи имена полей равны Field2 ...

> Это сделать легко, и другими способами
какими другими? вроде все перечислил.


lejik   (2003-03-21 08:22:00) [12]

Но ведь тогда получится что это поле будет в одной строке с данными. Это сделать легко, и другими способами, а вот что то типа заголовка в таблице перед группой записей с одинаковым значением Field2. Ну тапа вставки в Grid строки со значениями не привязанными к DataSet.


sniknik   (2003-03-21 08:16:00) [13]

SELECT Field1, Field2 AS "Отдел сбыта", Field3 AS "Отдел снабжения
" .... ORDER BY Field1, Field2, Field3

также можно DisplayLabel у поля поправить (после получения датасета)
(определить руские названия можно в Deccriptoin поля, чтобы было связано с таблицей, можно в программе но исправлять хужее)

определить поля жестко с установленым DisplayLabel

ну и у грида Title исправить.

все приведет к желаемому результату, выбирай.


Наверх

Титульная страница Поиск, карта сайта Написать письмо