fanlinux90 said:
...it changes the value of [highlight #FCE94F]all[/highlight]
The major reason you see all rows checked the same is that you didn't set the sparse property .f. to get an individually painted checkbox per row.
If you set that to .f. - the non-standard column controls like a checkbox is, are painted per row with the individual checkmarks and non-checked boxes instead of just being shown sparsely in the active row with all other rows showing the standard text1 textbox and the .t. or .f. instead of the checkmark. Notice, it's still just one checkbox control column1.check1, there is no column1.check2 nor an array of column1.check[n]. So you might not even read the value of the row you want to know it of.
To get to the individual values in a table you have exactly that, the table, its records and alias.fieldname to access it and the active row in the grid also is the active row in the table set as rowsource of the grid.
There still may be one problem you encounter anyway, that is that the moment a user clicks a checkbox and changes the control value, that's not yet stored to the controlsource field. Yyou need the valid event to happen to get there, and calling it won't help to trigger that base behaviour, because you only call the code in the valid event, maybe there's even nothing in there, then you get a .T. returned, but the value of the checkbox still is not yet transferred to the logical field of the underlying table.
Your replace code is fine, it should be in the interactivechange, I'd prefer that to the click event. It'll only replace the status field of the current record. But then you have to act only when the valu changed from unchecked to checked, right? So reacting to any click was never the right way to get to what you want to happen.
Chriss