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

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

Проблема такая нужно раскрасить DBGrid по признаку присутсвия


Term ©   (2004-10-21 11:24:00) 

Проблема такая нужно раскрасить DBGrid по признаку присутсвия записей в зависимой таблице, но при переходе к той строке для которой есть записи в зависимой таблице перерисовываются и все остальные строки строки, как правильно делать проверку


Sandman25   (2004-10-21 15:29:00) [1]

[6] msguns ©   (21.10.04 12:18)

Согласен.


Term   (2004-10-21 13:22:00) [2]

спасибо получилось!!!!!!!!!!!!!!!!!!!


Term   (2004-10-21 12:53:00) [3]

спасибо щас буду делать


msguns   (2004-10-21 12:52:00) [4]

SELECT F.FID, F.ARCID, F.COUNTRY, COUNT(FN.FNID) FROM FONDS F
 LEFT JOIN FONDNAMES FN ON FN.FID=F.FID
 GROUP BY F.FID, F.ARCID, F.COUNTRY


FONDS - мастер, FONDNAMES - детал.
FID, FNID - UID таблиц.


Term   (2004-10-21 12:38:00) [5]

2 msguns ©  
чтото у меня не получается написать запрос, дай образец


msguns   (2004-10-21 12:18:00) [6]

>Sandman25 ©   (21.10.04 12:08) [5]
>Запросом. Или через master+detail.

Тогда это поле вроде бы не совсе "калькулируемое". С т.зр. датасета, конечно. А не запроса, возвращающего этот ДС


Sandman25   (2004-10-21 12:08:00) [7]

[4] msguns ©   (21.10.04 11:36)
.. Определить к-во записей в другой таблице ?

Каким образом ?


Запросом. Или через master+detail.


msguns   (2004-10-21 11:36:00) [8]

>Sandman25 ©   (21.10.04 11:29) [1]
>Вычисляемое поле поможет.

.. Определить к-во записей в другой таблице ?

Каким образом ?


msguns   (2004-10-21 11:35:00) [9]

В запрос к осн.таблице добавь подсчет строк в зависимой (через связку LEFT JOIN). Из грида это поле убери.
В обработчике грида OnDrawColumnCell анализируй значение поля кол-ва строк:

if TDBGrid(Sender).DataSource.DataSet.FieldByName  (<Поле к-ва строк>).AsInteger=0 then
   BkColor := clRed  
else
   BkColor := clGreen;

Canvas.Brush.Color:=BkColor;
DefaultDrawColumnCell(Rect,DataCol,Column,State);


Term   (2004-10-21 11:31:00) [10]

спасибо ща попробую


Sandman25   (2004-10-21 11:29:00) [11]

Вычисляемое поле поможет.


Наверх

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