Hola Carlos:
En la seccion de CODIGO FUENTE esta una funcion de proteger y desproteger campos durante la captura, pero dicho codigo implica que el posicionamiento de renglon y su validacion se hacia aparte.
Para resolver tu problema en base a ese codigo solo agrega estos IF's y un argumento al_renglon:
dwo.Modify(ls_campo+".protect='If(GetRow()="+string(al_renglon)+",1,0)'")//Protege
dwo.Modify(ls_campo+".protect='If(GetRow()="+string(al_renglon)+",0,1)'")//DesProtege
De ese manera solo llama la funcion:
//wf_proteccion(dw_captura,1,'',7) //Protege todos los campos del renglon 7
//wf_proteccion(dw_captura,0,'',1) //DesProtege todos los campos del renglon 1
//wf_proteccion(dw_captura,0,'clave,fechalta',3) //DesProtege todos los campos excepto CLAVE y FECHALTA del renglon
//wf_proteccion(dw_captura,1,'nombre',1) //Protege todos los campos excepto NOMBRE del renglon 1.
Saludos
Victor //:-)