![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема такая нужно раскрасить 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]Вычисляемое поле поможет.