Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2009, 11:13   #1
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию как в связанной таблице разукрасить DBGrid

if (DBGrid3.DataSource.DataSet.FieldBy Name('qw').AsInteger=DBGrid3.DataSo urce.DataSet.FieldByName('n').AsInt eger) and (DBGrid3.DataSource.DataSet.FieldBy Name('God').AsInteger=DBGrid3.DataS ource.DataSet.FieldByName('g').AsIn teger) then begin
with DBGrid3.Canvas do
begin
Brush.Color:=clgreen;
Font.Color:=clWhite;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Colu mn.Field.Text);
end;
end
Else
if dBGrid3.DataSource.DataSet.FieldByN ame('dsuv').AsDateTime<>Null then begin
with DBGrid3.Canvas do
begin
Brush.Color:=clblue;
Font.Color:=clWhite;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Colu mn.Field.Text);
end;
end
Else
if DBGrid3.DataSource.DataSet.FieldByN ame('FIOPV').AsString=null then begin
with DBGrid3.Canvas do
begin
Brush.Color:=clyellow;
Font.Color:=clBlue;
FillRect(Rect);
TextOut(Rect.Left+2,Rect.Top+2,Colu mn.Field.Text);
end;
end;
end;

FIOPV-поле из связанной таблицы!
когда используешь родные поля, все получается, как из связанного поля так не получается. В чем ошибка?
ГОСЕАН вне форума Ответить с цитированием
Старый 22.07.2009, 13:16   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
FIOPV-поле из связанной таблицы
Ваши слова?
И тут же -
Код:
if DBGrid3.DataSource.DataSet.FieldByN ame('FIOPV').AsString=null then begin
Нет у этого датасорса такого поля! Разве это не очевидно?
mihali4 вне форума Ответить с цитированием
Старый 23.07.2009, 03:50   #3
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Ваши слова?
И тут же -
Код:
if DBGrid3.DataSource.DataSet.FieldByN ame('FIOPV').AsString=null then begin
Нет у этого датасорса такого поля! Разве это не очевидно?
в том то и дело что есть!!!
вот запрос
SELECT Dprv, FIOuv, drv, adrsuv, raion, kod11, diagn, muv, 1, 2,grr,qw,n,g,god,dsuv,r,DTalonV,F IOPV

FROM dbo.GNKV Dbo_gnkv
Where Dprv between 1 and 2
ГОСЕАН вне форума Ответить с цитированием
Старый 23.07.2009, 08:07   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ГОСЕАН
А прикрепи ка проект с БДшкой...
Тут нужно пошагам тестить чтоб сказать однозначно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.07.2009, 09:38   #5
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А прикрепи ка проект с БДшкой...
Тут нужно пошагам тестить чтоб сказать однозначно.
дело в том, что БД на SQL Server2000....., а этот запрос берется из представления GNKV:
SELECT TOP 100 PERCENT dbo.SUV.Dprv, dbo.SUV.drv, dbo.SUV.adrsuv, SpRaion_1.raion, dbo.SpDiagn.kod11, dbo.SpDiagn.diagn, dbo.SUV.muv,
dbo.SUV.dsuv, dbo.SUV.NpV, dbo.SUV.godrv, dbo.SpPol.NPol, dbo.SpDiagn.upr, dbo.SUV.DZV, dbo.SpAn.NAn, dbo.SUV.DiagnV, dbo.SUV.an,
YEAR(dbo.SUV.Dprv) AS God, { fn QUARTER(dbo.SUV.Dprv) } AS qw, YEAR({ fn NOW() }) - YEAR(dbo.SUV.Dprv) AS r, { fn QUARTER({ fn NOW() }) } AS n,
YEAR({ fn NOW() }) AS g, dbo.SUV.FIOuv, dbo.TalonV.FIOPV, dbo.TalonV.DRPV, YEAR({ fn NOW() }) - YEAR(dbo.TalonV.DTalonV) AS grr,
dbo.TalonV.adresv, SpRaion_1.raion AS Expr2, dbo.TalonV.DTalonV, YEAR(dbo.SUV.Dprv) - YEAR(dbo.TalonV.DTalonV) AS asd
FROM dbo.SpRaion SpRaion_1 RIGHT OUTER JOIN
dbo.SUV INNER JOIN
dbo.SpPol ON dbo.SUV.Poluv = dbo.SpPol.Id_pol INNER JOIN
dbo.SpDiagn ON dbo.SUV.DiagnV = dbo.SpDiagn.ID_Diagn ON SpRaion_1.ID_raion = dbo.SUV.Raionv LEFT OUTER JOIN
dbo.TalonV ON dbo.SUV.FIOuv = dbo.TalonV.FIOPV LEFT OUTER JOIN
dbo.SpAn ON dbo.SUV.an = dbo.SpAn.IdAn
WHERE (dbo.SUV.DiagnV = 14) AND (dbo.SUV.an IS NULL) OR
(dbo.SUV.DiagnV = 15) AND (dbo.SUV.an = 2) OR
(dbo.SUV.DiagnV = 16) OR
(dbo.SUV.DiagnV = 17) OR
(dbo.SUV.DiagnV = 18) OR
(dbo.SUV.DiagnV = 19) OR
(dbo.SUV.DiagnV = 20) OR
(dbo.SUV.DiagnV = 21) OR
(dbo.SUV.DiagnV = 35)
ORDER BY dbo.SUV.FIOuv
ГОСЕАН вне форума Ответить с цитированием
Старый 23.07.2009, 10:11   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ГОСЕАН
Мой тебе совет: Поставь брекпоинт на обработчик отрисовки и проверь что возвращает DBGrid3.DataSource.DataSet.FieldByN ame('FIOPV')
Может совсем не то что ты ожидаешь... В общем я бы именно так сделал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы во время поиска по таблице не было видно перемещения по dbgrid? alxsev БД в Delphi 4 10.04.2009 19:03
Помогите с задачкой связанной со строками DemonGod Помощь студентам 7 31.03.2009 14:25
Слияние шаблона с данными из таблице, и как подсичтать значение количества полей в таблице n4ela Microsoft Office Access 3 07.03.2009 12:04
Как создать таблицу в таблице?? Ntlegend Помощь студентам 1 14.05.2007 07:37