Obrigado asimoes,mas por enquanto vou do modo como o Pablo me passou. Mas vou dar uma estudada nessa sua opcao.
Segue Codigo.:
Código: Selecionar todos
#include <hmg.ch>
Function Main
Public tempcli:={}
var_incluir := .f.
var_alterar := .f.
Set Interactiveclose oFF
Set Deleted ON
Set Navigation Extended
Set Multiple OFF
* Set Autopen OFF
Set Language to Portuguese
Set Date Format "dd/mm/yyyy"
Set Epoch to Year(Date())-50
request dbfcdx
rddsetdefault("dbfcdx")
Dbsetdriver("dbfcdx")
select 1
use bdcli shared alias bdcli
set index to bdcli
set order to tag clides
go top
select 2
use cep2007 shared alias cep2007
set index to cep2007
go top
Load Window Main
Fcliente_temporario()
Fcliente_dados()
Fcliente_bloqueia_tela()
Main.grid_fcliente.Setfocus
Main.grid_fcliente.Value := 1
Main.Center
Main.Activate
Return
Function Fcliente_temporario
tempcli:={}
select bdcli
go top
do while .not. eof()
aadd(tempcli,{alltrim(bdcli->clicod),;
alltrim(bdcli->clides),;
alltrim(bdcli->clitel),;
alltrim(bdcli->clifax),;
alltrim(bdcli->clicel),;
alltrim(bdcli->clicont)})
skip
enddo
for i = 1 to len(tempcli)
Main.grid_fcliente.additem(tempcli[i])
next
go top
Return
Function Fcliente_dados
Main.txt_fcliente_codigo.Value := bdcli->clicod
Main.txt_fcliente_descricao.Value := bdcli->clides
Main.txt_fcliente_cep.Value := transform(bdcli->clicep, '@R 99999-999')
Main.txt_fcliente_endereco.Value := bdcli->cliend
Main.txt_fcliente_numero.Value := bdcli->clinum
Main.txt_fcliente_bairro.Value := bdcli->clibai
Main.txt_fcliente_cidade.Value := bdcli->clicid
Main.txt_fcliente_uf.Value := bdcli->cliuf
if len(alltrim(bdcli->clicpf)) = 14
Main.txt_fcliente_cnpj_cpf.Value := transform(bdcli->clicpf, '@R 99.999.999/9999-99')
else
Main.txt_fcliente_cnpj_cpf.Value := transform(bdcli->clicpf, '@R 999.999.999-99')
endif
Main.txt_fcliente_insc_rg.Value := bdcli->clirg
Main.txt_fcliente_telefone.Value := transform(bdcli->clitel, '@R (99)9999-9999')
Main.txt_fcliente_fax.Value := transform(bdcli->clifax, '@R (99)9999-9999')
Main.txt_fcliente_celular.Value := transform(bdcli->clicel, '@R (99)9999-9999')
Main.txt_fcliente_contato.Value := bdcli->clicont
Main.txt_fcliente_email.Value := bdcli->climail
Main.txt_fcliente_web.Value := bdcli->cliweb
Return
Function Fcliente_bloqueia_tela
Main.txt_fcliente_codigo.Enabled := .f.
Main.txt_fcliente_descricao.Enabled := .f.
Main.txt_fcliente_cep.Enabled := .f.
Main.txt_fcliente_endereco.Enabled := .f.
Main.txt_fcliente_numero.Enabled := .f.
Main.txt_fcliente_bairro.Enabled := .f.
Main.txt_fcliente_cidade.Enabled := .f.
Main.txt_fcliente_uf.Enabled := .f.
Main.txt_fcliente_cnpj_cpf.Enabled := .f.
Main.txt_fcliente_insc_rg.Enabled := .f.
Main.txt_fcliente_telefone.Enabled := .f.
Main.txt_fcliente_fax.Enabled := .f.
Main.txt_fcliente_celular.Enabled := .f.
Main.txt_fcliente_contato.Enabled := .f.
Main.txt_fcliente_email.Enabled := .f.
Main.txt_fcliente_web.Enabled := .f.
Main.btn_fcliente_gravar.Enabled := .f.
Main.btn_fcliente_cancelar.Enabled := .f.
Main.btn_fcliente_procurar.Enabled := .t.
Main.txt_fcliente_pesquisar.Enabled := .t.
Main.grid_fcliente.SetFocus
Return
Function fcliente_btn_fcliente_incluir_action()
var_incluir := .t.
Main.btn_fcliente_alterar.Enabled := .f.
Main.btn_fcliente_excluir.Enabled := .f.
Main.btn_fcliente_sair.Enabled := .f.
Main.btn_fcliente_incluir.Enabled := .f.
Main.btn_fcliente_gravar.Enabled := .t.
Main.btn_fcliente_cancelar.Enabled := .t.
Main.btn_fcliente_procurar.Enabled := .f.
Main.txt_fcliente_pesquisar.Enabled := .f.
Main.txt_fcliente_descricao.Enabled := .t.
Main.txt_fcliente_cep.Enabled := .t.
Main.txt_fcliente_endereco.Enabled := .t.
Main.txt_fcliente_numero.Enabled := .t.
Main.txt_fcliente_bairro.Enabled := .t.
Main.txt_fcliente_cidade.Enabled := .t.
Main.txt_fcliente_uf.Enabled := .t.
Main.txt_fcliente_cnpj_cpf.Enabled := .t.
Main.txt_fcliente_insc_rg.Enabled := .t.
Main.txt_fcliente_telefone.Enabled := .t.
Main.txt_fcliente_fax.Enabled := .t.
Main.txt_fcliente_celular.Enabled := .t.
Main.txt_fcliente_contato.Enabled := .t.
Main.txt_fcliente_email.Enabled := .t.
Main.txt_fcliente_web.Enabled := .t.
Main.btn_fcliente_gravar.Enabled := .t.
Main.btn_fcliente_cancelar.Enabled := .t.
Main.txt_fcliente_codigo.Value := ''
Main.txt_fcliente_descricao.Value := ''
Main.txt_fcliente_cep.Value := ''
Main.txt_fcliente_endereco.Value := ''
Main.txt_fcliente_numero.Value := ''
Main.txt_fcliente_bairro.Value := ''
Main.txt_fcliente_cidade.Value := ''
Main.txt_fcliente_uf.Value := ''
Main.txt_fcliente_cnpj_cpf.Value := ''
Main.txt_fcliente_insc_rg.Value := ''
Main.txt_fcliente_telefone.Value := ''
Main.txt_fcliente_fax.Value := ''
Main.txt_fcliente_celular.Value := ''
Main.txt_fcliente_contato.Value := ''
Main.txt_fcliente_email.Value := ''
Main.txt_fcliente_web.Value := ''
Main.txt_fcliente_descricao.Setfocus
Return
Function fcliente_btn_fcliente_cancelar_action
Fcliente_bloqueia_tela()
Main_grid_fcliente_onchange()
Main.btn_fcliente_alterar.Enabled := .t.
Main.btn_fcliente_excluir.Enabled := .t.
Main.btn_fcliente_sair.Enabled := .t.
Main.btn_fcliente_incluir.Enabled := .t.
Main.btn_fcliente_gravar.Enabled := .f.
Main.btn_fcliente_cancelar.Enabled := .f.
var_bloqueio := .f.
var_incluir := .f.
var_alterar := .f.
Return
Function fcliente_btn_fcliente_alterar_action
var_alterar := .t.
Main.btn_fcliente_alterar.Enabled := .f.
Main.btn_fcliente_excluir.Enabled := .f.
Main.btn_fcliente_sair.Enabled := .f.
Main.btn_fcliente_incluir.Enabled := .f.
Main.btn_fcliente_gravar.Enabled := .t.
Main.btn_fcliente_cancelar.Enabled := .t.
Main.txt_fcliente_descricao.Enabled := .t.
Main.txt_fcliente_cep.Enabled := .t.
Main.txt_fcliente_endereco.Enabled := .t.
Main.txt_fcliente_numero.Enabled := .t.
Main.txt_fcliente_bairro.Enabled := .t.
Main.txt_fcliente_cidade.Enabled := .t.
Main.txt_fcliente_uf.Enabled := .t.
Main.txt_fcliente_cnpj_cpf.Enabled := .t.
Main.txt_fcliente_insc_rg.Enabled := .t.
Main.txt_fcliente_telefone.Enabled := .t.
Main.txt_fcliente_fax.Enabled := .t.
Main.txt_fcliente_celular.Enabled := .t.
Main.txt_fcliente_contato.Enabled := .t.
Main.txt_fcliente_email.Enabled := .t.
Main.txt_fcliente_web.Enabled := .t.
Main.btn_fcliente_procurar.Enabled := .f.
Main.txt_fcliente_pesquisar.Enabled := .f.
Main.txt_fcliente_descricao.Setfocus
Return
Function fcliente_btn_fcliente_gravar_action
if var_incluir = .t.
select bdcli
set order to tag clicod
bus = 0
do while .t.
bus++
go top
seek strzero(bus,6,0)
if .not. found()
iniaux = bus
exit
endif
enddo
append blank
if rlock()
replace bdcli->clicod with strzero(iniaux,6,0)
replace bdcli->clides with Main.txt_fcliente_descricao.Value
replace bdcli->clicep with strtran(Main.txt_fcliente_cep.Value,"-")
replace bdcli->cliend with Main.txt_fcliente_endereco.Value
replace bdcli->clinum with Main.txt_fcliente_numero.Value
replace bdcli->clibai with Main.txt_fcliente_bairro.Value
replace bdcli->clicid with Main.txt_fcliente_cidade.Value
replace bdcli->cliuf with Main.txt_fcliente_uf.Value
replace bdcli->clicpf with Main.txt_fcliente_cnpj_cpf.Value
replace bdcli->clirg with Main.txt_fcliente_insc_rg.Value
replace bdcli->clitel with strtran(strtran(strtran(Main.txt_fcliente_telefone.Value,"("),")"),"-")
replace bdcli->clifax with strtran(strtran(strtran(Main.txt_fcliente_fax.Value,"("),")"),"-")
replace bdcli->clicel with strtran(strtran(strtran(Main.txt_fcliente_celular.Value,"("),")"),"-")
replace bdcli->clicont with Main.txt_fcliente_contato.Value
replace bdcli->climail with Main.txt_fcliente_email.Value
replace bdcli->cliweb with Main.txt_fcliente_web.Value
commit
unlock
endif
set order to tag clides
var_incluir := .f.
Main.grid_fcliente.deleteallitems
Fcliente_temporario()
Main.grid_fcliente.Value := ascan(tempcli,{|x|x[1]=strzero(iniaux,6,0)})
main_grid_fcliente_onchange()
Fcliente_bloqueia_tela()
Main.grid_fcliente.Refresh
Main.grid_fcliente.SetFocus
endif
if var_alterar := .t.
select bdcli
if rlock()
replace bdcli->clides with Main.txt_fcliente_descricao.Value
replace bdcli->clicep with strtran(Main.txt_fcliente_cep.Value,"-")
replace bdcli->cliend with Main.txt_fcliente_endereco.Value
replace bdcli->clinum with Main.txt_fcliente_numero.Value
replace bdcli->clibai with Main.txt_fcliente_bairro.Value
replace bdcli->clicid with Main.txt_fcliente_cidade.Value
replace bdcli->cliuf with Main.txt_fcliente_uf.Value
replace bdcli->clicpf with Main.txt_fcliente_cnpj_cpf.Value
replace bdcli->clirg with Main.txt_fcliente_insc_rg.Value
replace bdcli->clitel with strtran(strtran(strtran(Main.txt_fcliente_telefone.Value,"("),")"),"-")
replace bdcli->clifax with strtran(strtran(strtran(Main.txt_fcliente_fax.Value,"("),")"),"-")
replace bdcli->clicel with strtran(strtran(strtran(Main.txt_fcliente_celular.Value,"("),")"),"-")
replace bdcli->clicont with Main.txt_fcliente_contato.Value
replace bdcli->climail with Main.txt_fcliente_email.Value
replace bdcli->cliweb with Main.txt_fcliente_web.Value
commit
unlock
endif
set order to tag clides
var_alterar := .f.
Main.grid_fcliente.deleteallitems
Fcliente_temporario()
a_cCliente:=Main.txt_fcliente_codigo.Value
Main.grid_fcliente.Value := ascan(tempcli,{|x|x[1]=a_cCliente})
Main.grid_fcliente.Refresh
Main.grid_fcliente.SetFocus
main_grid_fcliente_onchange()
Fcliente_bloqueia_tela()
endif
fcliente_btn_fcliente_cancelar_action()
Return
Function fcliente_txt_fcliente_cep_onenter
select cep2007
go top
seek strtran(Main.txt_fcliente_cep.Value,"-")
if found()
Main.txt_fcliente_endereco.Value := alltrim(cep2007->abrev_tipo)+" "+alltrim(cep2007->nome_log)
Main.txt_fcliente_bairro.Value := alltrim(cep2007->extenso_ba)
Main.txt_fcliente_cidade.Value := alltrim(cep2007->nome_local)
Main.txt_fcliente_uf.Value := alltrim(cep2007->uf_log)
endif
close cep2007
select bdcli
Return
Function main_grid_fcliente_onchange
Local cCliente := PegaValorDaColuna( "grid_fcliente" , "Main" , 1 )
select bdcli
set order to tag clicod
go top
seek cCliente
if found()
Fcliente_dados()
endif
set order to tag clides
Return
Function main_btn_fcliente_procurar_action
Main.grid_fcliente.deleteallitems
p_cliente:="*"+alltrim(Main.txt_fcliente_pesquisar.Value)+"?"
select bdcli
set order to tag clides
go top
o_cliente:=OrdWildSeek(p_cliente)
do while o_cliente
add item {alltrim(bdcli->clicod),;
alltrim(bdcli->clides),;
alltrim(bdcli->clitel),;
alltrim(bdcli->clifax),;
alltrim(bdcli->clicel),;
alltrim(bdcli->clicont)} to grid_fcliente of Main
o_cliente:=OrdWildSeek(p_cliente,.t.)
enddo
Main.txt_fcliente_pesquisar.Value := ''
Main.grid_fcliente.Refresh
Main.grid_fcliente.Setfocus
Main.grid_fcliente.Value := 1
Return
Function main_btn_fcliente_excluir_action
Local eCliente := PegaValorDaColuna( "grid_fcliente" , "Main" , 1 )
select bdcli
set order to tag clicod
go top
seek eCliente
if found()
if rlock()
delete
commit
unlock
endif
else
MsgBox("CLIENTE NÃO ENCONTRADO")
Return
endif
set order to tag clides
Main.grid_fcliente.deleteallitems
Fcliente_temporario()
Fcliente_dados()
Main.grid_fcliente.Setfocus
Main_grid_fcliente_onchange()
Main.grid_fcliente.Refresh
Main.grid_fcliente.Value := 1
Return
Function fcliente_btn_fcliente_sair_action
close all
Main.release
Return
Function PegaValorDaColuna( xObj, xForm, nCol)
Local nPos := GetProperty ( xForm , xObj , 'Value' )
Local aRet := GetProperty ( xForm , xObj , 'Item' , nPos )
Return aRet[nCol]
Agora a ultima duvida.
Como faço para formatar um telefone no grid.
Ele aparece assim 4136721010, queria inseria uma mascara para que ficasse assim (41)3672-1010