no afectaría en la velocidad, porque solamente sería al momento de la edición, en lugar de revisar el tercer elemento del array, o despues en dado caso, evaluarías el codeblock general, no al momento del despliegue del browse, sino al editar, ademas, podrían ser dos variables en lugar de una, toma en cuenta (por lo menos es lo que pienso) se trata de recuperar una funcionalidad que se tiene en el twbrowse que empieza a ser obsoleto, tal vez esto podría ayudar a darte alguna idea (un comentario xOpcion vendría siendo la variable donde debe de ir ese dato, no se cual sea)
- Code: Select all Expand view RUN
oBrw:nEdtTypDefault := EDIT_GET
oBrw:bEditType := { | oCol | selecValor( oCol ) }
function selecValor( oCol )
local oBrw := oCol:oBrw
DO CASE
CASE oBrw:aRow[ 1 ] in { "REG4", "REG9", "REG11" }
oCol:nEditType := EDIT_LISTBOX
oCol:xOpcion := { "Uno", "Dos", "Tres" }
CASE oBrw:aRow[ 1 ] == "REG8"
oCol:nEditType := EDIT_LISTBOX
oCol:xOpcion := { "aaa", "bbb", "ccc" }
CASE oBrw:aRow[ 1 ] == "REG15"
oCol:nEditType := EDIT_BUTTON
oCol:xOpcion := { || MsgYesNo( "Select a value" ) }
otherwise
oCol:nEditType := ::nEdtTypDefault
oCol:xOpcion := nil
ENDCASE
return nil