Mostrando postagens com marcador Advpl. Mostrar todas as postagens
Mostrando postagens com marcador Advpl. Mostrar todas as postagens

Rdmake VerCep()


//Por http://www.luislacombe.com.br/Fontes.aspx
*-----------------------------------------------------------------------------------------------------------

#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'RWMAKE.CH'
#INCLUDE 'FONT.CH'
#INCLUDE 'COLORS.CH'


User Function VerCep()

/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Declaração de cVariable dos componentes                                 ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
Private cBairro    := Space(100)
Private cCidade    := Space(100)
Private cLog       := Space(100)
Private cTipLog    := Space(20)
Private cUF        := Space(20)    
Private cCep       := Space(9)

/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Declaração de Variaveis Private dos Objetos                             ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
SetPrvt("oDlg1","oSay1","oSay2","oSay3","oSay4","oSay5","oSay6","oGet1","oSBtn1")

/*ÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±± Definicao do Dialog e todos os seus componentes.                        ±±
Ù±±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*/
oDlg1      := MSDialog():New( 088,232,316,624,"Consulta Online CEP",,,.F.,,,,,,.T.,,,.T. )
oSay1      := TSay():New( 012,012,{||"Digite o CEP:"},oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,036,008)
oSay2      := TSay():New( 044,016,,oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,008)
oSay3      := TSay():New( 044,056,,oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,128,012)
oSay4      := TSay():New( 064,016,,oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,168,012)
oSay5      := TSay():New( 084,012,,oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,012)
oSay6      := TSay():New( 084,052,,oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,132,012)
oGet1      := TGet():New( 012,052,{|u| If(PCount()>0,cCep:=u,cCep)},oDlg1,060,008,'99999-999',,CLR_BLACK,CLR_WHITE,,,,.T.,"",,,.F.,.F.,,.F.,.F.,"","cCep",,)
oSBtn1     := SButton():New( 012,160,1,,oDlg1,,"", )  

oSBtn1:bLClicked := {|| LoadCEP() }

oDlg1:Activate(,,,.T.)

Return

Static Function LoadCEP()
Local cError   := ""
Local cWarning := ""
Local aRetorno := {}
Local cRETORNO

cRETORNO := HttpGet( 'http://republicavirtual.com.br/web_cep.php?cep='+cCep+'&formato=xml' )

if cRETORNO == nil
   MsgStop( Alert( "Servidor de CEP indisponível." ) )
else
   oScript := XmlParser( cRETORNO, "_", @cError, @cWarning )
   if oScript <> nil
      if XmlChildEx( oSCRIPT, "_WEBSERVICECEP" ) <> nil    
         if Val(oSCRIPT:_WEBSERVICECEP:_RESULTADO:TEXT) > 0
            cUF     := oSCRIPT:_WEBSERVICECEP:_UF:TEXT
            cCidade := oSCRIPT:_WEBSERVICECEP:_CIDADE:TEXT
            cBairro := oSCRIPT:_WEBSERVICECEP:_BAIRRO:TEXT
            cTipLog := oSCRIPT:_WEBSERVICECEP:_TIPO_LOGRADOURO:TEXT
            cLog    := oSCRIPT:_WEBSERVICECEP:_LOGRADOURO:TEXT
         endif
      endif
   endif
endif

oSay2      := TSay():New( 044,016,{||"UF: " + cUF},oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,008)
oSay3      := TSay():New( 044,056,{||"Cidade: " + cCidade},oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,128,012)
oSay4      := TSay():New( 064,016,{||"Bairro: " + cBairro},oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,168,012)
oSay5      := TSay():New( 084,012,{|| cTipLog},oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,032,012)
oSay6      := TSay():New( 084,052,{|| cLog},oDlg1,,,.F.,.F.,.F.,.T.,CLR_BLACK,CLR_WHITE,132,012)    

Return

Integração com o Excel




Esta funcao deve ser chamada a partir da planilha Excel. O dados contidos no array serao distribuidos nas celulas. Na planilha, digitar na celula A1 o comando:


MSGetArray(A1,Siga(“U_PLANMOV”))
ou
MSGetArray(A1,Siga(“U_PLANMOV(p1,p2,pN)”)) –> passando parametros para a funcao. A funcao deverá receber os parametros.
Ou, escrever a seguinte macro e associa-la a um botao:
Sub Atualiza()
Range(“A1″).FormulaR1C1 = “=MSGetArray(RC,Siga(“”U_PLANMOV”"))”
ou
aMovimentos = MSExecArray(siga(“U_PLANMOV”))
End Sub
User Function PlanMOV()
// A funcao poderá receber parametros: User Function PlanMOV(p1,p2,pN)
Local aMovim := {}
dbSelectArea("SZ2")
dbOrderNickName("NOME_NR_IT") // Filial + Nome + Nro.Trans. + Item
dbGoTop()
While !SZ2->(Eof())
AAdd(aMovim, {SZ2->Z2_Nome, SZ2->Z2_Numero, SZ2->Z2_Item,
SZ2->Z2_Data, SZ2->Z2_Tipo, SZ2->Z2_Hist, SZ2->Z2_Valor, SZ2->Z2_Aprov})
SZ2->(dbSkip())
End
Return aMovim
//----------------------------------------------------------------------------//
User Function PlanCAD()
Local aCad := {}
dbSelectArea("SZ1")
dbOrderNickName("NOME")
dbGoTop()
While !SZ1->(Eof())
AAdd(aCad, {SZ1->Z1_Nome, SZ1->Z1_EMail, SZ1->Z1_Saldo})
SZ1->(dbSkip())
End
Return aCad