Конференция "Базы" » Подсветка ячейки грида по значению соседней [D7, ADS]
 
  • kyn66 © (28.08.09 16:40) [0]
    Каким образом выделить ячейку грида в зависимости от значения соседней ячейки, т.е. значения другого поля в этой записи? Пытаюсь проверять на событии DBGridEh1DrawColumnCell и что-то запутался...

        if (Column.FieldName = 'Tel1') and (MobiDataQueryPrizTel1.Value = true) then
          begin
            Canvas.Font.Color:= clRed;
            Canvas.Font.Style:= [fsBold];
          end
         else
          begin
            Canvas.Font.Color:= clBlack;
            Canvas.Font.Style:= [fsBold];
          end;

  • Медвежонок Пятачок © (28.08.09 17:39) [1]
    по моему надо второе условие ифа поместить внутрь ветки зен как вложенное.
  • kyn66 © (31.08.09 09:59) [2]
    Все, решение найдено. У меня просто переклинило на проверку по имени столбцов, а нужно было именно поля таблицы включать. Все работает.
  • Ega23 © (31.08.09 15:21) [3]

    > а нужно было именно поля таблицы включать.


    Кстати, совет.
    Некоторые гриды (DBGridEh, например) ищут полное совпадение по имени поля.
    Т.е. более правильно не
    (Column.FieldName = 'Tel1')


    а
    (AnsiUpperCase(Column.FieldName) = 'TEL1')

  • PEAKTOP © (31.08.09 16:33) [4]

    > Кстати, совет.
    > Некоторые гриды (DBGridEh, например) ищут полное совпадение
    > по имени поля.


    А почему нельзя просто:

    if(Column.Field.DataSet.FieldByName('MyField').As<...> = <...>)then



    Тогда проблемы имени поля становятся проблемами класса TDataSet.

    <OFFTOP>Хотя тоже не вариант, ибо в SQL в 3-ем диалекте предусмотрены РиГиСтРоЗаВиСиМыЕ имена полей....</OFFTOP>
  • Ega23 © (31.08.09 16:37) [5]

    > А почему нельзя просто:
    >
    > if(Column.Field.DataSet.FieldByName('MyField').As<...> =
    > <...>)then


    А потому, что у тебя конкретный Cell в гриде отрисовывается. Если ты весь Row красишь - тогда да.
 
Конференция "Базы" » Подсветка ячейки грида по значению соседней [D7, ADS]
Есть новые Нет новых   [134473   +28][b:0][p:0.001]