Browse bitmap, zebrado e combobox.
Enviado: 04 Jul 2024 11:08
por Fernando queiroz
Ola Itamar como voce faz para atualizar no Browse uma celula que tem combobox , tipo a celula LEVAR onde tem um combobox , apos perder o foco como voce atualiza.
para pegar o novo valor para gravar no banco de dados.
no meu caso ele ainda esta pegando o valor anterior a mudanca do combobox
estou querendo fazer isso mas to levando uma surra danada
Browse bitmap, zebrado e combobox.
Enviado: 04 Jul 2024 18:09
por Fernando queiroz
Consegui!!!!
Com o ON UPDATE no browse
@ 2,113 BROWSE oBrowse1 ARRAY SIZE 1020,450 STYLE WS_BORDER + WS_VSCROLL ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;
ON KEYDOWN {|oBrowse1,nKeyPress| ::SENHA_onKeyDown( oBrowse1, nKeyPress, oDlg, @cProgressKey ) };
ON UPDATE {|| ::oBrowse_OnUpdate( oBrowse1 ), oBrowse1:aArray := ::CARREGA( cAlvo_Consulta ), obrowse1:REFRESH() }
oBrowse1:AddColumn( HColumn():New( "",,"C",3,0,.F.,1,0, ) )
oBrowse1:AddColumn( HColumn():New('ID', hwg_ColumnArBlock() ,'N',12, 0 ,.F.,1,2,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('OPERADOR', hwg_ColumnArBlock() ,'C',80, 0 ,.F.,1,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('CARGO', hwg_ColumnArBlock() ,'U',23, 0 ,.T.,0,0,,,,cargo,,,,,))
oBrowse1:AddColumn( HColumn():New('SITUAÇÃO', hwg_ColumnArBlock() ,'U',23, 0 ,.T.,0,0,,,,situacao,,,,,))
oBrowse1:AddColumn( HColumn():New('Nível', hwg_ColumnArBlock() ,'C',33, 0 ,.F.,1,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('A', hwg_ColumnArBlock() ,'N',3, 0 ,.F.,1,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('P', hwg_ColumnArBlock() ,'C',30, 0 ,.F.,1,,,,,,,,,,,))
Browse bitmap, zebrado e combobox.
Enviado: 04 Jul 2024 18:23
por Itamar M. Lins Jr.
Olá!
Essa "ruma" de virgula... Não é um código fácil de entender.
Array tem uns tratamentos diferentes, como você faz para mandar gravar no SGBD ?
Saudações,
Itamar M. Lins Jr.
Browse bitmap, zebrado e combobox.
Enviado: 04 Jul 2024 19:36
por Fernando queiroz
no ON UPDATE do Browse eu chamo
ON UPDATE {|| ::oBrowse_OnUpdate( oBrowse1 ), oBrowse1:aArray := ::CARREGA( cAlvo_Consulta ), obrowse1:REFRESH() }
*********************************************************************************************************************************************************
METHOD oBrowse_OnUpdate( oBrowse1 ) CLASS SENHACLASS
*********************************************************************************************************************************************************
local cSQL;
cSQL := "UPDATE password SET "
cSQL += "password.CARGO = '" + oBrowse1:aArray[oBrowse1:nCurrent, 4] +"', "
cSQL += "password.SITUACAO = '" + oBrowse1:aArray[oBrowse1:nCurrent, 5] +"' "
cSQL += "WHERE password.PASSWORD_Id = '" + strzero(oBrowse1:aArray[oBrowse1:nCurrent,2],11,0) + "'"
ConeccoesClass():ExecuteSQL(::oServer, cSQL)
Browse bitmap, zebrado e combobox.
Enviado: 04 Jul 2024 19:38
por Fernando queiroz
e quanto as virgulas sao todos os parametros do addcolumn , podeia usar somente os que preciso, mas deixo as virgulas para se precisar nao ficar contando
na Classe HBROWSE quando instancia recebe os parametros
METHOD New( cHeading, block, type, length, dec, lEditable, nJusHead, nJusLin, cPict, bValid, bWhen, aItem, bColorBlock, bHeadClick )
oBrowse1:AddColumn( HColumn():New('SITUAÇÃO', hwg_ColumnArBlock() ,'U',23, 0 ,.T.,0,0,,,,situacao,,,,,))
no meu caso eu não uso o tradutor de HARBOUR para C eu coloco diretamente a chamada no METODO
quando voce escreve dessa forma
Add Column {||iif( pd->entregue="S","Sim",iif(Empty(pd->totentreg),"Não","Parte")) } to oBrw ITEMS aEntregue Editable ;
Header 'Levar' type 'C' dec 0 length 6 Justify Line DT_CENTER Justify Head DT_CENTER
ele transforma para a forma que eu uso