I write this code in the Init method of Column:
****************************************************
This.AddProperty('nOldWidth', This.Width)
SELE vMonta_fvis
lcDynamic = ''
This.AddObject('barra', 'Grupo') && This is a container that no have a object.
SCAN
lcClasse = ALLTRIM(vMonta_fvis.nome_object)
lcSubClasse = ALLTRIM(vMonta_fvis.nome_classe) + '_'
*
IF vMonta_fvis.edit_campo
lcDynamic = lcDynamic + "IIF(nome_object = '" + lcClasse + "','" + lcClasse + "',"
*
This.AddObject(lcClasse, 'Grupo') && This is a container that will have a objects.
This.&lcClasse..Visible = .T.
This.&lcClasse..AddObject('oCampo', lcSubClasse)
This.&lcClasse..oCampo.Visible = .T.
IF ALLTRIM(vMonta_fvis.nome_classe) = 'CHECKBOX' .OR. vMonta_fvis.tipo_campo $ 'DT'
This.&lcClasse..oCampo.cControlsource = ALLTRIM(vMonta_fvis.nome_bd) + ;
'.' + ALLTRIM(vMonta_fvis.nome_campo)
ELSE
This.&lcClasse..oCampo.Controlsource = ALLTRIM(vMonta_fvis.nome_bd) + ;
'.' + ALLTRIM(vMonta_fvis.nome_campo)
ENDIF
IF !EMPTY(vMonta_fvis.form_campo)
This.&lcClasse..oCampo.InputMask = ALLTRIM(vMonta_fvis.form_campo)
ENDIF
IF ALLTRIM(vMonta_fvis.nome_classe) = 'COMBOBOX'
This.&lcClasse..oCampo.RowSource = ALLTRIM(vMonta_fvis.text_origem)
ENDIF
ENDIF
ENDSCAN
lcDynamic = lcDynamic + "'barra'" + REPLICATE(")", OCCURS("IIF(", lcDynamic))
This.DynamicCurrentControl = lcDynamic
GO TOP
***********************************
In This case the expression for the DynamicCurrentControl is to long.
---------------------------------------------
Mauro Ricardo Chaves de Oliveira
Petrobras/RJ
Technical Documents Manager
---------------------------------------------