Página 1 de 1

Como atualizar uma array no Grid

Enviado: 14 Mar 2014 23:01
por Paulo_CPV
Boa noite, a todos do grupo!

Estou com um problema para atualizar um array em um controle Grid, preencho os dados de um DBF num array e mostro numa Grid até aí normal e agora eu fiz uma rotina que atualiza o registro que eu der duplo click e mostra uma tela com os dados do registro atual, mas quando eu altero qualquer dado que esta semndo visto na Grid ela não atualiza o que eu alterei e só vai mostrar a mudança quando eu for para outro registro e voltar no registro que eu alterei. Como eu faço para resolver este problema?

Abraços,

Paulo - Jacareí/SP

Como atualizar uma array no Grid

Enviado: 15 Mar 2014 08:03
por gilsonpaulo
Bom dia Paulo, se eu entendi deve ser isso que vc quer.

Código: Selecionar todos

	if cAlterar = .t.

		i	:=	cliente.grid_cliente.Value
	
		if i = 0
			Return
		endif

		dbselectarea("ibge")
		ordsetfocus("cidade")
		go top
		seek alltrim(cliente.txt_cidade.Value)
		if found()
			cliente.txt_ibge.Value	:=	ibge->codigo
		else
			MsgBox("CIDADE INVALIDA, VERIFIQUE O NOME DA CIDADE")
			cliente.txt_cidade.SetFocus
			Return
		endif
		
		seek(cliente.txt_codigo.Value)
		
		if rlock()
			replace cadcli->descli		with	cliente.txt_descricao.Value
			replace cadcli->cepcli		with	strtran(cliente.txt_cep.Value,"-")
			replace cadcli->tipcli		with	cliente.combo_pessoa.Value
			replace cadcli->ibgecli		with	cliente.txt_ibge.Value
			replace cadcli->endecli		with	cliente.txt_endereco.Value
			replace cadcli->numcli		with	cliente.txt_numero.Value
			replace cadcli->comple		with	cliente.txt_complemento.Value
			replace cadcli->baicli		with	cliente.txt_bairro.Value
			replace cadcli->cidcli		with	cliente.txt_cidade.Value
			replace cadcli->ufdcli		with	cliente.txt_uf.Value
			replace cadcli->cgccli		with	strtran(strtran(strtran(cliente.txt_cnpj_cpf.Value,"."),"-"),"/")
			replace cadcli->inscli		with	cliente.txt_insc_rg.Value
			replace cadcli->telcli		with	strtran(strtran(strtran(cliente.txt_telefone.Value,"("),")"),"-")
			replace cadcli->faxcli		with	strtran(strtran(strtran(cliente.txt_fax.Value,"("),")"),"-")
			replace cadcli->celcli		with	strtran(strtran(strtran(cliente.txt_celular.Value,"("),")"),"-")
			replace cadcli->contcli		with	cliente.txt_contato.Value
			replace cadcli->emailcli	with	cliente.txt_email.Value
			replace cadcli->webcli		with	cliente.txt_web.Value
			commit
			unlock
		endif
		
		cliente.grid_cliente.Cell(i,02)	:=	cliente.txt_descricao.Value
		cliente.grid_cliente.Cell(i,03)	:=	cliente.txt_telefone.Value
		cliente.grid_cliente.Cell(i,04)	:=	cliente.txt_fax.Value
		cliente.grid_cliente.Cell(i,05)	:=	cliente.txt_celular.Value
		cliente.grid_cliente.Cell(i,06)	:=	cliente.txt_endereco.Value
		cliente.grid_cliente.Cell(i,07)	:=	cliente.txt_numero.Value
		cliente.grid_cliente.Cell(i,08)	:=	cliente.txt_bairro.Value
		cliente.grid_cliente.Cell(i,09)	:=	cliente.txt_cidade.Value
		cliente.grid_cliente.Cell(i,10)	:=	cliente.txt_uf.Value
		cliente.grid_cliente.Cell(i,11)	:=	strtran(cliente.txt_cep.Value,"-")
		cliente.grid_cliente.Cell(i,12)	:=	cadcli->cgccli
		cliente.grid_cliente.Cell(i,13)	:=	cadcli->inscli
		cliente.grid_cliente.Cell(i,14)	:=	cadcli->ibgecli
		cliente.grid_cliente.Cell(i,15)	:=	cadcli->webcli
		cliente.grid_cliente.Cell(i,16)	:=	cadcli->emailcli
		cliente.grid_cliente.Cell(i,17)	:=	cadcli->contcli
		cliente.grid_cliente.Cell(i,18)	:=	str(cadcli->tipcli)
		cliente.grid_cliente.Cell(i,19)	:=	cadcli->comple
			
		cliente.grid_cliente.Setfocus
	
		cAlterar	:=	.f.
		
		cli_bloqueia()
		cliente_grid_onchange()
	
	endif
	
	cliente.btn_excluir.Enabled	:=	.t.
	cliente.btn_alterar.Enabled	:=	.t.
	cliente.btn_sair.Enabled		:=	.t.
	cliente.btn_incluir.Enabled	:=	.t.
	cliente.btn_pesquisa.Enabled	:=	.t.
	cliente.grid_cliente.SetFocus
Atente para os cliente.grid_cliente.Cell, pois é ali que atualizo a grid.

Abraços.

Como atualizar uma array no Grid

Enviado: 15 Mar 2014 17:24
por Paulo_CPV
Caro amigo fiz as alterações que você me indicou, não deu certo ele não está atualizando o Grid assim que é salvo os dados do registro, só vai atualizar o dado do Grid quando eu voltar no item que eu atualizei os dados.

Estou utilizando o Minigui Extend 2.3.2 e a Clausula no Grid CELLNAVIGATION .T., será que tem alguma coisa ver por eu não estar conseguindo atualizar os dados no Grid?

Abraços,

Paulo - Jacareí/SP

Como atualizar uma array no Grid

Enviado: 18 Mar 2014 20:06
por gilsonpaulo
Poste o trecho do código onde não está dando certo.