TbrowseDb com Sql exemplos
Moderador: Moderadores
-
andrelucass
- Usuário Nível 3

- Mensagens: 145
- Registrado em: 25 Fev 2005 10:40
TbrowseDb com Sql exemplos
Ola a todos
Estou migrando meus bancos de dados de dbf para postgresql, usando a classe do rodrigo moreno, tenho um tbrowsedb usando dbf que faz a pesquisa no browse, a medida que o usuario vai digitando.
Gostaria de saber se alguém tem uma rotina dessa pronto, ou algum exemplo.
Atenciosamente
André Lucas Souza
Estou migrando meus bancos de dados de dbf para postgresql, usando a classe do rodrigo moreno, tenho um tbrowsedb usando dbf que faz a pesquisa no browse, a medida que o usuario vai digitando.
Gostaria de saber se alguém tem uma rotina dessa pronto, ou algum exemplo.
Atenciosamente
André Lucas Souza
-
andrelucass
- Usuário Nível 3

- Mensagens: 145
- Registrado em: 25 Fev 2005 10:40
TbrowseDb com Sql exemplos
Bom dia a todos
Alguém poderia me ajudar, só esta faltando isso para atualizar o sistema no cliente
Atenciosamente
André Lucas Souza
Alguém poderia me ajudar, só esta faltando isso para atualizar o sistema no cliente
Atenciosamente
André Lucas Souza
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
TbrowseDb com Sql exemplos
Isso não é vinculado ao banco de dados, mas ao que usa pra recuperar informações dele.
Dizer que é postgreSQL não é suficiente.
E dizer que usa a classe do rodrigo moreno... aí piorou... só quem usa a classe pode dizer.
Dizer que é postgreSQL não é suficiente.
E dizer que usa a classe do rodrigo moreno... aí piorou... só quem usa a classe pode dizer.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
andrelucass
- Usuário Nível 3

