, nao tem licensa dupla, é um fork do MySQL, usa os mesmos comandos e dlls para acesso do MySQL, pois quem desenvolve é o ex dono do MySQL. Vc pode usar o
para criar os bancos e tabelas.
Código: Selecionar todos
#include <hmg.ch>
Function fornecedor
Private fAlt:=.f.,fInc:=.f.
Private aFornecedor:={}
Private aGridOrd := { { || ChgOrd(1)}, { || ChgOrd(2)} }
oServer := TMySQLServer():New("ip ou dominio do servidor", "usuario", "senha")
If oServer:NetErr()
MsgStop("Servidor de Base de Dados não foi encontrado!!!")
Main.Release
Endif
oServer:SelectDB("ducler")
Load Window Fornecedor
Fornecedor.Center
Fornecedor.Activate
Return(nil)
********************************************************************************
Function fornecedor_form_oninit
Local oQuery
Local oRow
Local i
Local oCnpj,oTipo
fornecedor.txt_codigo.Enabled := .f.
fornecedor.txt_descricao.Enabled := .f.
fornecedor.txt_cep.Enabled := .f.
fornecedor.combo_pessoa.Enabled := .f.
fornecedor.txt_ibge.Enabled := .f.
fornecedor.txt_endereco.Enabled := .f.
fornecedor.txt_numero.Enabled := .f.
fornecedor.txt_bairro.Enabled := .f.
fornecedor.txt_cidade.Enabled := .f.
fornecedor.txt_uf.Enabled := .f.
fornecedor.txt_cnpj.Enabled := .f.
fornecedor.txt_insc.Enabled := .f.
fornecedor.txt_telefone.Enabled := .f.
fornecedor.txt_fax.Enabled := .f.
fornecedor.txt_celular.Enabled := .f.
fornecedor.txt_contato.Enabled := .f.
fornecedor.txt_email.Enabled := .f.
fornecedor.txt_web.Enabled := .f.
fornecedor.btn_gravar.Enabled := .f.
fornecedor.btn_cancelar.Enabled := .f.
fornecedor.grid_fornecedor.DeleteAllItems()
oQuery := oServer:Query("Select * From fornecedor Order By razao_social" )
for i := 1 To oQuery:LastRec()
oRow := oQuery:GetRow(i)
oCnpj:=''
oTipo:=''
if len(alltrim(oRow:fieldGet(11))) = 14
oCnpj:=transform(oRow:fieldGet(11), '@R 99.999.999/9999-99')
endif
if len(alltrim(oRow:fieldGet(11))) = 11
oCnpj:=transform(oRow:fieldGet(11), '@R 999.999.999-99')
endif
fornecedor.grid_fornecedor.additem({strzero(oRow:fieldGet(01),6,0),;
oRow:fieldGet(02),;
transform(oRow:fieldGet(13), '@R (99)9999-9999'),;
transform(oRow:fieldGet(14), '@R (99)9999-9999'),;
transform(oRow:fieldGet(15), '@R (99)9999-9999'),;
oRow:fieldGet(17),;
transform(oRow:fieldGet(03), '@R 99999-999'),;
str(oRow:fieldGet(04)),;
oRow:fieldGet(05),;
oRow:fieldGet(06),;
oRow:fieldGet(07),;
oRow:fieldGet(08),;
oRow:fieldGet(09),;
oRow:fieldGet(10),;
oCnpj,; //oRow:fieldGet(11)
oRow:fieldGet(12),;
oRow:fieldGet(16),;
oRow:fieldGet(18),;
oRow:fieldGet(19)})
oQuery:Skip(1)
next
oQuery:Destroy()
fornecedor.grid_fornecedor.SetFocus
fornecedor.grid_fornecedor.Value := 1
Return(nil)
********************************************************************************
Function fornecedor_btn_incluir_action
fInc := .t.
fornecedor.btn_incluir.Enabled := .f.
fornecedor.btn_alterar.Enabled := .f.
fornecedor.btn_excluir.Enabled := .f.
fornecedor.btn_procura.Enabled := .f.
fornecedor.btn_sair.Enabled := .f.
fornecedor.btn_gravar.Enabled := .t.
fornecedor.btn_cancelar.Enabled := .t.
fornecedor.txt_descricao.Enabled := .t.
fornecedor.txt_cep.Enabled := .t.
fornecedor.combo_pessoa.Enabled := .t.
fornecedor.txt_endereco.Enabled := .t.
fornecedor.txt_numero.Enabled := .t.
fornecedor.txt_bairro.Enabled := .t.
fornecedor.txt_cidade.Enabled := .t.
fornecedor.txt_uf.Enabled := .t.
fornecedor.txt_cnpj.Enabled := .t.
fornecedor.txt_insc.Enabled := .t.
fornecedor.txt_telefone.Enabled := .t.
fornecedor.txt_fax.Enabled := .t.
fornecedor.txt_celular.Enabled := .t.
fornecedor.txt_contato.Enabled := .t.
fornecedor.txt_email.Enabled := .t.
fornecedor.txt_web.Enabled := .t.
fornecedor.grid_fornecedor.Enabled := .f.
fornecedor.txt_descricao.Setfocus
fornecedor.txt_codigo.Value := ''
fornecedor.txt_descricao.Value := ''
fornecedor.txt_cep.Value := ''
fornecedor.combo_pessoa.Value := 0
fornecedor.txt_ibge.Value := ''
fornecedor.txt_endereco.Value := ''
fornecedor.txt_numero.Value := ''
fornecedor.txt_bairro.Value := ''
fornecedor.txt_cidade.Value := ''
fornecedor.txt_uf.Value := ''
fornecedor.txt_cnpj.Value := ''
fornecedor.txt_insc.Value := ''
fornecedor.txt_telefone.Value := ''
fornecedor.txt_fax.Value := ''
fornecedor.txt_celular.Value := ''
fornecedor.txt_contato.Value := ''
fornecedor.txt_email.Value := ''
fornecedor.txt_web.Value := ''
Return(nil)
********************************************************************************
Function fornecedor_btn_alterar_action
Local i
i := fornecedor.grid_fornecedor.Value
if i == 0
Return(nil)
endif
fAlt := .t.
fornecedor.btn_incluir.Enabled := .f.
fornecedor.btn_alterar.Enabled := .f.
fornecedor.btn_excluir.Enabled := .f.
fornecedor.btn_procura.Enabled := .f.
fornecedor.btn_sair.Enabled := .f.
fornecedor.btn_gravar.Enabled := .t.
fornecedor.btn_cancelar.Enabled := .t.
fornecedor.txt_descricao.Enabled := .t.
fornecedor.txt_cep.Enabled := .t.
fornecedor.combo_pessoa.Enabled := .t.
fornecedor.txt_endereco.Enabled := .t.
fornecedor.txt_numero.Enabled := .t.
fornecedor.txt_bairro.Enabled := .t.
fornecedor.txt_cidade.Enabled := .t.
fornecedor.txt_uf.Enabled := .t.
fornecedor.txt_cnpj.Enabled := .t.
fornecedor.txt_insc.Enabled := .t.
fornecedor.txt_telefone.Enabled := .t.
fornecedor.txt_fax.Enabled := .t.
fornecedor.txt_celular.Enabled := .t.
fornecedor.txt_contato.Enabled := .t.
fornecedor.txt_email.Enabled := .t.
fornecedor.txt_web.Enabled := .t.
fornecedor.grid_fornecedor.Enabled := .f.
Return(nil)
********************************************************************************
********************************************************************************
Function fornecedor_btn_gravar_action
if fInc = .t.
grava_inclusao()
endif
if fAlt = .t.
grava_alteracao()
endif
Return(nil)
********************************************************************************
Function grava_inclusao
Local fCod,fDes,fCep,fTipo,fIbge,fEnd,fnum,fBai,fCid,fUf,fCnpj,fInsc,fFone,fFax,fCel,fCont,fMail,fWeb
Local oQuery
Local i
Local oCnpj
fDes := fornecedor.txt_descricao.Value
fCep := strtran(fornecedor.txt_cep.Value,"-")
fTipo := str(fornecedor.combo_pessoa.Value)
fIbge := fornecedor.txt_ibge.Value
fEnd := fornecedor.txt_endereco.Value
fNum := fornecedor.txt_numero.Value
fBai := fornecedor.txt_bairro.Value
fCid := fornecedor.txt_cidade.Value
fUf := fornecedor.txt_uf.Value
fCnpj := strtran(strtran(strtran(fornecedor.txt_cnpj.Value,"."),"-"),"/")
fInsc := fornecedor.txt_insc.Value
fFone := strtran(strtran(strtran(fornecedor.txt_telefone.Value,"("),")"),"-")
fFax := strtran(strtran(strtran(fornecedor.txt_fax.Value,"("),")"),"-")
fCel := strtran(strtran(strtran(fornecedor.txt_celular.Value,"("),")"),"-")
fCont := fornecedor.txt_contato.Value
fMail := fornecedor.txt_email.Value
fWeb := fornecedor.txt_web.Value
oQuery:=oServer:Query("select fornecedor from controle")
oRow := oQuery:GetRow(i)
fCod:=strzero(oRow:FieldGet(01)+1,6,0)
oQuery:Destroy()
oQuery:=oServer:Query("insert into fornecedor (codigo,razao_social,cep,tipo_pessoa,ibge,endereco,numero,bairro,cidade,uf,cnpj_cpf,insc_rg,telefone,fax,celular,contato,email,web) values ("+fCod+",'"+fDes+"','"+fCep+"',"+fTipo+",'"+fIbge+"','"+fEnd+"','"+fNum+"','"+fBai+"','"+fCid+"','"+fUf+"','"+fCnpj+"','"+fInsc+"','"+fFone+"','"+fFax+"','"+fCel+"','"+fCont+"','"+fMail+"','"+fWeb+"')")
oQuery:Destroy()
oQuery := oServer:Query("Select * From fornecedor where codigo="+fCod+"")
oRow := oQuery:GetRow(i)
oCnpj:=''
if len(alltrim(oRow:fieldGet(11))) = 14
oCnpj:=transform(oRow:fieldGet(11), '@R 99.999.999/9999-99')
endif
if len(alltrim(oRow:fieldGet(11))) = 11
oCnpj:=transform(oRow:fieldGet(11), '@R 999.999.999-99')
endif
fornecedor.grid_fornecedor.additem({strzero(oRow:fieldGet(01),6,0),;
oRow:fieldGet(02),;
transform(oRow:fieldGet(13), '@R (99)9999-9999'),;
transform(oRow:fieldGet(14), '@R (99)9999-9999'),;
transform(oRow:fieldGet(15), '@R (99)9999-9999'),;
oRow:fieldGet(17),;
transform(oRow:fieldGet(03), '@R 99999-999'),;
str(oRow:fieldGet(04)),;
oRow:fieldGet(05),;
oRow:fieldGet(06),;
oRow:fieldGet(07),;
oRow:fieldGet(08),;
oRow:fieldGet(09),;
oRow:fieldGet(10),;
oCnpj,; //oRow:fieldGet(11)
oRow:fieldGet(12),;
oRow:fieldGet(16),;
oRow:fieldGet(18),;
oRow:fieldGet(19)})
oQuery:Destroy()
oQuery:=oServer:Query("update controle set fornecedor="+fCod+"")
oQuery:Destroy()
ChgOrd(2)
for i:=1 to fornecedor.grid_fornecedor.itemcount
if fornecedor.grid_fornecedor.item(i)[1] = fCod
fornecedor.grid_fornecedor.Value := i
endif
next
fInc := .f.
fornecedor.btn_incluir.Enabled := .t.
fornecedor.btn_alterar.Enabled := .t.
fornecedor.btn_excluir.Enabled := .t.
fornecedor.btn_sair.Enabled := .t.
fornecedor.btn_procura.Enabled := .t.
fornecedor.btn_gravar.Enabled := .f.
fornecedor.btn_cancelar.Enabled := .f.
fornecedor.txt_descricao.Enabled := .f.
fornecedor.txt_cep.Enabled := .f.
fornecedor.combo_pessoa.Enabled := .f.
fornecedor.txt_endereco.Enabled := .f.
fornecedor.txt_numero.Enabled := .f.
fornecedor.txt_bairro.Enabled := .f.
fornecedor.txt_cidade.Enabled := .f.
fornecedor.txt_uf.Enabled := .f.
fornecedor.txt_cnpj.Enabled := .f.
fornecedor.txt_insc.Enabled := .f.
fornecedor.txt_telefone.Enabled := .f.
fornecedor.txt_fax.Enabled := .f.
fornecedor.txt_celular.Enabled := .f.
fornecedor.txt_contato.Enabled := .f.
fornecedor.txt_email.Enabled := .f.
fornecedor.txt_web.Enabled := .f.
fornecedor.grid_fornecedor.Enabled := .t.
fornecedor.grid_fornecedor.Setfocus
Return(nil)
********************************************************************************
Function grava_alteracao
Local fCod,fDes,fCep,fTipo,fIbge,fEnd,fnum,fBai,fCid,fUf,fCnpj,fInsc,fFone,fFax,fCel,fCont,fMail,fWeb
Local oQuery
Local i
Local oCnpj,oTipo
i := fornecedor.grid_fornecedor.Value
if i = 0
Return(nil)
endif
fCod := fornecedor.txt_codigo.Value
fDes := fornecedor.txt_descricao.Value
fCep := strtran(fornecedor.txt_cep.Value,"-")
fTipo := str(fornecedor.combo_pessoa.Value)
fIbge := fornecedor.txt_ibge.Value
fEnd := fornecedor.txt_endereco.Value
fNum := fornecedor.txt_numero.Value
fBai := fornecedor.txt_bairro.Value
fCid := fornecedor.txt_cidade.Value
fUf := fornecedor.txt_uf.Value
fCnpj := strtran(strtran(strtran(fornecedor.txt_cnpj.Value,"."),"-"),"/")
fInsc := fornecedor.txt_insc.Value
fFone := strtran(strtran(strtran(fornecedor.txt_telefone.Value,"("),")"),"-")
fFax := strtran(strtran(strtran(fornecedor.txt_fax.Value,"("),")"),"-")
fCel := strtran(strtran(strtran(fornecedor.txt_celular.Value,"("),")"),"-")
fCont := fornecedor.txt_contato.Value
fMail := fornecedor.txt_email.Value
fWeb := fornecedor.txt_web.Value
oQuery:=oServer:Query("update fornecedor set razao_social='"+fDes+"',cep='"+fCep+"',tipo_pessoa="+fTipo+",ibge='"+fIbge+"',endereco='"+fEnd+"',numero='"+fNum+"',bairro='"+fBai+"',cidade='"+fCid+"',uf='"+fUf+"',cnpj_cpf='"+fCnpj+"',insc_rg='"+fInsc+"',telefone='"+fFone+"',fax='"+fFax+"',celular='"+fCel+"',contato='"+fCont+"',email='"+fMail+"',web='"+fWeb+"' where codigo='"+fCod+"'")
fornecedor.grid_fornecedor.Cell(i,02) := fornecedor.txt_descricao.Value
fornecedor.grid_fornecedor.Cell(i,03) := fornecedor.txt_telefone.Value
fornecedor.grid_fornecedor.Cell(i,04) := fornecedor.txt_fax.Value
fornecedor.grid_fornecedor.Cell(i,05) := fornecedor.txt_celular.Value
fornecedor.grid_fornecedor.Cell(i,06) := fornecedor.txt_contato.Value
fornecedor.grid_fornecedor.Cell(i,07) := fornecedor.txt_cep.Value
fornecedor.grid_fornecedor.Cell(i,08) := fornecedor.combo_pessoa.Value
fornecedor.grid_fornecedor.Cell(i,09) := fornecedor.txt_ibge.Value
fornecedor.grid_fornecedor.Cell(i,10) := fornecedor.txt_endereco.Value
fornecedor.grid_fornecedor.Cell(i,11) := fornecedor.txt_numero.Value
fornecedor.grid_fornecedor.Cell(i,12) := fornecedor.txt_bairro.Value
fornecedor.grid_fornecedor.Cell(i,13) := fornecedor.txt_cidade.Value
fornecedor.grid_fornecedor.Cell(i,14) := fornecedor.txt_uf.Value
fornecedor.grid_fornecedor.Cell(i,15) := fornecedor.txt_cnpj.Value
fornecedor.grid_fornecedor.Cell(i,16) := fornecedor.txt_insc.Value
fornecedor.grid_fornecedor.Cell(i,18) := fornecedor.txt_email.Value
fornecedor.grid_fornecedor.Cell(i,19) := fornecedor.txt_web.Value
ChgOrd(2)
for i:=1 to fornecedor.grid_fornecedor.itemcount
if fornecedor.grid_fornecedor.item(i)[1] = fCod
fornecedor.grid_fornecedor.Value := i
endif
next
fAlt := .f.
fornecedor.btn_incluir.Enabled := .t.
fornecedor.btn_alterar.Enabled := .t.
fornecedor.btn_excluir.Enabled := .t.
fornecedor.btn_sair.Enabled := .t.
fornecedor.btn_procura.Enabled := .t.
fornecedor.btn_gravar.Enabled := .f.
fornecedor.btn_cancelar.Enabled := .f.
fornecedor.txt_descricao.Enabled := .f.
fornecedor.txt_cep.Enabled := .f.
fornecedor.combo_pessoa.Enabled := .f.
fornecedor.txt_endereco.Enabled := .f.
fornecedor.txt_numero.Enabled := .f.
fornecedor.txt_bairro.Enabled := .f.
fornecedor.txt_cidade.Enabled := .f.
fornecedor.txt_uf.Enabled := .f.
fornecedor.txt_cnpj.Enabled := .f.
fornecedor.txt_insc.Enabled := .f.
fornecedor.txt_telefone.Enabled := .f.
fornecedor.txt_fax.Enabled := .f.
fornecedor.txt_celular.Enabled := .f.
fornecedor.txt_contato.Enabled := .f.
fornecedor.txt_email.Enabled := .f.
fornecedor.txt_web.Enabled := .f.
fornecedor.grid_fornecedor.Enabled := .t.
fornecedor.grid_fornecedor.Setfocus
Return(nil)
********************************************************************************
********************************************************************************
Function fornecedor_grid_fornecedor_onchange
Local fCod,fDes,fCep,fTipo,fIbge,fEnd,fnum,fBai,fCid,fUf,fCnpj,fInsc,fFone,fFax,fCel,fCont,fMail,fWeb
Local oQuery
Local aGridRow
Local i
i := fornecedor.grid_fornecedor.Value
if i = 0
Return(nil)
endif
aGridRow := fornecedor.grid_fornecedor.Item (i)
fcod := aGridRow[01]
fDes := aGridRow[02]
fCep := aGridRow[07]
fTipo := val(aGridRow[08])
fIbge := aGridRow[09]
fEnd := aGridRow[10]
fNum := aGridRow[11]
fBai := aGridRow[12]
fCid := aGridRow[13]
fUf := aGridRow[14]
fCnpj := aGridRow[15]
fInsc := aGridRow[16]
fFone := aGridRow[03]
fFax := aGridRow[04]
fCel := aGridRow[05]
fCont := aGridRow[06]
fMail := aGridRow[18]
fWeb := aGridRow[19]
fornecedor.txt_codigo.Value := fCod
fornecedor.txt_descricao.Value := fDes
fornecedor.txt_cep.Value := fCep
fornecedor.combo_pessoa.Value := fTipo
fornecedor.txt_ibge.Value := fIbge
fornecedor.txt_endereco.Value := fEnd
fornecedor.txt_numero.Value := fNum
fornecedor.txt_bairro.Value := fBai
fornecedor.txt_cidade.Value := fCid
fornecedor.txt_uf.Value := fUf
fornecedor.txt_cnpj.Value := fCnpj
fornecedor.txt_insc.Value := fInsc
fornecedor.txt_telefone.Value := fFone
fornecedor.txt_fax.Value := fFax
fornecedor.txt_celular.Value := fCel
fornecedor.txt_contato.Value := fCont
fornecedor.txt_email.Value := fMail
fornecedor.txt_web.Value := fWeb
Return(nil)
********************************************************************************
********************************************************************************
Function fornecedor_txt_cep_onlostfocus
Local oCep
Local oQuery
Local oRow
Local i
oCep:=strtran(fornecedor.txt_cep.Value,"-")
oQuery:=oServer:Query("select abrev_tipo,nome_log,extenso_ba,nome_local,uf_log from cep2007 where cep8_log='"+oCep+"'")
oRow := oQuery:GetRow(i)
if !empty(oRow:fieldGet(1))
fornecedor.txt_endereco.Value := alltrim(oRow:fieldGet(1))+" "+alltrim(oRow:fieldGet(2))
fornecedor.txt_bairro.Value := alltrim(oRow:fieldGet(3))
fornecedor.txt_cidade.Value := alltrim(oRow:fieldGet(4))
fornecedor.txt_uf.Value := alltrim(oRow:fieldGet(5))
oQuery:Destroy()
oQuery:=oServer:Query("select codigo from ibge where cidade='"+fornecedor.txt_cidade.Value+"'")
oRow := oQuery:GetRow(i)
fornecedor.txt_ibge.Value := oRow:fieldGet(1)
oQuery:Destroy()
else
oQuery:Destroy()
endif
Return(nil)
********************************************************************************
********************************************************************************
Function fornecedor_btn_procura_action
Load Window pesfor
pesfor.Center
pesfor.Activate
Return(nil)
********************************************************************************
Function pesfor_txt_pesfor_onenter
Local oQuery
Local oRow
Local i
Local pProcura
Local oCnpj,oTipo
pProcura := pesfor.txt_pesfor.Value
pesfor.release
Wait Window "Aguarde, Pesquisando Fornecedores" NoWait
fornecedor.grid_fornecedor.DeleteAllItems()
oQuery := oServer:Query("Select * From fornecedor where codigo like '%"+pProcura+"%' or razao_social like '%"+pProcura+"%' Order By razao_social" )
for i := 1 To oQuery:LastRec()
oRow := oQuery:GetRow(i)
oCnpj:=''
oTipo:=''
if len(alltrim(oRow:fieldGet(11))) = 14
oCnpj:=transform(oRow:fieldGet(11), '@R 99.999.999/9999-99')
endif
if len(alltrim(oRow:fieldGet(11))) = 11
oCnpj:=transform(oRow:fieldGet(11), '@R 999.999.999-99')
endif
fornecedor.grid_fornecedor.additem({strzero(oRow:fieldGet(01),6,0),;
oRow:fieldGet(02),;
transform(oRow:fieldGet(13), '@R (99)9999-9999'),;
transform(oRow:fieldGet(14), '@R (99)9999-9999'),;
transform(oRow:fieldGet(15), '@R (99)9999-9999'),;
oRow:fieldGet(17),;
transform(oRow:fieldGet(03), '@R 99999-999'),;
str(oRow:fieldGet(04)),;
oRow:fieldGet(05),;
oRow:fieldGet(06),;
oRow:fieldGet(07),;
oRow:fieldGet(08),;
oRow:fieldGet(09),;
oRow:fieldGet(10),;
oCnpj,; //oRow:fieldGet(11)
oRow:fieldGet(12),;
oRow:fieldGet(16),;
oRow:fieldGet(18),;
oRow:fieldGet(19)})
oQuery:Skip(1)
next
oQuery:Destroy()
Wait Clear
fornecedor.grid_fornecedor.SetFocus
fornecedor.grid_fornecedor.Value := 1
Return(nil)
********************************************************************************
********************************************************************************
Static Function ChgOrd( nOrder )
Local aTemp := {}
Local nX
for nX := 1 to fornecedor.grid_fornecedor.ItemCount
aadd( aTemp, fornecedor.grid_fornecedor.Item( nX ) )
next nX
aTemp := asort( aTemp,,,{|a,b| a[nOrder]<=b[nOrder]} )
fornecedor.grid_fornecedor.DeleteAllItems
for nX := 1 to len( aTemp )
fornecedor.grid_fornecedor.AddItem( aTemp[nX] )
next nX
fornecedor.grid_fornecedor.Value := 1
Return(nil)
********************************************************************************
********************************************************************************
Function fornecedor_btn_excluir_action
Local i
Local pCod
Local aGridRow
i := fornecedor.grid_fornecedor.Value
if i == 0
Return
EndIf
aGridRow := fornecedor.grid_fornecedor.Item (i)
pCod := aGridRow [1]
oQuery := oServer:Query("delete from fornecedor where codigo =" + pCod)
fornecedor.grid_fornecedor.DeleteItem (i)
fornecedor.grid_fornecedor.Setfocus
fornecedor.grid_fornecedor.Value := i
Return(nil)
********************************************************************************
********************************************************************************
Function fornecedor_btn_sair_action
Fornecedor.release
Return(nil)
********************************************************************************
********************************************************************************
Function fornecedor_btn_cancelar_action
Local i
i := fornecedor.grid_fornecedor.Value
fAlt:=.f.
fInc:=.f.
fornecedor.btn_incluir.Enabled := .t.
fornecedor.btn_alterar.Enabled := .t.
fornecedor.btn_excluir.Enabled := .t.
fornecedor.btn_sair.Enabled := .t.
fornecedor.txt_descricao.Enabled := .f.
fornecedor.txt_cep.Enabled := .f.
fornecedor.combo_pessoa.Enabled := .f.
fornecedor.txt_endereco.Enabled := .f.
fornecedor.txt_numero.Enabled := .f.
fornecedor.txt_bairro.Enabled := .f.
fornecedor.txt_cidade.Enabled := .f.
fornecedor.txt_uf.Enabled := .f.
fornecedor.txt_cnpj.Enabled := .f.
fornecedor.txt_insc.Enabled := .f.
fornecedor.txt_telefone.Enabled := .f.
fornecedor.txt_fax.Enabled := .f.
fornecedor.txt_celular.Enabled := .f.
fornecedor.txt_contato.Enabled := .f.
fornecedor.txt_email.Enabled := .f.
fornecedor.txt_web.Enabled := .f.
fornecedor.grid_fornecedor.Enabled := .t.
fornecedor.btn_procura.Enabled := .t.
fornecedor.btn_gravar.Enabled := .f.
fornecedor.btn_cancelar.Enabled := .f.
fornecedor.grid_fornecedor.Setfocus
fornecedor.grid_fornecedor.Value := i
fornecedor_grid_fornecedor_onchange()
Return(nil)
********************************************************************************
********************************************************************************