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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.09.2010, 18:33   #1
jaxik
Пользователь
 
Регистрация: 12.01.2008
Сообщений: 17
По умолчанию Поиск по БД

Есть БД, написанная в Database Desktkop. База автомобилей.

В программе (например, при нажатии на кнопку) выполняется
цикл по всем транспортным средствам в БД. Если у какого-то
т/с наступило время прохождения ТО (т.е. его текущий пробег
равен или превышает пробегу для прохождения ТО и ранее ТО не
проводилось), то данное т/с как-то помечается (цветом, или выводится
в отдельную таблицу).


Как это возможно сделать? И чем лучше всего воспользоваться?
jaxik вне форума
Старый 06.09.2010, 18:45   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Элементарно. Берете в цикле прямо и сравниваете с имеющимися значениями в БД и меняете текст в ячейке. Остальное подробнее скажет поиск по форуму.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 06.09.2010, 18:48   #3
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

а про SQL вы слышали?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума
Старый 06.09.2010, 23:46   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

jaxik,
1. юзай SQL-запросы
2. выводи результат в DBGrid
3. используя событие OnDrawDataCell красим "сетку" нужными цветами
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума
Старый 07.09.2010, 13:18   #5
jaxik
Пользователь
 
Регистрация: 12.01.2008
Сообщений: 17
По умолчанию

Я решил сделать не в sql. Получилось что я сделал для ТО-1, всё прекрасно выделяет и работает. Но а как можно сделать для ТО-2, ТО-3?

Где 1500 это километраж до 1-ого ТО.

Код:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if dm.table1.fieldbyname('ТО-1').AsVariant=false then
WITH DBGrid1.Canvas DO
  BEGIN
     IF gdSelected IN State THEN
    BEGIN
     Font.Color:=clHighlightText;
     Brush.Color:=clHighlight
    END
   ELSE
       BEGIN
     Font.Color:=clBlack;
       if  dm.table1.FieldByName('Пробег (км)').AsInteger>1500
      THEN
      Brush.Color:=clLime
    else
     Brush.Color:=DBGrid1.Color;
    END;
   WITH Rect.TopLeft DO
    TextRect(Rect, X+2, Y+2, Column.Field.AsString);
  END

end;

Я бы мог конечно откопировать этот алгоритм три раза, но это как то неправильно будет.

Последний раз редактировалось Stilet; 07.09.2010 в 14:10.
jaxik вне форума
Старый 07.09.2010, 17:41   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

сделай обертку в которую передавай № то и километраж
что то вроде
Код:
procedure Tform1.myproc( TEO:string;km:integer);
begin
if dm.table1.fieldbyname(TEO).AsVariant=false then
WITH DBGrid1.Canvas DO
  BEGIN
     IF gdSelected IN State THEN
    BEGIN
     Font.Color:=clHighlightText;
     Brush.Color:=clHighlight
    END
   ELSE
       BEGIN
     Font.Color:=clBlack;
       if  dm.table1.FieldByName('Пробег (км)').AsInteger>km
      THEN
      Brush.Color:=clLime
    else
     Brush.Color:=DBGrid1.Color;
    END;
   WITH Rect.TopLeft DO
    TextRect(Rect, X+2, Y+2, Column.Field.AsString);
  END;
end;
ну а в этой процедуре вызови с необходимыми параметрами

Код:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
myproc('TO-1',1500);
{......}
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума
Старый 07.09.2010, 21:35   #7
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Цитата:
Сообщение от RuVarez Посмотреть сообщение
Все равно SQL лучше!
А какое, извините, отношение имеет SQL к "выделить цветом" в таблице DBGrid?
_Engine_ вне форума
Старый 08.09.2010, 00:23   #8
jaxik
Пользователь
 
Регистрация: 12.01.2008
Сообщений: 17
По умолчанию

Спасибо большое всё работает...)
Но при переносе на другой комп база не находится (((
Помогите создать альас, а то в интернете по поиску варианты мне не подходят.
Мне надо как то тупо, указать коренную папку программы, с папкой Data, в которой лежит сама база.
jaxik вне форума
Старый 08.09.2010, 03:41   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от jaxik Посмотреть сообщение
Спасибо большое всё работает...)
Но при переносе на другой комп база не находится (((
Помогите создать альас, а то в интернете по поиску варианты мне не подходят.
Мне надо как то тупо, указать коренную папку программы, с папкой Data, в которой лежит сама база.
Вопрос об алиасах многократно обсуждался на форуме. В поиск. Закрыто. На будущее: одна тема - один вопрос.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск spree Microsoft Office Excel 22 16.11.2009 15:08
поиск - ? Evgenii БД в Delphi 11 22.07.2009 19:41
Поиск StartMis Общие вопросы Delphi 5 26.08.2008 13:48
Поиск Witaliy Общие вопросы Delphi 1 01.05.2008 18:42
Поиск по БД. Шурик БД в Delphi 1 18.09.2007 02:04