- Mensagens: 145
- Registrado em: 25 Fev 2005 10:40
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
TbrowseDb com Sql exemplos
Código: Selecionar todos
/*
TITULO : SISTEMA DE GESTÇO DE COMERCIO
DATA : 09/03/2020
PROGRAMA : CADASTROCLIENTES_MARIADB.PRG
COMENTARIO : CADASTRO/RELATORIO (/Clientes)/
*/
//#pragma -w0
//#pragma -es0
#include "hwgui.ch"
#include "SEFAZ_CIDADE.CH"
#include "SEFAZ_UF.CH"
#define PDFCLASS_PORTRAIT 1
#define PDFCLASS_LANDSCAPE 2
#define PDFCLASS_TXT 3
#define PDFCLASS_ROLLS 4
***************************************************
FUNCTION CADASTROCLIENTES( oServer )
***************************************************
LOCAL oDlg ;
, oLabel1, oLabel4 ;
, oBrowse1 ;
, oToolbar1 ;
, oColuna, bColorBlock
MEMVAR->nCombo1:= 0
MEMVAR->cProgressKey:=""
MEMVAR->cConsulta:=""
MEMVAR->cAlvo_Consulta:="CLIENTES_NRAZ_SOC"
MEMVAR->aVENBLO:= {"0 - Liberado","1 - Bloqueado"}
MEMVAR->aISENTO:= {"1 - CONTRIBUINTE DE ICMS","2 - CONTRIBUINTE ISENTO","9 - NAO CONTRIBUINTE"}
******************************************************************************************************************************************************
INIT DIALOG oDlg TITLE "Cadastro de Clientes" ;
ICON MEMVAR->SGC_ICON ;
AT 0, 0 SIZE 1008,600 CLIPPER NOEXIT ;
ON INIT {|| onDlgInit( oDlg ) }
@ 4,70 BROWSE oBrowse1 ARRAY OF oDlg SIZE 1000,497 STYLE WS_BORDER + WS_VSCROLL +WS_HSCROLL ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;
ON CLICK {|| oBrowse1_onClick( oDlg, oServer ) } ;
ON KEYDOWN {|oBrowse1,nKeyPress| oBrowse1_onKeyDown( oBrowse1,nKeyPress, oDlg, oServer ) }
oBrowse1:oStyleHead := HStyle():New( { 0xffffff, 0xbbbbbb }, 1,, 0.4, 16759929 )
oBrowse1:oFont := HFont():Add( '',0,-15,700,,,)
oBrowse1:freeze := 2
oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_NRAZ_SOC LIMIT 500" )
oBrowse1:AddColumn( HColumn():New( "CODIGO",hwg_ColumnArBlock(),"C",09,0,.F.,,,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_UCLIENTE" ), MEMVAR->cAlvo_Consulta:="CLIENTES_UCLIENTE",obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: CODIGO") } ,,,,))
oBrowse1:AddColumn( HColumn():New( "NOME CLIENTE",hwg_ColumnArBlock(),"C",65,0,.F.,,,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_NRAZ_SOC" ), MEMVAR->cAlvo_Consulta:="CLIENTES_NRAZ_SOC", obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: NOME CLIENTE") } ,,,,))
oBrowse1:AddColumn( HColumn():New( "CPF/CNPJ",hwg_ColumnArBlock(),"C",18,0,.F.,,,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_CPFCGC"), MEMVAR->cAlvo_Consulta:="CLIENTES_CPFCGC", obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: CPF/CNPJ") } ,,,,))
oBrowse1:AddColumn( HColumn():New( "FONE", hwg_ColumnArBlock(),"C",18,0,.F.,,,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_FONE"), MEMVAR->cAlvo_Consulta:="CLIENTES_FONE", obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: FONE") } ,,,,))
oBrowse1:AddColumn( HColumn():New('E-Mail', hwg_ColumnArBlock() ,'C',60, 0 ,.F.,,,,,,,,))
oBrowse1:AddColumn( HColumn():New( "Insc.Estadual",hwg_ColumnArBlock(),"C",18,0,.F.,,, ) )
oBrowse1:AddColumn( HColumn():New( "TC",hwg_ColumnArBlock(),"C",4,0,.F., ) )
oBrowse1:AddColumn( HColumn():New( "Logradouro",hwg_ColumnArBlock(),"C",60,0,.F., ) )
oBrowse1:AddColumn( HColumn():New( "Numero", hwg_ColumnArBlock(),'N',9,0,.F.,1,2, ) )
oBrowse1:AddColumn( HColumn():New( "Complemento",hwg_ColumnArBlock(),"C",60,0,.F., ) )
oBrowse1:AddColumn( HColumn():New('Bairro', hwg_ColumnArBlock() ,'C',60, 0 ,.F.,,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('CEP', hwg_ColumnArBlock() ,'C',12, 0 ,.F.,,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Cod.Pais', hwg_ColumnArBlock() ,'C',7, 0 ,.F.,,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Pais', hwg_ColumnArBlock() ,'C',50, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('UF', hwg_ColumnArBlock() ,'C',4, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Cod.Mun.', hwg_ColumnArBlock() ,'C',7, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Municipio', hwg_ColumnArBlock() ,'C',50, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Contato', hwg_ColumnArBlock() ,'C',50, 0 ,.F.,,,,,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('Operador/Computador DATA/HORA', hwg_ColumnArBlock() ,'C',60, 0 ,.F.,,,,,,,,))
oBrowse1:AddColumn( HColumn():New('CLIENTES ID', hwg_ColumnArBlock() ,'N',14, 0 ,.F.,1,2,,,,,,;
{|| oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY CLIENTES_ID"), MEMVAR->cAlvo_Consulta:="CLIENTES_ID", obrowse1:Refresh(), hwg_WriteStatus( oDlg,3,"Ordem: CHAVE ID") } ,,,,))
bColorBlock := {|| {0,16777215,, } }
FOR EACH oColuna IN oBrowse1:aColumns
oColuna:bColorBlock := bColorBlock
NEXT
@ 1,-1 TOOLBAR oToolbar1 SIZE hwg_Getdesktopwidth(),43
oToolbar1:AddButton("CMDINSERT", , 0, 16, "Inclui" ,{||CADCLIENTES( oServer, , "INCLUIR" ), oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY " + MEMVAR->cAlvo_Consulta ), obrowse1:REFRESH()},'Incluir novo Cliente','', "oToolbutton1")
oToolbar1:AddButton("CMDEDIT", , 0, 16, "Altera" ,{||CADCLIENTES( oServer, LTRIM(str(oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 20])), "ALTERAR" ), oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY " + MEMVAR->cAlvo_Consulta ), obrowse1:REFRESH()},'Altera os dados do Cliente','', "oToolbutton2")
oToolbar1:AddButton("CMDDELETE", , 0, 16, "Exclui" ,{||CADCLIENTES_EXCLUI( oDlg, oServer ), oBrowse1:aArray := CARREGA_CLIENTES( oServer, "ORDER BY " + MEMVAR->cAlvo_Consulta ), obrowse1:REFRESH() },'Exclui os dados do Cliente','', "oToolbutton3")
// oToolbar1:AddButton("CLFLBMP", , 4, 16, "Consulta" ,{||CONSULTACADCLIENTES( )},'Consulta dados do Cadastro de Clientes','', "oToolbutton5")
oToolbar1:AddButton("rel_print",, 4, 128, "Relatórios" ,,, {{"Cadastro de Clientes ", 4,{|| RELATORIO_CLIENTES( oServer ) }}};
, "oToolbutton6")
oToolbar1:AddButton("EXIT16BMP", , 4, 16, "Sair" ,{|| oDlg:Close() },'Sair da rotina','', "oToolbutton7")
oToolbar1:CreateTool()
ADD STATUS PANEL TO oDlg HEIGHT 30 PARTS 200,120,300
@ 4,45 SAY oLabel1 CAPTION "Pesquisar" SIZE 138,25 ;
STYLE SS_CENTER +WS_DLGFRAME
@ 150,45 SAY oLabel4 CAPTION "" SIZE 410,25 ;
STYLE WS_BORDER;
COLOR 16777215 BACKCOLOR 255
ACTIVATE DIALOG oDlg CENTER
RETURN NIL
******************************************************************
STATIC FUNCTION CARREGA_CLIENTES( oServer, cAlvo_Consulta )
******************************************************************
LOCAL aResult :={};
, oQuery;
, cQuery
cQuery := "SELECT CLIENTES_UCLIENTE, ";
+ "CLIENTES_NRAZ_SOC, ";
+ "CLIENTES_CPFCGC, ";
+ "CLIENTES_FONE, ";
+ "CLIENTES_EMAIL, ";
+ "CLIENTES_INSEST, ";
+ "CLIENTES_ISENTO, ";
+ "CLIENTES_ENDER, ";
+ "CLIENTES_NUMERO, ";
+ "CLIENTES_COMPLEM, ";
+ "CLIENTES_BAIR, ";
+ "CLIENTES_CEP, ";
+ "CLIENTES_CODPAIS, ";
+ "CLIENTES_PAIS, ";
+ "CLIENTES_UF, ";
+ "CLIENTES_CODMUN, ";
+ "CLIENTES_CIDADE, ";
+ "CLIENTES_CONTATO, ";
+ "CLIENTES_QUEM_BLOQ, ";
+ "CLIENTES_ID ";
+ "from CLIENTES ";
+ cAlvo_Consulta
oQuery := oServer:Execute(cQuery)
DO WHILE ! oQuery:Eof()
aAdd( aResult, {oQuery:Fields( "CLIENTES_UCLIENTE" ):Value,;
oQuery:Fields( "CLIENTES_NRAZ_SOC" ):Value,;
oQuery:Fields( "CLIENTES_CPFCGC" ):Value,;
oQuery:Fields( "CLIENTES_FONE" ):Value,;
oQuery:Fields( "CLIENTES_EMAIL" ):Value,;
oQuery:Fields( "CLIENTES_INSEST" ):Value,;
oQuery:Fields( "CLIENTES_ISENTO" ):Value,;
oQuery:Fields( "CLIENTES_ENDER" ):Value,;
oQuery:Fields( "CLIENTES_NUMERO" ):Value,;
oQuery:Fields( "CLIENTES_COMPLEM" ):Value,;
oQuery:Fields( "CLIENTES_BAIR" ):Value,;
oQuery:Fields( "CLIENTES_CEP" ):Value,;
oQuery:Fields( "CLIENTES_CODPAIS" ):Value,;
oQuery:Fields( "CLIENTES_PAIS" ):Value,;
oQuery:Fields( "CLIENTES_UF" ):Value,;
oQuery:Fields( "CLIENTES_CODMUN" ):Value,;
oQuery:Fields( "CLIENTES_CIDADE" ):Value,;
oQuery:Fields( "CLIENTES_CONTATO" ):Value,;
oQuery:Fields( "CLIENTES_QUEM_BLOQ" ):Value,;
oQuery:Fields( "CLIENTES_ID" ):Value} )
oQuery:MoveNext()
ENDDO
oQuery:Close()
RETURN aResult
******************************************************************
STATIC FUNCTION onDlgInit( oDlg )
******************************************************************
oDlg:oToolbar1:oToolbutton1:ENABLE()
oDlg:oToolbar1:oToolbutton2:ENABLE()
IF strzero(M->NIV_ACESSO,1,0)$"689"
oDlg:oToolbar1:oToolbutton3:ENABLE()
ENDIF
hwg_WriteStatus( oDlg,1,"Tabela: CLIENTES")
hwg_WriteStatus( oDlg,3,"Ordem: NOME CLIENTE")
RETURN Nil
******************************************************
STATIC FUNCTION CADCLIENTES_EXCLUI( oDlg, oServer )
******************************************************
LOCAL cQuery;
, cQuery1;
IF hwg_MsgYesNo("DESEJA excluir o Cliente, Tem certeza disso ?","Excluindo Cliente")
cQuery1:="DELETE FROM clientes WHERE CLIENTES_Id='" + LTRIM(str(oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 20])) + "'"
oServer:Execute(cQuery1)
cQuery:=[INSERT INTO logtrans (LOGTRANS_OPERADOR, LOGTRANS_COMPUTADOR, LOGTRANS_TEXTO ) VALUES ( "] + M->OPERADOR + [", "] + rtrim(hwg_GetComputerName()) + [", "] + cQuery1 + (oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 2]) + [")]
oServer:Execute(cQuery)
ENDIF
RETURN NIL
***********************************************************
STATIC FUNCTION oBrowse1_onClick( oDlg, oServer )
***********************************************************
IF hwg_LastKey() == MK_LBUTTON
CADCLIENTES( oServer, LTRIM(str(oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 20])), "CONSULTAR" )
oDlg:oBrowse1:Refresh()
ENDIF
RETURN .T.
*******************************************************************
STATIC FUNCTION oBrowse1_onKeyDown( oBrowse1, nKey, oDlg, oServer )
*******************************************************************
LOCAL nPosicao:=0;
, nKeyPress:=nkey;
, cConsulta;
KSETCAPS(.T.);
IF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ "34|33|37|38|39|40|20|16"
MEMVAR->cProgressKey:=""
oDlg:oLabel4:settext(MEMVAR->cProgressKey)
RETURN .T.
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [90]
nKeyPress := 90
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [96]
nKeyPress := 48
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [97]
nKeyPress := 49
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [98]
nKeyPress := 50
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [99]
nKeyPress := 51
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [100]
nKeyPress := 52
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [101]
nKeyPress := 53
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [102]
nKeyPress := 54
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [103]
nKeyPress := 55
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [104]
nKeyPress := 56
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [105]
nKeyPress := 57
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [106]
nKeyPress := 42
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [190]
nKeyPress := 46
ELSEIF nKeyPress == Asc("8") .AND. hwg_isCtrlShift( .F.,.T. )
nKeyPress := 42
ENDIF
IF nKeyPress = VK_RETURN
CADCLIENTES( oServer, LTRIM(str(oDlg:oBrowse1:aArray[ oDlg:oBrowse1:nCurrent, 20])), "CONSULTAR" )
oDlg:oBrowse1:Refresh()
RETURN .T.
ELSEIF nKeyPress = VK_ESCAPE
oDlg:Close()
RETURN .T.
ENDIF
If nKeyPress # 8
MEMVAR->cProgressKey += Chr(nKeyPress)
nPosicao:=AScan(oDlg:oBrowse1:aArray,MEMVAR->cProgressKey)
oDlg:oLabel4:settext(MEMVAR->cProgressKey)
cConsulta:= "WHERE " + MEMVAR->cAlvo_Consulta + " LIKE '" + MEMVAR->cProgressKey + "%'" + " ORDER BY " + MEMVAR->cAlvo_Consulta
oBrowse1:aArray := CARREGA_CLIENTES( oServer, cConsulta )
oDlg:obrowse1:REFRESH()
ELSEIF nKeyPress = 8 .AND. Len(MEMVAR->cProgressKey) >= 1
MEMVAR->cProgressKey:=Left(MEMVAR->cProgressKey,Len(MEMVAR->cProgressKey) - 1)
nPosicao:=AScan(oDlg:oBrowse1:aArray,MEMVAR->cProgressKey)
oDlg:oLabel4:settext(MEMVAR->cProgressKey)
cConsulta:= "WHERE " + MEMVAR->cAlvo_Consulta + " LIKE '" + MEMVAR->cProgressKey + "%'" + " ORDER BY " + MEMVAR->cAlvo_Consulta
oBrowse1:aArray := CARREGA_CLIENTES( oServer, cConsulta )
oDlg:obrowse1:REFRESH()
ENDIF
IF nPosicao # 0
cConsulta:= "WHERE " + MEMVAR->cAlvo_Consulta + " LIKE '" + MEMVAR->cProgressKey + "%'" + " ORDER BY " + MEMVAR->cAlvo_Consulta
oBrowse1:aArray := CARREGA_CLIENTES( oServer, cConsulta )
oDlg:obrowse1:REFRESH()
ENDIF
return .T.
***********************************************************
STATIC FUNCTION CADCLIENTES( oServer, cClientes_Id, cAcao )
***********************************************************
LOCAL oDlg;
, oLine1;
, oEdit1, oEdit2, oEdit3, oEdit4, oEdit5, oEdit6, oEdit7, oEdit8, oEdit9, oEdit10, oEdit11, oEdit12, oEdit13, oEdit14 ;
, oEdit18;
, oLabel1, oLabel2, oLabel3, oLabel4, oLabel5, oLabel6, oLabel7, oLabel8, oLabel9, oLabel10, oLabel11, oLabel12, oLabel13, oLabel14, oLabel15 ;
, oLabel16, oLabel17, oLabel18, oLabel19, oLabel20, oLabel21, oLabel23, oLabel24, oLabel25 ;
, oOwnerbutton1, oOwnerbutton2, oOwnerbutton4;
, oCombo1, oCombo2, oCombo3, oCombo4, oCombo6 ;
, oLink1, oLink2 ;
, oPAIS, oUF, oCIDADE;
, oQuery;
, cQuery;
, oGroup1;
MEMVAR->aPAIS:= {}
MEMVAR->aUF:= {}
MEMVAR->aMunicipios:= {}
MEMVAR->nCombo1 := 1
MEMVAR->nCombo2 := 1
MEMVAR->nCombo3 := 1
MEMVAR->nCombo4 := 1
MEMVAR->nCombo5 := 1
MEMVAR->nCombo6 := 1
hb_Default( @cAcao, "CONSULTAR" )
hb_Default( @cClientes_Id, "0" )
IF cAcao = "INCLUIR"
MEMVAR->ID :=0
MEMVAR->TIPCLI :=1
MEMVAR->NRAZ_SOC :=SPACE(60)
MEMVAR->TIPDOC :=1
MEMVAR->CPFCGC :=SPACE(18)
MEMVAR->CPFANT :="999999999999999999"
MEMVAR->INSEST :=SPACE(18)
MEMVAR->INSMUN :=SPACE(18)
MEMVAR->ISENTO :=SPACE(01)
MEMVAR->SUFRAMA :=SPACE(18)
MEMVAR->EMAIL :=SPACE(60)
MEMVAR->ENDER :=SPACE(60)
MEMVAR->NUMERO :=0
MEMVAR->COMPLEM :=SPACE(60)
MEMVAR->BAIR :=SPACE(50)
MEMVAR->CEP :=space(09)
MEMVAR->CODPAIS :="1058"
MEMVAR->PAIS :="BRASIL"
MEMVAR->UF :="AC"
MEMVAR->CIDADE :="RIO BRANCO"
MEMVAR->CODMUN :="1200401"
MEMVAR->FONE :=SPACE(14)
MEMVAR->CONTATO :=SPACE(80)
MEMVAR->LIMCRE :=0.00
MEMVAR->TOTCRE :=0.00
MEMVAR->VENBLO :="1"
MEMVAR->DATCAD :=M->DAT_HOJE
MEMVAR->DATALT :=M->DAT_HOJE
MEMVAR->USUALT :=M->OPERADOR
MEMVAR->TAXCLI :=0.00
MEMVAR->NUMPAR :=0.00
MEMVAR->PERDES :=0.00
MEMVAR->VALMIN :=0.00
ELSE
cQuery := "SELECT CLIENTES_ID, ";
+ "CLIENTES_TIPCLI, ";
+ "CLIENTES_NRAZ_SOC, ";
+ "CLIENTES_TIPDOC, ";
+ "CLIENTES_CPFCGC, ";
+ "CLIENTES_INSEST, ";
+ "CLIENTES_INSMUN, ";
+ "CLIENTES_ISENTO, ";
+ "CLIENTES_SUFRAMA, ";
+ "CLIENTES_EMAIL, ";
+ "CLIENTES_ENDER, ";
+ "CLIENTES_NUMERO, ";
+ "CLIENTES_COMPLEM, ";
+ "CLIENTES_BAIR, ";
+ "CLIENTES_CEP, ";
+ "CLIENTES_CODPAIS, ";
+ "CLIENTES_PAIS, ";
+ "CLIENTES_UF, ";
+ "CLIENTES_CIDADE, ";
+ "CLIENTES_CODMUN, ";
+ "CLIENTES_FONE, ";
+ "CLIENTES_CONTATO, ";
+ "CLIENTES_LIMCRE, ";
+ "CLIENTES_TOTCRE, ";
+ "CLIENTES_VENBLO, ";
+ "CLIENTES_DATCAD, ";
+ "CLIENTES_DATALT, ";
+ "CLIENTES_USUALT, ";
+ "CLIENTES_TAXCLI, ";
+ "CLIENTES_NUMPAR, ";
+ "CLIENTES_PERDES, ";
+ "CLIENTES_VALMIN ";
+ "FROM CLIENTES ";
+ "WHERE CLIENTES_ID = ";
+ "'" + cClientes_Id + "'"
oQuery := oServer:Execute(cQuery)
MEMVAR->ID :=cClientes_Id
MEMVAR->TIPCLI :=VAL(oQuery:Fields( "CLIENTES_TIPCLI" ):Value)
MEMVAR->NRAZ_SOC :=oQuery:Fields( "CLIENTES_NRAZ_SOC" ):Value
MEMVAR->TIPDOC :=VAL(oQuery:Fields( "CLIENTES_TIPDOC" ):Value)
MEMVAR->CPFCGC :=oQuery:Fields( "CLIENTES_CPFCGC" ):Value
MEMVAR->INSEST :=oQuery:Fields( "CLIENTES_INSEST" ):Value
MEMVAR->INSMUN :=oQuery:Fields( "CLIENTES_INSMUN" ):Value
MEMVAR->ISENTO :=oQuery:Fields( "CLIENTES_ISENTO" ):Value
MEMVAR->SUFRAMA :=oQuery:Fields( "CLIENTES_SUFRAMA" ):Value
MEMVAR->EMAIL :=oQuery:Fields( "CLIENTES_EMAIL" ):Value
MEMVAR->ENDER :=oQuery:Fields( "CLIENTES_ENDER" ):Value
MEMVAR->NUMERO :=oQuery:Fields( "CLIENTES_NUMERO" ):Value
MEMVAR->COMPLEM :=oQuery:Fields( "CLIENTES_COMPLEM" ):Value
MEMVAR->BAIR :=oQuery:Fields( "CLIENTES_BAIR" ):Value
MEMVAR->CEP :=oQuery:Fields( "CLIENTES_CEP" ):Value
MEMVAR->CODPAIS :=oQuery:Fields( "CLIENTES_CODPAIS" ):Value
MEMVAR->PAIS :=oQuery:Fields( "CLIENTES_PAIS" ):Value
MEMVAR->UF :=oQuery:Fields( "CLIENTES_UF" ):Value
MEMVAR->CIDADE :=oQuery:Fields( "CLIENTES_CIDADE" ):Value
MEMVAR->CODMUN :=oQuery:Fields( "CLIENTES_CODMUN" ):Value
MEMVAR->FONE :=oQuery:Fields( "CLIENTES_FONE" ):Value
MEMVAR->CONTATO :=oQuery:Fields( "CLIENTES_CONTATO" ):Value
MEMVAR->LIMCRE :=oQuery:Fields( "CLIENTES_LIMCRE" ):Value
MEMVAR->TOTCRE :=oQuery:Fields( "CLIENTES_TOTCRE" ):Value
MEMVAR->VENBLO :=oQuery:Fields( "CLIENTES_VENBLO" ):Value
MEMVAR->DATCAD :=oQuery:Fields( "CLIENTES_DATCAD" ):Value
MEMVAR->DATALT :=M->DAT_HOJE
MEMVAR->USUALT :=M->OPERADOR
MEMVAR->TAXCLI :=oQuery:Fields( "CLIENTES_TAXCLI" ):Value
MEMVAR->NUMPAR :=oQuery:Fields( "CLIENTES_NUMPAR" ):Value
MEMVAR->PERDES :=oQuery:Fields( "CLIENTES_PERDES" ):Value
MEMVAR->VALMIN :=oQuery:Fields( "CLIENTES_VALMIN" ):Value
MEMVAR->CPFANT :=MEMVAR->CPFCGC
ENDIF
FOR EACH oPAIS IN SEFAZ_CIDADE
IF oPAIS[1] == "EX"
AAdd(MEMVAR->aPAIS,oPAIS[3])
ENDIF
NEXT
FOR EACH oUF IN SEFAZ_UF
AAdd(MEMVAR->aUF,oUF[1])
NEXT
FOR EACH oCIDADE IN SEFAZ_CIDADE
IF oCIDADE[1] == MEMVAR->UF
AAdd(MEMVAR->aMunicipios,oCIDADE[3])
ENDIF
NEXT
********************************************************************************
INIT DIALOG oDlg TITLE "Cadastro de Cliente - "+cAcao ;
ICON MEMVAR->SGC_ICON ;
AT 0, 0 SIZE 1008,600 CLIPPER NOEXIT
hwg_SetColorinFocus( oDlg,, 13172680 )
@ 0,175 LINE oLine1 LENGTH 1008
oLine1:Anchor := 11
@ 415,15 SAY oLink1 CAPTION "http://www.sintegra.gov.br" ;
LINK 'http://www.sintegra.gov.br/new_bv.html' SIZE 180,22
@ 79,17 SAY oLabel2 CAPTION "CNPJ/CPF" SIZE 67,21
@ 150,15 GET oEdit2 VAR MEMVAR->CPFCGC SIZE 201,24 ;
STYLE ES_LEFT MAXLENGTH 14 VALID {|| VERIFICA_CPFCNPJ( oServer, MEMVAR->CPFCGC, MEMVAR->CPFANT, cAcao ) }
@ 16,49 SAY oLabel1 CAPTION "Nome/Razão Social" SIZE 131,21
@ 150,47 GET oEdit1 VAR MEMVAR->NRAZ_SOC SIZE 657,24 STYLE ES_UPPERCASE PICTURE '@!' MAXLENGTH 60 VALID {|| VERIFICA_NRAZ_SOC( oDlg, cAcao ) }
oEdit1:Anchor := 11
@ 25,81 SAY oLabel3 CAPTION "Inscrição Estadual" SIZE 122,21
@ 150,79 GET oEdit3 VAR MEMVAR->INSEST SIZE 202,24 ;
STYLE ES_LEFT MAXLENGTH 15 ;
VALID {|| VERIFICA_INCRICAO_ESTADUAL( ) }
@ 404,81 SAY oLabel7 CAPTION "Tipo Contribuinte" SIZE 112,21
@ 521,79 GET COMBOBOX oCombo1 VAR MEMVAR->nCombo1 ;
ITEMS MEMVAR->aISENTO ;
SIZE 218,24
@ 18,113 SAY oLabel4 CAPTION "Inscrição Municipal" SIZE 128,21
@ 150,111 GET oEdit4 VAR MEMVAR->INSMUN SIZE 202,24 ;
STYLE ES_RIGHT MAXLENGTH 15
@ 397,113 SAY oLabel5 CAPTION "Inscrição Suframa" SIZE 119,21
@ 521,111 GET oEdit5 VAR MEMVAR->SUFRAMA SIZE 201,24 ;
STYLE ES_RIGHT MAXLENGTH 15
@ 101,146 SAY oLabel6 CAPTION "E-Mail" SIZE 43,21
@ 149,144 GET oEdit6 VAR MEMVAR->EMAIL SIZE 657,24 STYLE ES_LOWERCASE MAXLENGTH 60
oEdit6:Anchor := 11
@ 69,185 SAY oLabel9 CAPTION "CEP" SIZE 29,24
@ 105,183 GET oEdit8 VAR MEMVAR->CEP SIZE 80,24 STYLE ES_RIGHT PICTURE '99999-999' MAXLENGTH 9
@ 246,187 SAY oLink2 CAPTION "http://www.correios.com.br" ;
LINK 'http://www.buscacep.correios.com.br/sistemas/buscacep/buscaEndereco.cfm' SIZE 181,22
@ 22,216 SAY oLabel10 CAPTION "Logradouro" SIZE 76,24
@ 105,214 GET oEdit9 VAR MEMVAR->ENDER SIZE 703,24 STYLE ES_UPPERCASE PICTURE '@!' MAXLENGTH 60
oEdit9:Anchor := 11
@ 45,248 SAY oLabel11 CAPTION "Numero" SIZE 53,21
@ 105,246 GET oEdit11 VAR MEMVAR->NUMERO SIZE 80,24 ;
STYLE ES_RIGHT MAXLENGTH 20
@ 7,280 SAY oLabel8 CAPTION "Complemento" SIZE 91,24
@ 104,278 GET oEdit7 VAR MEMVAR->COMPLEM SIZE 490,24 STYLE ES_UPPERCASE PICTURE '@!' MAXLENGTH 60
@ 56,311 SAY oLabel12 CAPTION "Bairro" SIZE 42,24
@ 105,309 GET oEdit13 VAR MEMVAR->BAIR SIZE 490,24 STYLE ES_UPPERCASE PICTURE '@!' MAXLENGTH 50
@ 67,341 SAY oLabel13 CAPTION "Pais" SIZE 31,24
@ 105,339 GET COMBOBOX oCombo4 VAR MEMVAR->nCombo4 ;
ITEMS MEMVAR->aPAIS ;
SIZE 259,24 DISPLAYCOUNT 8
@ 78,376 SAY oLabel14 CAPTION "UF" SIZE 20,24
@ 105,374 GET COMBOBOX oCombo2 VAR MEMVAR->nCombo2 ;
ITEMS MEMVAR->aUF ;
SIZE 65,24 DISPLAYCOUNT 8 ;
ON CHANGE {|| oCombo3:SetItem( Ascan(CARREGA_MUNICIPIOS( MEMVAR->aUF[MEMVAR->nCombo2] ),RTRIM(MEMVAR->CIDADE) ) ), oCombo3:REFRESH() }
@ 33,407 SAY oLabel15 CAPTION "Municipio" SIZE 65,24
@ 105,405 GET COMBOBOX oCombo3 VAR MEMVAR->nCombo3 ITEMS MEMVAR->aMunicipios ;
SIZE 259,24 DISPLAYCOUNT 7
@ 40,436 SAY oLabel16 CAPTION "Telefone" SIZE 58,24
@ 105,434 GET oEdit10 VAR MEMVAR->FONE SIZE 260,24 MAXLENGTH 14 ;
VALID {|| VERIFICA_TELEFONE( ) }
@ 47,465 SAY oLabel17 CAPTION "Contato" SIZE 51,24
@ 105,463 GET oEdit14 VAR MEMVAR->CONTATO SIZE 495,24 MAXLENGTH 80
@ 355,14 OWNERBUTTON oOwnerbutton1 SIZE 24,24 ;
TEXT '' ;
COORDINATES 0, 0, 0, 0 ;
BITMAP 'FINDBMP' FROM RESOURCE TRANSPARENT;
COORDINATES 0, 0, 0, 0 ;
ON CLICK {|| oEdit2:setfocus(), CADASTROCLIENTES_CONSULTA_CNPJ( oDlg, oServer ) }
@ 191,183 OWNERBUTTON oOwnerbutton4 SIZE 24,24 ;
TEXT '' ;
COORDINATES 0, 0, 0, 0 ;
BITMAP 'FINDBMP' FROM RESOURCE TRANSPARENT;
COORDINATES 0, 0, 0, 0 ;
ON CLICK {|| oEdit8:setfocus(), CADASTROCLIENTES_CONSULTA_CEP( oDlg, MEMVAR->CEP )}
IF cAcao != "CONSULTAR"
@ 904,560 OWNERBUTTON oOwnerbutton2 SIZE 98,32 DISABLED ;
TEXT 'Salvar' ;
COORDINATES 30, 0, 0, 0 ;
BITMAP 'APPLYBMP' FROM RESOURCE TRANSPARENT;
COORDINATES 5, 0, 0, 0;
ON CLICK {|| SALVA_CLIENTES( oServer, cClientes_Id, cAcao ), hwg_Enddialog() }
oOwnerbutton2:Anchor := 12
ENDIF
@ 830,240 GROUPBOX oGroup1 CAPTION "" SIZE 173,267
@ 840,251 SAY oLabel21 CAPTION "Faturamento" SIZE 110,21
@ 840,272 GET COMBOBOX oCombo6 VAR MEMVAR->nCombo6 ITEMS MEMVAR->aVENBLO SIZE 154,24 ;
ON CHANGE {|| oCombo6_onChange( oDlg, oCombo6:GETTEXT( ) ) }
@ 840,297 SAY oLabel23 CAPTION "Limite de crédito" SIZE 110,21
@ 840,319 GET oEdit18 VAR MEMVAR->LIMCRE SIZE 154,24 ;
STYLE ES_RIGHT +WS_DISABLED PICTURE '@E 999,999,999.99' MAXLENGTH 14
@ 840,344 SAY oLabel18 CAPTION "Utilizado" SIZE 60,21
@ 840,366 GET oEdit12 VAR MEMVAR->TOTCRE SIZE 154,24 ;
STYLE ES_RIGHT+WS_DISABLED PICTURE '@E 999,999,999.99' MAXLENGTH 14
@ 840,392 SAY oLabel19 CAPTION "Data Inclusão" SIZE 91,21 ;
@ 840,415 SAY oLabel24 CAPTION dtoc(MEMVAR->DATCAD) SIZE 154,30 ;
STYLE WS_BORDER+SS_CENTER ;
COLOR 16777215 BACKCOLOR 255 ;
FONT HFont():Add( '',0,-21,400,,,)
@ 840,449 SAY oLabel20 CAPTION "Data ultima Alteração" SIZE 141,21 ;
@ 840,470 SAY oLabel25 CAPTION dtoc(MEMVAR->DATALT) SIZE 154,30 ;
STYLE WS_BORDER+SS_CENTER ;
COLOR 16777215 BACKCOLOR 255 ;
FONT HFont():Add( '',0,-21,400,,,)
IF MEMVAR->UF # "AC"
CARREGA_MUNICIPIOS( oDlg, MEMVAR->UF )
ENDIF
oCombo6:SetItem( Ascan(MEMVAR->aVENBLO,MEMVAR->VENBLO ) )
oCombo1:SetItem( Ascan(MEMVAR->aISENTO,MEMVAR->ISENTO ) )
oCombo4:SetItem( Ascan(MEMVAR->aPAIS,RTRIM(MEMVAR->PAIS) ) )
oCombo2:SetItem( Ascan(MEMVAR->aUF,RTRIM(MEMVAR->UF) ) )
oCombo3:SetItem( Ascan(MEMVAR->aMunicipios,RTRIM(MEMVAR->CIDADE) ) )
ACTIVATE DIALOG oDlg CENTER
RETURN NIL
************************************************
STATIC FUNCTION VERIFICA_NRAZ_SOC( oDlg, cAcao )
************************************************
IF cAcao = "CONSULTAR"
RETURN .T.
ENDIF
IF MEMVAR->NRAZ_SOC = SPACE(60)
oDlg:oOwnerbutton2:DISABLE()
RETURN .F.
ENDIF
oDlg:oOwnerbutton2:ENABLE()
RETURN .T.
**************************************************
STATIC FUNCTION CARREGA_MUNICIPIOS( mUF )
**************************************************
LOCAL oCIDADE, nI
DO WHILE .T.
FOR nI = Len( MEMVAR->aMunicipios ) TO 1 STEP -1
hb_ADel( MEMVAR->aMunicipios, nI, .T. )
NEXT
IF Len(MEMVAR->aMunicipios) <= 0
EXIT
ENDIF
ENDDO
FOR EACH oCIDADE IN SEFAZ_CIDADE
IF oCIDADE[1] == mUF
AAdd(MEMVAR->aMunicipios,oCIDADE[3])
ENDIF
NEXT
RETURN( MEMVAR->aMunicipios )
*********************************************************************
STATIC FUNCTION CADASTROCLIENTES_CONSULTA_CNPJ( oDlg, oServer )
*********************************************************************
LOCAL oDlgCnpj;
, oOwnerbutton2;
, oCNPJ;
, oLabel1, oLabel2;
, oBitmap1;
, oCombo1;
, nCombo1:=1;
, cCNPJ:=MEMVAR->CPFCGC;
, oQuery;
oQuery:= oServer:Execute("SELECT CERTIFICADO_COMPUTADOR FROM CERTIFICADO WHERE CERTIFICADO_COMPUTADOR = '" + rtrim(hwg_GetComputerName()) + "'")
IF oQuery:Eof()
hwg_MsgInfo("Este Computador não possui CERTIFICADO DIGITAL instalado"+ HB_EOL()+"Pesquisa não poderá ser efetuada")
oQuery:Close()
return .T.
endif
oQuery:Close()
INIT DIALOG oDlgCnpj TITLE "CONSULTA CNPJ" ;
ICON MEMVAR->SGC_ICON ;
AT 0, 0 SIZE 445,168 CLIPPER NOEXIT
hwg_SetColorinFocus( oDlg,, 13172680 )
@ 24,35 BITMAP oBitmap1 SHOW 'searchonline' FROM RESOURCE SIZE 82,82
@ 333,100 OWNERBUTTON oOwnerbutton2 SIZE 98,32 ;
TEXT "Pesquisa" ;
COORDINATES 30, 0, 0, 0 ;
BITMAP 'APPLYBMP' FROM RESOURCE TRANSPARENT;
COORDINATES 5, 0, 0, 0;
ON CLICK {|| CADASTROCLIENTES_PESQUISA_CNPJ(oDlg, oServer, cCNPJ, MEMVAR->aUF[nCombo1] ), oDlg:close() }
oOwnerbutton2:Anchor := 12
@ 188,29 GET oCNPJ VAR cCNPJ SIZE 246,24 MAXLENGTH 14
@ 110,32 SAY oLabel1 CAPTION "CNPJ:" SIZE 72,21 ;
STYLE SS_RIGHT
@ 158,68 SAY oLabel2 CAPTION "UF:" SIZE 24,21
@ 188,65 GET COMBOBOX oCombo1 VAR nCombo1 ;
ITEMS MEMVAR->aUF ;
SIZE 63,24 DISPLAYCOUNT 5
ACTIVATE DIALOG oDlgCnpj CENTER
RETURN oDlg:lresult
********************************************************************************
STATIC FUNCTION CADASTROCLIENTES_PESQUISA_CNPJ( oDlg, oServer, cCNPJ, cUF)
********************************************************************************
LOCAL oQuery1;
, oQuery2;
, oSefaz;
, cRetorno;
, cStat;
, cCIDADE;
oQuery1:= oServer:Execute("SELECT FLAG_n_tpAmb FROM FLAG ")
oQuery2:= oServer:Execute("SELECT CERTIFICADO_NOMCERT FROM CERTIFICADO WHERE CERTIFICADO_COMPUTADOR = '" + rtrim(hwg_GetComputerName()) + "'")
IF oQuery2:Eof()
hwg_MsgInfo("Este Computador não possui CERTIFICADO DIGITAL instalado"+ HB_EOL()+"Pesquisa não poderá ser efetuada")
oQuery1:Close()
oQuery2:Close()
return .T.
endif
IF LEN(RTRIM(cCNPJ)) < 14
hwg_MsgInfo("CONSULTA AO CADASTRO DE CONTRIBUINTES SOMENTE POR CNPJ "+ HB_EOL()+ HB_EOL()+ "Clique no LINK para acesso ao SINTEGRA" )
RETURN NIL
ENDIF
oSefaz:= SefazClass():New()
oSefaz:cCertificado := TRIM(oQuery2:Fields( "CERTIFICADO_NOMCERT" ):Value)
// hwg_MsgInfo("["+TRIM(cCnpj)+"]"+"["+cUF+"]")
cRetorno:=oSefaz:NFeConsultaCadastro( TRIM(cCnpj), cUF, oSefaz:cCertificado, oQuery1:Fields( "FLAG_n_tpAmb" ):Value )
if XmlNode(cRetorno, "cStat") $ "111,112,259"
cStat :=XmlNode(cRetorno, "cStat")
MEMVAR->CPFCGC :=cCNPJ
MEMVAR->NRAZ_SOC :=XmlNode(cRetorno, "xNome") + space(60-len(XmlNode(cRetorno, "xNome")))
MEMVAR->NRAZ_FANT :=XmlNode(cRetorno, "xFant") + space(60-len(XmlNode(cRetorno, "xFant")))
MEMVAR->INSEST :=XmlNode(cRetorno, "IE") + space(18-len(XmlNode(cRetorno, "IE")))
MEMVAR->ISENTO :=XmlNode(cRetorno, "cSit")
MEMVAR->CEP :=SUBSTR(XmlNode(cRetorno, "CEP"),1,5)+"-"+SUBSTR(XmlNode(cRetorno, "CEP"),6,3)
MEMVAR->NUMERO :=val(XmlNode(cRetorno, "nro"))
MEMVAR->BAIR :=XmlNode(cRetorno, "xBairro")
cCIDADE :=XmlNode(cRetorno, "xMun")
cUF :=XmlNode(cRetorno, "UF")
MEMVAR->ENDER :=XmlNode(cRetorno, "xLgr")
IF cStat = "112"
cRetorno := "ACESSE AO SINTEGRA: http://www.sintegra.gov.br"+ HB_EOL()+ "PARA CONSULTA DETALHADA"
hwg_MsgInfo("STATUS: " + XmlNode(cRetorno, "cStat") + hb_Eol() + "MOTIVO: " + cRetorno + hb_Eol()+ hb_Eol() ,"CONSULTA CADASTRO DE CONTRIBUINTE")
ENDIF
IF XmlNode(cRetorno, "cStat") $ "259"
MEMVAR->ISENTO :="9"
ENDIF
IF LEN(cCNPJ) < 14
MEMVAR->CPFCGC:=replicate("0",14-LEN(cCNPJ))+cCNPJ
endif
// hwg_MsgInfo(mCPFCGC)
IF ! ValidIE( RTRIM(MEMVAR->INSEST), cUF )
MEMVAR->INSEST:="0"+MEMVAR->INSEST
ENDIF
IF MEMVAR->ISENTO = "0"
MEMVAR->ISENTO = "2"
MEMVAR->INSEST:= SPACE(18)
ENDIF
ENDIF
oDlg:oEdit2:REFRESH()
oDlg:oEdit1:REFRESH()
oDlg:oEdit3:REFRESH()
oDlg:oEdit8:REFRESH()
oDlg:oEdit9:REFRESH()
oDlg:oEdit11:REFRESH()
oDlg:oEdit13:REFRESH()
oDlg:oCombo2:SetItem( Ascan(MEMVAR->aUF,cUF ) )
oDlg:oCombo2:REFRESH()
oDlg:oCombo3:SetItem( Ascan(MEMVAR->aMunicipios,cCIDADE ) )
oDlg:oCombo3:REFRESH()
oQuery1:Close()
oQuery2:Close()
RETURN NIL
***********************************************************
static FUNCTION CADASTROCLIENTES_CONSULTA_CEP( oDlg, mCEP )
***********************************************************
LOCAL oHttp;
, cXML;
IF mCEP = ' - ' .OR. mCEP = SPACE(09)
hwg_MsgInfo( "o CEP esta em branco, verifique!" )
RETURN .F.
ENDIF
oHttp:= TIpClientHttp():new( "http://www.jpatecnologia.com.br/cep.asp?cep="+substr(mCEP,1,5)+'-'+substr(mCEP,7,3)+"&clipper=1" )
IF ! oHttp:open()
hwg_MsgInfo( "Erro na conecção: "+ oHttp:lastErrorMessage() )
RETURN .T.
ENDIF
cXML := oHttp:readAll()
oHttp:close()
IF Empty(cXML)
** hwg_MsgInfo( "Ocorreu um erro inesperado. Tente outro CEP...")
return .t.
ENDIF
MEMVAR->ENDER := XmlNode(cXml, "logradouro")
MEMVAR->BAIR := XmlNode(cXml, "bairro")
oDlg:oEdit8:REFRESH()
oDlg:oEdit9:REFRESH()
oDlg:oEdit11:REFRESH()
oDlg:oEdit13:REFRESH()
oDlg:oCombo2:SetItem( Ascan(MEMVAR->aUF,XmlNode(cXml, "uf") ) )
oDlg:oCombo2:REFRESH()
oDlg:oCombo3:SetItem( Ascan(MEMVAR->aMunicipios,XmlNode(cXml, "cidade") ) )
oDlg:oCombo3:REFRESH()
return .T.
*******************************************************
STATIC FUNCTION VERIFICA_TELEFONE( )
*******************************************************
IF LEN(RTRIM(MEMVAR->FONE)) = 0
RETURN .T.
ENDIF
IF LEN(RTRIM(MEMVAR->FONE)) < 10
hwg_MsgInfo("FORMATO DE NUMERO DE TELEFONE INVALIDO"+ HB_EOL()+ HB_EOL() + "DEVE CONTER NO MINIMO 10 DIGITOS")
RETURN .F.
ENDIF
RETURN .T.
*******************************************************
STATIC FUNCTION oCombo6_onChange( oDlg, valor )
*******************************************************
IF substr(valor,1,1) = "0"
oDlg:oedit18:Enable()
oDlg:oedit12:Enable()
ELSE
oDlg:oedit18:Disable()
oDlg:oedit12:Disable()
ENDIF
RETURN NIL
****************************************************************************
STATIC FUNCTION VERIFICA_CPFCNPJ( oServer, CPFCGC, CPFANT, cAcao )
****************************************************************************
LOCAL cQuery;
, oQuery_cpfcnpj;
IF cAcao = "ALTERAR" .AND. CPFCGC = CPFANT
RETURN .T.
ENDIF
IF LEN(RTRIM(CPFCGC)) < 12
IF !VDV2(CPFCGC)
RETURN .F.
ENDIF
ELSE
IF !VCGC(CPFCGC)
RETURN .F.
ENDIF
ENDIF
cQuery := "SELECT CLIENTES_NRAZ_SOC, CLIENTES_CPFCGC FROM CLIENTES WHERE CLIENTES_CPFCGC = '" + RTRIM(CPFCGC) + "'"
oQuery_cpfcnpj := oServer:Execute(cQuery)
IF ! oQuery_cpfcnpj:Eof()
hwg_MsgInfo("CPF/CNPJ já existe no cadastro" + HB_EOL() + HB_EOL() + oQuery_cpfcnpj:Fields( "CLIENTES_NRAZ_SOC" ):Value +HB_EOL() + HB_EOL() + "CNPJ/CPF: "+ oQuery_cpfcnpj:Fields( "CLIENTES_CPFCGC" ):Value, "Atenção !!!")
IF LEN(RTRIM(CPFCGC)) < 12
IF PERG( "Continua a Fazer o Cadastro com CPF já cadastrado ?" ) = "N"
oQuery_cpfcnpj:close()
RETURN .F.
ENDIF
ELSE
oQuery_cpfcnpj:close()
RETURN .F.
ENDIF
ENDIF
oQuery_cpfcnpj:close()
RETURN .T.
*******************************************************
STATIC FUNCTION VERIFICA_INCRICAO_ESTADUAL( )
*******************************************************
* If mINSEST != Space(15)
* If ! ValidIE( Rtrim(mINSEST), mUF )
* hwg_MsgInfo("INSCRICAO ESTADUAL INVALIDA"+ HB_EOL() )
* Return .F.
* ENDIF
* Endif
Return .T.
****************************************************************************************
STATIC FUNCTION SALVA_CLIENTES( oServer, cClientes_Id, cAcao )
****************************************************************************************
LOCAL oPAIS;
, oCIDADE;
, cQuery;
, cQuery1;
, cQuery2;
, oQuery;
IF cAcao = 'INCLUIR'
cQuery1 :="INSERT INTO CLIENTES ( "
cQuery2 :=" VALUES ("
cQuery1 += "CLIENTES_TIPCLI, "
cQuery2 += "'" + strzero(MEMVAR->TIPCLI,1,0) + "', "
cQuery1 += "CLIENTES_NRAZ_SOC, "
cQuery2 +="'" + rtrim(TIRACENTO(upper(MEMVAR->NRAZ_SOC))) + "', "
cQuery1 += "CLIENTES_TIPDOC, "
IF LEN(RTRIM(MEMVAR->CPFCGC)) < 12
cQuery2 +="'1', "
ELSE
cQuery2 +="'2', "
ENDIF
IF ! EMPTY(MEMVAR->CPFCGC)
cQuery1 += "CLIENTES_CPFCGC, "
cQuery2 +="'" + rtrim(MEMVAR->CPFCGC) + "', "
ENDIF
IF ! EMPTY(MEMVAR->INSEST)
cQuery1 += "CLIENTES_INSEST, "
cQuery2 +="'" + rtrim(MEMVAR->INSEST) + "', "
ENDIF
IF ! EMPTY(MEMVAR->INSMUN)
cQuery1 += "CLIENTES_INSMUN, "
cQuery2 +="'" + rtrim(MEMVAR->INSMUN) + "', "
ENDIF
IF MEMVAR->nCombo1 = 0
MEMVAR->nCombo1 := 1
ENDIF
cQuery1 += "CLIENTES_ISENTO, "
cQuery2 +="'" + SUBSTR(MEMVAR->aISENTO[MEMVAR->nCombo1],1,1) + "', "
IF ! EMPTY(MEMVAR->SUFRAMA)
cQuery1 += "CLIENTES_SUFRAMA, "
cQuery2 +="'" + rtrim(MEMVAR->SUFRAMA) + "', "
ENDIF
IF ! EMPTY(MEMVAR->EMAIL)
IF EMAIL_VALIDO(MEMVAR->EMAIL)
cQuery1 += "CLIENTES_EMAIL, "
cQuery2 +="'" + rtrim(MEMVAR->EMAIL) + "', "
endif
ENDIF
IF ! EMPTY(MEMVAR->ENDER)
cQuery1 += "CLIENTES_ENDER, "
cQuery2 +="'" + rtrim(MEMVAR->ENDER) + "', "
ENDIF
cQuery1 += "CLIENTES_NUMERO, "
cQuery2 +="'" + strzero(MEMVAR->NUMERO,9,0) + "', "
IF ! EMPTY(MEMVAR->COMPLEM)
cQuery1 += "CLIENTES_COMPLEM, "
cQuery2 +="'" + rtrim(MEMVAR->COMPLEM) + "', "
ENDIF
IF ! EMPTY(MEMVAR->BAIR)
cQuery1 += "CLIENTES_BAIR, "
cQuery2 +="'" + rtrim(MEMVAR->BAIR) + "', "
ENDIF
IF ! EMPTY(MEMVAR->CEP)
cQuery1 += "CLIENTES_CEP, "
cQuery2 +="'" + rtrim(MEMVAR->CEP) + "', "
ENDIF
cQuery1 += "CLIENTES_PAIS, "
cQuery2 += "'" + MEMVAR->aPAIS[MEMVAR->nCombo4] + "', "
FOR EACH oPAIS IN SEFAZ_CIDADE
IF oPAIS[3] == MEMVAR->aPAIS[MEMVAR->nCombo4]
cQuery1 += "CLIENTES_CODPAIS, "
cQuery2 += "'" + SUBSTR(oPAIS[2],3,4) + "', "
ENDIF
NEXT
cQuery1 += "CLIENTES_UF, "
cQuery2 += "'" + MEMVAR->aUF[MEMVAR->nCombo2] + "', "
cQuery1 += "CLIENTES_CIDADE, "
cQuery2 += "'" + MEMVAR->aMunicipios[MEMVAR->nCombo3] + "', "
FOR EACH oCIDADE IN SEFAZ_CIDADE
IF oCIDADE[1] == MEMVAR->aUF[MEMVAR->nCombo2] .AND. oCIDADE[3] == MEMVAR->aMunicipios[MEMVAR->nCombo3]
cQuery1 += "CLIENTES_CODMUN, "
cQuery2 += "'" + oCIDADE[2] + "', "
ENDIF
NEXT
cQuery1 += "CLIENTES_FONE, "
cQuery2 +="'" + rtrim(MEMVAR->FONE) + "', "
cQuery1 += "CLIENTES_CONTATO, "
cQuery2 +="'" + rtrim(MEMVAR->CONTATO) + "', "
cQuery1 += "CLIENTES_LIMCRE, "
cQuery2 +="'" + strzero(MEMVAR->LIMCRE,14,2) + "', "
cQuery1 += "CLIENTES_TOTCRE, "
cQuery2 +="'" + strzero(MEMVAR->TOTCRE,14,2) + "', "
cQuery1 += "CLIENTES_VENBLO, "
cQuery2 +="'" + SUBSTR(MEMVAR->aVENBLO[MEMVAR->nCombo6],1,1) + "', "
cQuery1 += "CLIENTES_DATCAD, "
cQuery2 +="'" + strzero(year(MEMVAR->DATCAD),4,0) + "-" + strzero(month(MEMVAR->DATCAD),2,0) + "-" + strzero(day(MEMVAR->DATCAD),2,0) + "', "
cQuery1 += "CLIENTES_DATALT, "
cQuery2 +="'" + strzero(year(MEMVAR->DATALT),4,0) + "-" + strzero(month(MEMVAR->DATALT),2,0) + "-" + strzero(day(MEMVAR->DATALT),2,0) + "', "
cQuery1 += "CLIENTES_USUALT, "
cQuery2 +="'" + rtrim(MEMVAR->USUALT) + "', "
cQuery1 += "CLIENTES_TAXCLI, "
cQuery2 +="'" + strzero(MEMVAR->TAXCLI,5,2) + "', "
cQuery1 += "CLIENTES_NUMPAR, "
cQuery2 +="'" + strzero(MEMVAR->NUMPAR,2,0) + "', "
cQuery1 += "CLIENTES_PERDES, "
cQuery2 +="'" + strzero(MEMVAR->PERDES,5,2) + "', "
cQuery1 += "CLIENTES_VALMIN, "
cQuery2 +="'" + strzero(MEMVAR->VALMIN,5,0) + "', "
cQuery1 += "CLIENTES_QUEM_BLOQ ) "
cQuery2 +="'" + rtrim(M->OPERADOR)+"/"+rtrim(hwg_GetComputerName()+" ["+dtoc(M->DAT_HOJE)+" "+time()+"]") + "' )"
// HB_GTINFO( HB_GTI_CLIPBOARDDATA, cQuery1+cQuery2)
oServer:Execute(cQuery1+cQuery2)
oQuery := oServer:Execute("SELECT LAST_INSERT_ID()")
MEMVAR->UCLIENTE := oQuery:Fields( "LAST_INSERT_ID()" ):Value
oServer:Execute("UPDATE CLIENTES SET CLIENTES_UCLIENTE = '" + STRZERO(MEMVAR->UCLIENTE,6,0) + "' WHERE CLIENTES_Id = '" + LTRIM(STR(MEMVAR->UCLIENTE)) + "'")
cQuery:=[INSERT INTO logtrans (LOGTRANS_OPERADOR, LOGTRANS_COMPUTADOR, LOGTRANS_TEXTO ) VALUES ( "] + rtrim(M->OPERADOR) +[", "] + rtrim(hwg_GetComputerName()) + [", "] + cQuery1+cQuery2 + [")]
oServer:Execute(cQuery)
ELSE
cQuery1 :="UPDATE CLIENTES SET "
cQuery1 +="CLIENTES_TIPCLI = '" + strzero(MEMVAR->TIPCLI,1,0) + "', "
IF strzero(M->NIV_ACESSO,1,0)$"89"
cQuery1 += "CLIENTES_NRAZ_SOC = '" + rtrim(TIRACENTO(upper(MEMVAR->NRAZ_SOC))) + "', "
ENDIF
IF LEN(RTRIM(MEMVAR->CPFCGC)) < 12
cQuery1 += "CLIENTES_TIPDOC ='1', "
ELSE
cQuery1 += "CLIENTES_TIPDOC ='2', "
ENDIF
IF ! EMPTY(MEMVAR->CPFCGC)
cQuery1 += "CLIENTES_CPFCGC = '" + rtrim(MEMVAR->CPFCGC) + "', "
ENDIF
IF ! EMPTY(MEMVAR->INSEST)
cQuery1 += "CLIENTES_INSEST = '" + rtrim(MEMVAR->INSEST) + "', "
ENDIF
IF ! EMPTY(MEMVAR->INSMUN)
cQuery1 += "CLIENTES_INSMUN = '" + rtrim(MEMVAR->INSMUN) + "', "
ENDIF
IF MEMVAR->nCombo1 = 0
MEMVAR->nCombo1 := 1
ENDIF
cQuery1 += "CLIENTES_ISENTO = '" + SUBSTR(MEMVAR->aISENTO[MEMVAR->nCombo1],1,1) + "', "
IF ! EMPTY(MEMVAR->SUFRAMA)
cQuery1 += "CLIENTES_SUFRAMA = '" + rtrim(MEMVAR->SUFRAMA) + "', "
ENDIF
IF ! EMPTY(MEMVAR->EMAIL)
IF EMAIL_VALIDO(MEMVAR->EMAIL)
cQuery1 += "CLIENTES_EMAIL = '" + rtrim(LOWER(MEMVAR->EMAIL)) + "', "
endif
ENDIF
IF ! EMPTY(MEMVAR->ENDER)
cQuery1 += "CLIENTES_ENDER = '" + rtrim(MEMVAR->ENDER) + "', "
ENDIF
cQuery1 += "CLIENTES_NUMERO = '" + strzero(MEMVAR->NUMERO,9,0) + "', "
IF ! EMPTY(MEMVAR->COMPLEM)
cQuery1 += "CLIENTES_COMPLEM = '" + rtrim(MEMVAR->COMPLEM) + "', "
ENDIF
IF ! EMPTY(MEMVAR->BAIR)
cQuery1 += "CLIENTES_BAIR = '" + rtrim(MEMVAR->BAIR) + "', "
ENDIF
cQuery1 += "CLIENTES_CEP = '" + MEMVAR->CEP + "', "
cQuery1 += "CLIENTES_PAIS = '" + MEMVAR->aPAIS[MEMVAR->nCombo4] + "', "
FOR EACH oPAIS IN SEFAZ_CIDADE
IF oPAIS[3] == MEMVAR->aPAIS[MEMVAR->nCombo4]
cQuery1 += "CLIENTES_CODPAIS = '" + SUBSTR(oPAIS[2],3,4) + "', "
ENDIF
NEXT
cQuery1 += "CLIENTES_UF = '" + MEMVAR->aUF[MEMVAR->nCombo2] + "', "
FOR EACH oCIDADE IN SEFAZ_CIDADE
IF oCIDADE[1] == MEMVAR->aUF[MEMVAR->nCombo2] .AND. oCIDADE[3] == MEMVAR->aMunicipios[MEMVAR->nCombo3]
cQuery1 += "CLIENTES_CODMUN = '" + oCIDADE[2] + "', "
ENDIF
NEXT
cQuery1 += "CLIENTES_CIDADE = '" + MEMVAR->aMunicipios[MEMVAR->nCombo3] + "', "
cQuery1 += "CLIENTES_FONE = '" + rtrim(MEMVAR->FONE) + "', "
IF ! EMPTY(MEMVAR->CONTATO)
cQuery1 += "CLIENTES_CONTATO = '" + rtrim(MEMVAR->CONTATO) + "', "
endif
cQuery1 += "CLIENTES_LIMCRE = '" + strzero(MEMVAR->LIMCRE,14,2) + "', "
cQuery1 += "CLIENTES_TOTCRE = '" + strzero(MEMVAR->TOTCRE,14,2) + "', "
cQuery1 += "CLIENTES_VENBLO = '" + SUBSTR(MEMVAR->aVENBLO[MEMVAR->nCombo6],1,1) + "', "
cQuery1 += "CLIENTES_DATCAD = '" + strzero(year(MEMVAR->DATCAD),4,0) + "-" + strzero(month(MEMVAR->DATCAD),2,0) + "-" + strzero(day(MEMVAR->DATCAD),2,0) + "', "
cQuery1 += "CLIENTES_DATALT = '" + strzero(year(MEMVAR->DATALT),4,0) + "-" + strzero(month(MEMVAR->DATALT),2,0) + "-" + strzero(day(MEMVAR->DATALT),2,0) + "', "
cQuery1 += "CLIENTES_USUALT = '" + rtrim(MEMVAR->USUALT) + "', "
cQuery1 += "CLIENTES_TAXCLI = '" + strzero(MEMVAR->TAXCLI,5,2) + "', "
cQuery1 += "CLIENTES_NUMPAR = '" + strzero(MEMVAR->NUMPAR,2,0) + "', "
cQuery1 += "CLIENTES_PERDES = '" + strzero(MEMVAR->PERDES,5,2) + "', "
cQuery1 += "CLIENTES_VALMIN = '" + strzero(MEMVAR->VALMIN,5,0) + "', "
cQuery1 += "CLIENTES_QUEM_BLOQ = '" + rtrim(M->OPERADOR)+"/"+rtrim(hwg_GetComputerName()+" ["+dtoc(M->DAT_HOJE)+" "+time()+"]") + "' "
cQuery1 += "WHERE CLIENTES_Id = '" + cClientes_Id + "'"
oServer:Execute(cQuery1)
cQuery:=[INSERT INTO logtrans (LOGTRANS_OPERADOR, LOGTRANS_COMPUTADOR, LOGTRANS_TEXTO ) VALUES ( "] + rtrim(M->OPERADOR) +[", "] + rtrim(hwg_GetComputerName()) + [", "] + cQuery1 + [")]
oServer:Execute(cQuery)
ENDIF
return NIL
*****************************************
STATIC Function EMAIL_VALIDO(cmail)
*****************************************
Local cRegEx:="^[\w-\.]{1,}\@([\da-zA-Z-_]{1,}\.){1,}[\da-zA-Z-_]{2,3}$"
IF HB_REGEXLIKE( cRegEx, RTrim(cmail) )
RETURN .T.
ENDIF
RETURN .F.
************************************************************
STATIC FUNCTION RELATORIO_CLIENTES( oServer )
************************************************************
LOCAL oPDF;
, nLinha;
, nPagina;
, nMaxCol;
, oQuery;
, oQuery1;
oPDF := PDFClass()
IF oPDF == NIL
hwg_msginfo("Falha da criação do objeto PDF")
RETURN .F.
ENDIF
oPDF:cFileName := "C:\TEMP\CLIENTES"+strzero(HB_RandomInt(1, 99999999),8,0)+'.PDF'
IF ! oPDF:PrintOptions( ); RETURN NIL; ENDIF
oQuery:= oServer:Execute("SELECT CLIENTES_UCLIENTE, CLIENTES_NRAZ_SOC FROM CLIENTES ORDER BY CLIENTES_NRAZ_SOC")
oQuery1:= oServer:Execute("SELECT FLAG_n_xNome, FLAG_n_xLgr, FLAG_n_nro, FLAG_n_xBairro, FLAG_n_CEP, FLAG_n_xMun, FLAG_n_xUF, FLAG_n_fone, FLAG_n_CNPJ, FLAG_n_IE FROM FLAG ")
IF oPDF:nPrinterType == PDFCLASS_LANDSCAPE
oPDF:Begin()
nLinha := 100
nPagina := 1
DO WHILE ! oQuery:Eof()
IF nLinha > 96
oPDF:AddPage()
nMaxCol := oPDF:MaxCol()
oPDF:DrawBox( 0, 0, 9, 41, Nil, Nil, Nil ) // box esquerdo
oPDF:DrawImageSize( 0.5, 0.5, 8, 39, "logotipo.jpg" ) // logotipo
oPDF:DrawBox( 0, 41, 9, 117, Nil, Nil, Nil ) // box centro
oPDF:DrawText( 2.0, 42, RTRIM(oQuery1:Fields( "FLAG_n_xNome" ):Value), nil, 10, "Helvetica-Bold", Nil, Nil )
oPDF:DrawText( 3.5, 42, RTRIM(oQuery1:Fields( "FLAG_n_xLgr" ):Value) + ', ' + RTRIM(oQuery1:Fields( "FLAG_n_nro" ):Value), Nil, 8, "Helvetica", Nil, Nil )
oPDF:DrawText( 5.0, 42,'BAIRRO - ' + RTRIM(oQuery1:Fields( "FLAG_n_xBairro" ):Value), Nil, 8, "Helvetica", Nil, Nil )
oPDF:DrawText( 6.4, 42, "CEP " +oQuery1:Fields( "FLAG_n_CEP" ):Value + ' - ' + RTRIM(oQuery1:Fields( "FLAG_n_xMun" ):Value) + ' - ' + oQuery1:Fields( "FLAG_n_xUF" ):Value + " - FONE: " +oQuery1:Fields( "FLAG_n_fone" ):Value, Nil, 8, "Helvetica", Nil, Nil )
oPDF:DrawText( 8.0, 42, 'CNPJ-'+RTRIM(oQuery1:Fields( "FLAG_n_CNPJ" ):Value) + ' Insc.Est.-' + RTRIM(oQuery1:Fields( "FLAG_n_IE" ):Value) , Nil, 8, "Helvetica-Bold", Nil, Nil )
oPDF:DrawBox( 0, nMaxCol, 9, 41, Nil, Nil, Nil ) // box direito
oPDF:DrawText( 2, 120, "CAD.CLIENTES " , Nil, 10, "Helvetica", Nil, Nil )
oPDF:DrawText( 4, 120, "PAGINA Nr.: " + STRZERO(nPagina,4,0), Nil, 10, "Helvetica", Nil, Nil )
oPDF:DrawText( 6, 120, "DATA: " + DTOC(M->DAT_HOJE), Nil, 10, "Helvetica", Nil, Nil )
oPDF:DrawText( 8, 120, "HORA: " + TIME(), Nil, 10, "Helvetica", Nil, Nil )
oPDF:DrawBox( 9, 0, 12, nMaxCol, Nil, Nil, Nil )
nLinha := 11
nPagina += 1
oPDF:DrawText( nLinha, 1, "CODIGO", Nil, 10, "Helvetica", Nil, Nil )
oPDF:DrawText( nLinha, 16, "NOME CLIENTE", Nil, 10, "Helvetica", Nil, Nil )
nLinha += 3
ENDIF
oPDF:DrawText( nLinha, 1, oQuery:Fields( "CLIENTES_UCLIENTE" ):Value, Nil, 12, "Courier-Bold", Nil, Nil )
oPDF:DrawText( nLinha, 16, oQuery:Fields( "CLIENTES_NRAZ_SOC" ):Value, Nil, 10, "Helvetica", Nil, Nil )
nLinha += 2
oQuery:MoveNext()
ENDDO
oPDF:DrawLine( nLinha, 0, nLinha, nMaxCol, 1 )
oPDF:End( )
oQuery:Close( )
oQuery1:Close( )
ELSE
oPDF:nPrinterType := WIN_PRINTERGETDEFAULT()
oPDF:SetType( PDFCLASS_ROLLS )
oPDF:Begin()
oPDF:nPageHeight := 841.89
oPDF:AddPage()
nMaxCol := oPDF:MaxCol()
oPDF:DrawImageSize( 0, 0, 4, 19, "logotipo.jpg" ) // logotipo
oPDF:DrawText( 5, 0, RTRIM(oQuery1:Fields( "FLAG_n_xNome" ):Value), nil, 10, "Helvetica-Bold", Nil, Nil )
oPDF:DrawText( 6, 0, RTRIM(oQuery1:Fields( "FLAG_n_xLgr" ):Value) + ', ' + RTRIM(oQuery1:Fields( "FLAG_n_nro" ):Value), Nil, 8, "Helvetica", Nil, Nil )
oPDF:DrawText( 7, 0,'BAIRRO - ' + RTRIM(oQuery1:Fields( "FLAG_n_xBairro" ):Value), Nil, 8, "Helvetica", Nil, Nil )
oPDF:DrawText( 8, 0, "CEP " +oQuery1:Fields( "FLAG_n_CEP" ):Value + ' - ' + RTRIM(oQuery1:Fields( "FLAG_n_xMun" ):Value) + ' - ' + oQuery1:Fields( "FLAG_n_xUF" ):Value + " - FONE: " +oQuery1:Fields( "FLAG_n_fone" ):Value, Nil, 8, "Helvetica", Nil, Nil )
oPDF:DrawText( 9, 0, 'CNPJ-'+RTRIM(oQuery1:Fields( "FLAG_n_CNPJ" ):Value) + ' Insc.Est.-' + RTRIM(oQuery1:Fields( "FLAG_n_IE" ):Value) , Nil, 8, "Helvetica-Bold", Nil, Nil )
oPDF:DrawLine( 9.5, 0, 9.5, nMaxCol, 1 )
oPDF:DrawText( 10.5, 0, "CADASTRO DE CLIENTES", Nil, 10, "Helvetica-Bold", Nil, Nil )
oPDF:DrawText( 11.5, 0, "CODIGO NOME CLIENTE", Nil, 8, "Helvetica", Nil, Nil )
oPDF:DrawLine( 12, 0, 12, nMaxCol, 1 )
nLinha := 13
DO WHILE ! oQuery:Eof()
IF nLinha > 70
oPDF:AddPage()
nLinha := 0
ENDIF
oPDF:DrawText( nLinha, 0, oQuery:Fields( "CLIENTES_UCLIENTE" ):Value, Nil, 08, "Helvetica", Nil, Nil )
oPDF:DrawText( nLinha++, 7, oQuery:Fields( "CLIENTES_NRAZ_SOC" ):Value, Nil, 08, "Helvetica", Nil, Nil )
oQuery:MoveNext()
ENDDO
oPDF:End( )
oQuery:Close( )
oQuery1:Close( )
ENDIF
oPDF:PrintPreview( )
RETURN NIL
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
-
andrelucass
- Usuário Nível 3

- Mensagens: 145
- Registrado em: 25 Fev 2005 10:40
TbrowseDb com Sql exemplos
Esse é o codigo que uso, usando o xharbour free, gostaria de passar essa busca incremental para sql
no xharbour usando dbf
esse código é usando xharbour com sql, só não conseguir fazer a busca
no xharbour usando dbf
Código: Selecionar todos
// ESTRUTURA DO ARQUIVO .DBF
+--------- VERBAS.DBF ----------+
| Nº Nome Tipo Tam Dec |
+-------------------------------+
| 1 "CODIGO" ,"N",003,000 |
| 2 "DESCRICAO" ,"C",040,000 |
| 3 "VALOR" ,"N",015,002 |
| 4 "TIPO" ,"C",001,000 |
| 5 "OPERACAO" ,"C",001,000 |
+------ Nº Registros 256 -------+
procedure ConVerbas(lAbrir)
local oBrow,oCol,nTecla,lFim := .F.,cTela := savewindow(),cDados
local nCursor := setcursor(),cCor := setcolor(),lTop
local nLin1 := 02,nCol1 := 10,nLin2 := maxrow()-1,nCol2 := 79
private nRecno
if lAbrir
Msg(.t.)
Msg("Aguarde : Abrindo o Arquivo")
if !OpenVerbas()
FechaDados()
Msg(.f.)
return
endif
Msg(.f.)
else
setcursor(SC_NONE)
endif
select Verbas
set order to 2
goto top
if lAbrir
Rodape("Esc-Encerrar")
else
Rodape("Esc-Encerra | ENTER-Transfere")
end
n_Itens := lastrec()
Pos := 1
setcolor(cor(5))
Window(nLin1,nCol1,nLin2,nCol2,"> Tabela de Verbas <")
oBrow := TBrowseDB(nLin1+1,nCol1+1,nLin2-2,nCol2-1)
oBrow:headSep := chr(194)+chr(196)
oBrow:colSep := chr(179)
oBrow:footSep := chr(193)+chr(196)
oBrow:colorSpec := COR(25)+","+cor(6)+","+Cor(9)+",N,"+cor(6)+","+Cor(6)
oBrow:addcolumn(TBColumnNew("C¢digo" ,{|| Verbas->Codigo }))
oBrow:addcolumn(TBColumnNew("Descricao" ,{|| Verbas->Descricao }))
oBrow:addcolumn(TBColumnNew("Valor" ,{|| Verbas->Valor }))
setcolor(Cor(26))
AddKeyAction(K_ESC, {|| lFim := .t.})
AddKeyAction(K_ALT_X, {|| xTecla := ""})
AddKeyAction(K_CTRL_H, {|| IF((nLen := LEN(xTecla)) > 0,((xTecla := SUBSTR(xTecla, 1, --nLen)), SeekIt(xTecla, .T., oBrow)),NIL) })
xTecla := ""
WHILE (! lFim)
@ nLin2-1,nCol1+1 say padr(" Pesquisar: "+ xTecla,30) color Cor(11)
ForceStable(oBrow)
if ( obrow:hittop .or. obrow:hitbottom )
tone(1200,1)
endif
aRect := { oBrow:rowPos,1,oBrow:rowPos,3}
oBrow:colorRect(aRect,{2,2})
cTecla := chr((nTecla := inkey(0)))
if (nTecla >= 32 .and. nTecla <= 93) .or. (nTecla >= 96 .and. nTecla <= 125)
if nTecla >= 97 .and. nTecla <= 122
cTecla := chr(nTecla-32)
endif
endif
if !OnKey( nTecla,oBrow)
if !(nTecla == K_ENTER)
// VERIFICA A TECLA PRESSIONADA
if (nTecla >= 32 .and. nTecla <= 93) .or. (nTecla >= 96 .and. nTecla <= 125)
xTecla += cTecla
nRec := Verbas->(Recno())
// AQUI FAZ A BUSCA DBF
if !SeekIt(xTecla,.T.,obrow)
Verbas->(dbgoto(nRec))
endif
endif
endif
endif
if nTecla == K_ENTER
if !lAbrir
cDados := str(Verbas->Codigo,3,0)
keyboard (cDados)+chr(K_ENTER)
lFim := .t.
endif
elseif nTecla == K_ESC
lFim := .t.
endif
oBrow:refreshcurrent()
enddo
if !lAbrir
setcursor(nCursor)
setcolor(cCor)
else
FechaDados()
endif
RestWindow( cTela )
RETURN
FUNCTION SeekIt( xKey, lSoftSeek, oObj )
LOCAL lFound, nRecno
nRecno := RECNO()
lSoftSeek := IF(VALTYPE(lSoftSeek) == "L", lSoftSeek, .F.)
IF !(lFound := DBSEEK( xKey, lSoftSeek ))
IF EOF()
// Not found.
// Keep pointer in the same place
DBGOTO(nRecno)
oObj:invalidate()
ENDIF
ELSE
// Found!
// But there is that behaviour on TBrowse...
//
nRecno := RECNO()
DISPBEGIN()
oObj:refreshAll()
ForceStable( oObj )
WHILE (nRecno != RECNO()) .AND. !(oObj:hitTop())
oObj:up()
ForceStable( oObj )
END
DISPEND()
ENDIF
RETURN (lFound)
esse código é usando xharbour com sql, só não conseguir fazer a busca
Código: Selecionar todos
procedure ConVerbas(lAbrir)
local oBrow,oCol,nTecla,lFim := .F.,cTela := savewindow(),cDados
local nCursor := setcursor(),cCor := setcolor(),lTop
local nLin1 := 02,nCol1 := 10,nLin2 := 33,nCol2 := 79
local cQuery,oQuery
private nRecno
setcursor(SC_NONE)
cQuery := "SELECT idverbas,descricao,valor FROM administrativo.verbas "
cQuery += " ORDER BY descricao "
if !ExecuteSql(cQuery,@oQuery,{"Erro: Abrir Tabela de Verbas"},"verbas")
return
endif
if oQuery:Lastrec() = 0
Mens({"Tabela de verbas vazia"})
oQuery:Destroy()
return
endif
if lAbrir
Rodape("Esc-Encerrar")
else
Rodape("Esc-Encerra | ENTER-Transfere")
end
setcolor(cor(5))
Window(nLin1,nCol1,nLin2,nCol2,"> Tabela de Verbas <")
oBrow := TBrowseDB(nLin1+1,nCol1+1,nLin2-2,nCol2-1)
oBrow:headSep := chr(194)+chr(196)
oBrow:colSep := chr(179)
oBrow:footSep := chr(193)+chr(196)
oBrow:colorSpec := COR(25)+","+cor(6)+","+Cor(9)+",N,"+cor(6)+","+Cor(6)
oCurRow := oQuery:GetRow( 1 )
oBrow:SkipBlock := {| n | oCurRow := SkipperQuery( @n, oQuery ), n }
oBrow:GoBottomBlock := {|| oCurRow := oQuery:GetRow( oQuery:LastRec() ), 1 }
oBrow:GoTopBlock := {|| oCurRow := oQuery:GetRow( 1 ), 1 }
oBrow:addcolumn(TBColumnNew("Código" ,{|| str(oQuery:FieldGet("idverbas"),3) }))
oBrow:addcolumn(TBColumnNew("Descricao" ,{|| oQuery:FieldGet("Descricao") }))
oBrow:addcolumn(TBColumnNew("Valor" ,{|| transform(oQuery:FieldGet("Valor"),"@ke 999,999,999.99") }))
setcolor(Cor(26))
WHILE (! lFim)
ForceStable(oBrow)
if ( obrow:hittop .or. obrow:hitbottom )
tone(1200,1)
endif
aRect := { oBrow:rowPos,1,oBrow:rowPos,3}
oBrow:colorRect(aRect,{2,2})
cTecla := chr((nTecla := inkey(0)))
if !OnKey( nTecla,oBrow)
endif
if nTecla == K_ENTER
if !lAbrir
cDados := str(oQuery:FieldGet('idverbas'),3)
keyboard (cDados)+chr(K_ENTER)
lFim := .t.
endif
elseif nTecla == K_ESC
lFim := .t.
endif
oBrow:refreshcurrent()
enddo
if !lAbrir
setcursor(nCursor)
setcolor(cCor)
endif
RestWindow( cTela )
RETURN
TbrowseDb com Sql exemplos
Bom dia André!
Vc pode criar um um dbf temporário com os mesmos campos da query, importar as tuplas da query e usar este dbf no TBrowseDB().
Eu uso TBrowseNew() com funções específicas para navegação e pesquisa direto na query e a cada pesquisa eu invoco uma nova query e realimento o browse.
Para paginar o browse como no dbf uso a cláusula OFFSET do SELECT.
Att,
Eduardo Fernandes
Vc pode criar um um dbf temporário com os mesmos campos da query, importar as tuplas da query e usar este dbf no TBrowseDB().
Eu uso TBrowseNew() com funções específicas para navegação e pesquisa direto na query e a cada pesquisa eu invoco uma nova query e realimento o browse.
Para paginar o browse como no dbf uso a cláusula OFFSET do SELECT.
Att,
Eduardo Fernandes
-
andrelucass
- Usuário Nível 3

- Mensagens: 145
- Registrado em: 25 Fev 2005 10:40
TbrowseDb com Sql exemplos
Ola Eduardo Fernandes,
Você poderia colocar aqui ou mandar por e-mail ?
Detalhe
Uso local e remotamente.
andrelucassouza72@gmail.com
Atenciosamente
André Lucas Souza
Você poderia colocar aqui ou mandar por e-mail ?
Detalhe
Uso local e remotamente.
andrelucassouza72@gmail.com
Atenciosamente
André Lucas Souza
-
andrelucass
- Usuário Nível 3

- Mensagens: 145
- Registrado em: 25 Fev 2005 10:40
TbrowseDb com Sql exemplos
Ola Eduardo Fernandes,
Obrigado recebi seu e-mail.
Atenciosamente
André Lucas Souza
Obrigado recebi seu e-mail.
Atenciosamente
André Lucas Souza
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
TbrowseDb com Sql exemplos
Bom dia Eduardo Fernandes.
Fiquei interessado na forma como você utiliza, estou migrando agora para SQL e preciso tambem de algo para funcionar como fazia no DBF com TBROWSEDB.
Envia pra mim por gentileza esta sua função, fico grato.
leandrolinauer@hotmail.com
Valeu
T+
Fiquei interessado na forma como você utiliza, estou migrando agora para SQL e preciso tambem de algo para funcionar como fazia no DBF com TBROWSEDB.
Envia pra mim por gentileza esta sua função, fico grato.
leandrolinauer@hotmail.com
Valeu
T+
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
TbrowseDb com Sql exemplos
Acho essa rotina interessante e podia ajudar vários membros, inclusive a mim.
Será que poderia colocar essa rotina aqui no fórum?
Agradeço desde já
Será que poderia colocar essa rotina aqui no fórum?
Agradeço desde já
TbrowseDb com Sql exemplos
Boa tarde !
Em anexo.
Eduardo
Em anexo.
Eduardo
- Anexos
-
SHOWSQL.zip- (4.84 KiB) Baixado 198 vezes
-
leandrolinauer
- Usuário Nível 3

- Mensagens: 413
- Registrado em: 16 Out 2006 10:59
- Localização: Paranaíba-MS
TbrowseDb com Sql exemplos
Bom dia modalsist
Muito grato pelo exemplo, hoje que vi seu retorno, agradecido irei testar.
Valeu
Muito grato pelo exemplo, hoje que vi seu retorno, agradecido irei testar.
Valeu
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)

