Não consigo setar o valor na coluna de uma GRID onde defini um combobox, a ideia é que ao carregar a Grid com as informações do Banco de Dados, seja setado na coluna o DisplayValue correto. O motivo de estar usando um combobox na Grid é que o usuário poderá alterar pelo COMBOBOX o conteúdo da coluna naquela linha. Como faço?
As propiedades importantes setadas na Grid são:
AllowEdit := true
CellNavigation := true
Headers: {'id#','Serviço','Valor','Profissional'}
ColumnControls: { {'TEXTBOX','NUMERIC'}, {'TEXTBOX','CHARACTER'}, {'TEXTBOX','NUMERIC','99,999.99'}, {'COMBOBOX',p_aFatProfCbx,p_aFatProfCbx} }
Obs: a variável PRIVATE p_aFatProfCbx contém a lista de profissionais para carregar no ComboBox
ColumnWhen: {{||.F.},{||.F.},{ || Is_True(g_oUser:Dados:FieldGet('altera_valor_cobrado')) },{||.T.} }
Justify: {GRID_JTFY_RIGHT, GRID_JTFY_LEFT, GRID_JTFY_RIGHT, GRID_JTFY_LEFT}
MultiSelect: false
Ao carregar a Grid, quando vou associar à quarta coluna uma string dá o seguinte erro:
A linha no programa que está dando o erro é a 140:
oQuery:GoTop()
FOR s := 1 TO oQuery:LastRec()
cProfissional := PegaNomeProfissionalOffArray( oQuery:FieldGet('id_profissional') )
MsgDebug( oQuery:FieldGet('id_profissional'), cProfissional, p_aFatProfCbx )
ADD ITEM { oQuery:FieldGet('id_servico'), ;
STRING_MySQL_TO_HB(oQuery:FieldGet('servico_nome')), ;
oQuery:FieldGet('valor_servico'), ;
cProfissional ; // Aqui da erro, cProfissional contém um nome de um profssional que está em p_aFatProfCbx usado no ComboBox
} TO Grid_Servicos_Faturar OF faturamento
IF ( faturamento.RadioGroup_SelecionarServicos.Value == 1 )
faturamento.Text_TotalServicos.Value := faturamento.Text_TotalServicos.Value + oQuery:FieldGet('valor_servico')
faturamento.Grid_Servicos_Faturar.CheckBoxItem(s) := true
ELSE
faturamento.Grid_Servicos_Faturar.CheckBoxItem(s) := false
ENDIF
AAdd( p_aGridServicos, { 'valor' => oQuery:FieldGet('valor_servico'), 'id_profissional' => oQuery:FieldGet('id_profissional'), 'CheckBoxItem' => faturamento.Grid_Servicos_Faturar.CheckBoxItem(s) } )
oQuery:Skip()
NEXT s
O que estou fazendo de errado e qual o procedimento correto neste caso?
Grato.