1 (edited by agatlogic101 2020-02-22 00:39:15)

Topic: checkboxColumn

1) Есть ли возможность по примеру
Form1.TableGrid1.Columns.InsertcheckboxColumn(0);
создать checkbox только в той строчке таблицы, где допустим есть запись "задача"
2) как с помощью этого checkbox , поменять значение в строке с 0 на 1 или наоборот. То есть как им  внести изменения базу данных?

Re: checkboxColumn

Have you tried selecting the checkbox option under the gridtable settings? You can then select which column you want it to appear in.

I've attached two images that might help.

Post's attachments

Attachment icon checkbox.PNG 117.75 kb, 130 downloads since 2020-02-22 

On a clear disk you can seek forever

3 (edited by CDB 2020-02-22 08:58:06)

Re: checkboxColumn

Sample of checkbox in action

Post's attachments

Attachment icon checkbox_in_action.PNG 26.92 kb, 115 downloads since 2020-02-22 

On a clear disk you can seek forever

4 (edited by agatlogic101 2020-02-22 09:14:41)

Re: checkboxColumn

А как сделать так, что бы checkbox был только в тех строках, где есть данные в колонке "name" ?

Re: checkboxColumn

К сожалению в текущей версии нет возможности внести изменения в базу при нажатии на данные CheckBox-ы, т.к. они не превязаны к какому либо полю в БД, поэтому необходим скрипт.


Пример



procedure Form1_GridSearch_OnChange (Sender: TObject);
var
    i, c: integer;
begin
    c := Form1.GridSearch.RowCount-1;
    for i := 0 to c do
    begin
        // если в первой колоне (0) нет значения, то скрывает в пятой колоке (4) CheckBox, иначе присваиваем чекбоксу значение
        if Form1.GridSearch.Cells[0, i]='' then Form1.GridSearch.Cell[4,i].Empty := True
        else Form1.GridSearch.Cell[4,i].AsInteger := SQLExecute('SELECT isSmoke FROM person WHERE id='+IntToStr(Form1.GridSearch.dbIndexToID(i))); // это может работать медленно, если в гриде много записей
    end;
end;


procedure Form1_GridSearch_OnEditAccept (Sender: TObject; ACol, ARow: Integer; Value: String; var Accept: Boolean);
begin
    if (ACol=4) and (not Form1.GridSearch.Cell[ACol,ARow].Empty) then // если изменяют значения в пятой колонке и значение не является пустым
    begin
        if Value = 'True' then SQLExecute('UPDATE person SET isSmoke=1 WHERE id='+Form1.GridSearch.sqlValue)
        else if Value = 'False' then SQLExecute('UPDATE person SET isSmoke=0 WHERE id='+Form1.GridSearch.sqlValue);
    end;
end;
Dmitry.

Re: checkboxColumn

Спасибо, работает

7 (edited by derek 2020-02-22 20:06:18)

Re: checkboxColumn

Здравствуйте Agatlogic, Dmitry, CDB,
Возможно, вы можете просто дважды щелкнуть ячейку в столбце «Женат *», которую хотите изменить (см. Пример), и вообще не использовать флажок.
С Уважением,
Derek
.
Maybe you could just doubleclick on the cell in the column 'Married*' that you want to change (please see the example) and not use a checkbox at all.

Post's attachments

Attachment icon agatlogic checkbox.zip 337.95 kb, 245 downloads since 2020-02-22