Topic: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

Записал скрипт так:

procedure frmMain_TableGrid1_OnChange (Sender: string);
begin
   if VarToStr( SQLExecute('SELECT implementation FROM main') ) = '1' then
     begin
         SQLExecute('INSERT INTO main (implementation) VALUES ("На контроле");');
     end;
   if VarToStr( SQLExecute('SELECT implementation FROM main') ) = '0' then
     begin
         SQLExecute('INSERT INTO main (implementation) VALUES ("");');
     end;
end;

Не ругается. При открытии формы добавляет новую пустую строку со значением "Нет". Больше ничего. Что не так?

Не боги горшки лепят!

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

Данный скрипт не обращается к компоненту, а обращается непосредственно в базу данных, в вашем случае лучше создать вычисляемое поле:

(CASE WHEN implementation=1 then 'На контроле' else '' end)
Dmitry.

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

Спасибо! Сделал так. Работает.
Есть ещё проблемка не по теме: при добавлении или изменении записи выскакивает сообщение об отсутствии колонки main.id_main. Что бы это значило?

Post's attachments

Attachment icon 2015-03-15_222244.jpg 17.45 kb, 390 downloads since 2015-03-15 

Не боги горшки лепят!

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

Скорей всегда неверная настройка кнопки Поиск, а именно в первом списке присутствует компонент TableGrid, который же используется для вывода результатов поиска, просто уберите его из первого списка.

Dmitry.

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

DriveSoft wrote:

Скорей всегда неверная настройка кнопки Поиск, а именно в первом списке присутствует компонент TableGrid, который же используется для вывода результатов поиска, просто уберите его из первого списка.

Вы правы. Спасибо.

Не боги горшки лепят!

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

DriveSoft wrote:

Данный скрипт не обращается к компоненту, а обращается непосредственно в базу данных, в вашем случае лучше создать вычисляемое поле:

(CASE WHEN implementation=1 then 'На контроле' else '' end)

А как бы к этому ещё и красный цвет фона ячейки добавить? 
В

then 'На контроле' AND main.TableGrid1.Cell[6,i].Color := clRed

не понимает [6,i].

Не боги горшки лепят!

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

Расскрасить компонент TableGrid необходимо с помощью скриптов, пример:
http://myvisualdatabase.com/forum/viewtopic.php?id=1063

Dmitry.

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

OK! Спасибо!

Не боги горшки лепят!

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

DriveSoft wrote:

Данный скрипт не обращается к компоненту, а обращается непосредственно в базу данных, в вашем случае лучше создать вычисляемое поле:

(CASE WHEN implementation=1 then 'На контроле' else '' end)

А при трёх состояниях чекбокса как записать? Как втиснуть сюда implementation=NULL then 'Выполнено'?

Не боги горшки лепят!

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

(CASE WHEN implementation=1 then 'На контроле' WHEN implementation IS NULL then 'Выполнено' else '' end)
Dmitry.

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

у меня скрипт не работает помогите пожалуйста что тут не правильно ?

var
  sHello: string;
             
procedure HelloWorld (s: string);
begin
  ShowMessage(s);
end;

procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c: integer;
begin
     c := Form1.GridEmployees.RowCount - 1;
     for i := 0 to c do
     begin
         if Form1.GridEmployees.Cells[3,i] = 'Да' then Form1.GridEmployees.Cell[3,i].Color := clRed
             else Form1.GridEmployees.Cell[3,i].Color := clGreen;
     end;
end;

begin
       (CASE WHEN implementation=1 then 'На контроле' else '' end)
end.

begin
  // just for example
  sHello := 'Script said hello!';
  HelloWorld(sHello);
end.

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

Dima.Bekmametov
попробуйте убрать эту часть

begin
       (CASE WHEN implementation=1 then 'На контроле' else '' end)
end.

т.к. не ясно для чего это здесь, это больше похоже на часть SQL запроса.


также можете приложит ваш проект к сообщению (zip файл без exe и dll)

Dmitry.

Re: Как в гриде заменить значения CheckBox 'Да' и 'Нет' на другие?

Разобрался СПАСИбО