RE:Bloquear celda en un grid
Como aun no te han respondido, y yo acabo de pasar lo mismo, te tratare de explicar lo que he hecho y espero te sirva:
En la tabla o cursor, agrege un campo (SW_Lecc) para ser marcado en 0 (lectura y escritura) o 1 (Lectura).
la tabla o cursor la asocie al grid, independiente la cantidad de columnas que esta tenga (para este ejemplo, seleccione la columna 7)
El campo SW_Lecc lo asigne en 1 (Bloqueado) para todos los registros que cumplen una condicion.
luego en el metodo AfterRowColChange, puse lo siguiente:
LPARAMETERS nColIndex
IF nColIndex != 7
This.ReadOnly=(SW_Leec = 1)
ELSE
THISFORM.grid1.column7.text1.readonly = .f.
ENDIF
Esto es, si la columna es la 7, el text se libera, de lo contrario, todos lo registros con SW_lecc = 1 quedaran readonly.
Esto, a mi sirvio, ya que lo que pretendia hacer era que una cierta cantidad de registros (SW_Leec) quedaran ReadOnly en la grilla, pero necesitaba de esos mismos registros poder modificar un campo en especial, que es el que se libera en el metodo AfterRowColChange.
Atte.,
DANIEL GONZALEZ CARRASCO
Desarrollador en VFP
Una Abrazo desde Osorno, Chile.
NOTA : Esta solucion fue adaptada de la publicacion de Espartaco Palma Martínez y la puedes encontrar en este enlace : http://www.portalfox.com/index.php?name=News&file=article&sid=944&mode=nested&order=0&thold=0