Jump to content
Fivewin Brasil

sambomb

Membros
  • Posts

    1,951
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by sambomb

  1. bLClicked é da TWindow

    TxBrowse herda da TControl que herda da TWindow, portanto deveria funcionar...
    Estou vendo na sua assinatura que usa a FW 6.22, teria que ver a TXBrowse dessa versão para ver se ela também herda da TControl

    CLASS TXBrowse FROM TControl
  2. Alguém sabe como desabilitar o cache do internet explorer?

    Opções de internet-> Aba Geral -> Botão Configurações -> Aba Caches e Bancos de dados -> Permitir Caches e bancos de dados do site

    Tentei assim mas não solucionou, não está criando os registros apenas alterando e só cria se eu for manualmente e desabilitar.


       //-- Desabilitar caches
       oRegedit := TReg32():New(2147483649,"Software\Microsoft\Internet Explorer\BrowserStorage\AppCache")
    
    
       oRegedit:Set("AllowWebsiteCaches", 0)
    
    
       //-- Desabilitar informação salva em banco de dados
       oRegedit := TReg32():New(2147483649,"Software\Microsoft\Internet Explorer\BrowserStorage\IndexedDB")
    
    
       oRegedit:Set("AllowWebsiteDatabases", 0)
    
    
       //-- Desabilitar navegação continua ( sem buffer )
       oRegedit := TReg32():New(2147483649,"Software\Microsoft\Internet Explorer\ContinuousBrowsing")
       oRegedit:Set("Enabled", 0)
  3. O que mais me chama atenção no Fivetouch é a possibilidade de desenvolver para Android, IOS e Windows com a mesma ferramenta. Isso não vi em nenhum outro ambiente de desenvolvimento. Mas acho que o Antonio Linares conseguiria muito mais gente aderindo ao projeto se implementasse algum projeto piloto com as funções básicas já implementadas. Assim, como ele está fazendo, com quase nada pronto e com seu histórico de deixar várias coisas pela metade, fica difícil apostar...

    Delphi acho que já chegou a esse nível.....

  4. noo funcionou o ultimo exemplo

    denttro do banco de dados

    estao assim

    antonio carlo

    antonio cae

    antonio caefaz

    antonio pereira

    antonio brito

    antonio sergueira

    a ideia e a seguinte ni clipper 53 funciona

    quando eu procuro pelo nome antonio c ele posicione o ponteiro em cima do anotnio carlos

    se eu procura-se pelo antonio carlos o poniteiro ficaria em cima

    como eu tenho varios antonio se procura-se pelo antonio e ficaria em cima do antonio o ponteiiro

    fui mais claro

    carlos

    A ordem alfabética correta é:

    antonio brito
    antonio cae
    antonio caefaz
    antonio carlo
    antonio pereira
    antonio sergueira

    Então caso procure por "antonio" iria focar primeiro no "antonio brito"

    Se procurar por "antonio c" vai focar em "antonio cae"

    Se procurar por "antonio p" vai focar em "antonio sergueira"

    Certifique-se que está pesquisando com AllTrim() pois caso contrário vai dar diferença.

    Exemplo:

    index on NOME tag NOMEASC to ("C:\TABELA")

    /*---------------------------*/

    Select TABELA

    DbSetOrder(1)

    cGet := "antonio"

    If DbSeek( AllTrim( cGet ) )

    ? NOME //-- "antonio brito"

    Else

    ? "Falhou ao pesquisar (" + AllTrim( cGet ) + ")"

    End

    cGet := "antonio c"

    If DbSeek( AllTrim( cGet ) )

    ? NOME //-- "antonio cae"

    Else

    ? "Falhou ao pesquisar (" + AllTrim( cGet ) + ")"

    End

    Obs.: A indexação diferencia maiúsculo de minusculo, então pode causar diferença, nesse caso utilize Upper no indice e na pesquisa para sanar a diferença

  5. Tente com o comando: HB_ATokens()
          // EXEMPLO ENVIADO POR Arthur Silvestre em: 03/10/2013, Show()
          // vXML := cGetFile( "*.xml", "Selecione o xml" )
          // AQUI PEGA O TEXTO DO *.XML
          vXML := cXmlCarta
     
          oText = TTxtFile():New( vXML ) // Read Mode
     
          oText:nMaxLineLength := 5120
     
          TempText = oText:ReadLine()
     
          TempText := StrTran( TempText, '/' )
     
          aText := HB_ATokens( TempText, '<xCorrecao>' )
     
          WTEXTO := aText[2]
     
          // AQUI PEGA A DATA DA CARTA DE CORRECAO DO .XML
          vXmlDT := cXmlCarta
     
          oTextDt = TTxtFile():New( vXmlDT ) // Read Mode
     
          oTextDt:nMaxLineLength := 5120
     
          TempTextDT = oTextDt:ReadLine()
     
          TempTextDT := StrTran( TempTextDT, '/' )
     
          //<dhEvento>2013-10-04T09:58:50-03:00</dhEvento>
          // DATA DO EVENTO
          aDataEv := HB_ATokens( TempTextDT, '<dhEvento>' )
    
    Abs

    Tratar como texto eu já imagino uma solução, mas queria uma solução similar a que já está implementada, caso não exista outra forma eu vou partir para o tratamento do texto, mas queria algo mais sofisticado e simples de implementar.

  6. Como fazer para tratar esse caso:



    <importados>
    <aliquotaInterestadual>4.00</aliquotaInterestadual>
    <prefixo num="1">Estrangeira - Importação direta, exceto a indicada no código 6</prefixo>
    <prefixo num="2">Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7</prefixo>
    <prefixo num="6">Estrangeira - Importação direta, sem similar nacional, constante em lista de Resolução CAMEX (vide Resolução Camex 79/2012)</prefixo>
    <prefixo num="7">Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista de Resolução CAMEX (vide Resolução Camex 79/2012)</prefixo>
    </importados>
    As tags são numeradas e não são fechadas com a mesma nomenclatura
  7. /***************************************************************************
    * Sistema .....: Farma
    * Programa ....: AvantFiscal.PRG
    * Autor .......: Samir
    * Data ........: 06/05/2015 às 14:15:31
    * Revisado em .: 06/05/2015 às 14:15:31
    ***************************************************************************/
    
    #include "fivewin.ch"
    #include "fileio.ch"
    #include "hbxml.ch"
    
    CLASS TComunicaXML
    
       //-- Propriedades -----------------------------------------------------//
       DATA cUrl                  AS Character   INIT ""
    
       Data oXml                  AS OBJECT
       Data oXml_Segmento         AS OBJECT
    
       Data oNode                 AS OBJECT
    
       Data cFileRetorno          AS Character   INIT ""
    
       Data oConecta              AS OBJECT
       Data cRetorno              AS Character   INIT ""
    
       Data aResult               AS Array       INIT {}
    
       //-- Métodos ----------------------------------------------------------//
    
       //-- Construção
       METHOD New()                                                CONSTRUCTOR
       METHOD End()
    
       METHOD Comunicar()
    
       METHOD Tratar_Retorno()
       METHOD Tratar_XML()
       METHOD Tratar_Segmento()
       METHOD Tratar_Detalhes()
       METHOD Tratar_Saida()
       METHOD Tratar_Entrada()
       METHOD Tratar_Federal()
       METHOD Tratar_Excecoes()
       METHOD Tratar_ExcecaoEstado()
       METHOD Tratar_Importados()
    
       METHOD VerificaTag(cTag)
       METHOD PegaTag(cTag)
    
    ENDCLASS
    
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD New(cIdIntegracao, cIdCliente, cToken, cUrl) CLASS TComunicaXML
    ****************************************************************************
    *
    * Instanciar objeto
    * Parametros: cIdIntegracao, cIdCliente, cToken, cUrl
    * Retorno: Self (Object)
    *
    * Autor .......: Samir
    * Data ........: 06/05/2015 às 14:15:31
    *
    ****************************************************************************
    
    return Self
    
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD End() CLASS TComunicaXML
    ****************************************************************************
    *
    * Liberar da memória o objeto
    * Parametros: Nenhum
    * Retorno: Nil
    *
    * Autor .......: Samir
    * Data ........: 06/05/2015 às 14:15:31
    *
    ****************************************************************************
    
       Self := Nil
    
    return nil
    
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Comunicar() CLASS TComunicaXML
    ****************************************************************************
    *
    * Comunicar no webservice
    * Parametros: 
    * Retorno: lResult
    *
    * Autor: Samir
    * 06/05/2015 - 14:16:50
    *
    ****************************************************************************
    
    local lResult := .T., cUrl := "", nContador := 0
    
       //-- Limpar variável de retorno no inicio para caso gere erro não mantenha o anterior
       ::cRetorno := ""
    
       //-- Preencher a URL do webservice
       cUrl := ::cUrl
    
       //-- Instanciar o objeto do Internet Explorer
       Try
    
          ::oConecta := CreateObject( "MSXML2.XMLHTTP.3.0" )
    
       Catch
    
          Try
    
             ::oConecta := CreateObject( "MSXML2.XMLHTTP" )
    
          Catch
    
             Try
    
                ::oConecta := CreateObject( "Microsoft.XMLHTTP" )
    
             catch
    
                MsgInfo("Falha ao criar objeto de conexão."+ CRLF + "Verifique a versão do Internet Explorer e a conexão de internet.")
    
                Return .F.
    
             End
    
          End
    
       End
    
       //-- configura os parametros do wsdl
       ::oConecta:open("GET", cUrl, .F.)
    
       ::oConecta:SetRequestHeader( "Content-Type" , "text/xml; charset=ISO-8859-1" )
    
       //-- envia o request
       TRY
    
          ::oConecta:send()
    
       CATCH oError
    
          MsgInfo("Erro ao conectar ao site:;" + ::cUrl + CRLF + "Verifique a versão do Internet Explorer e a conexão de internet.")
    
          Return .f.
    
       END
    
       //-- aguarda alguns segundos a resposta
       While ::oConecta:readyState <> 4
    
          millisec(50)
    
          SysRefresh()
    
          nContador++
    
          //-- Teste para não permitir loop infinito
          If nContador > 100
    
             MsgInfo("Tempo limite de conexão atingido, verifique.")
    
             Return .F.
    
          End
    
       End
    
       //-- Gravar o retorno na variável
       ::cRetorno := ::oConecta:ResponseBody
    
       ::Tratar_Retorno()
    
    return lResult
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_Retorno() CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar retorno do site
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 07/05/2015 - 16:39:02
    *
    ****************************************************************************
    
    local hHandle := 0, oXml
    
       ::cFileRetorno := DirExe() + "RetornoAF_"+StrTran(Now(),":")+".xml"
    
       FWrite( FCreate(::cFileRetorno), ::cRetorno)
    
       hHandle := FOpen( ::cFileRetorno )
    
       IF hHandle == -1
    
         MsgInfo("Não foi possível abrir o XML!")
    
       Else
    
          ::oXml := TXmlDocument():New( hHandle )
    
          IF ::oxml:nStatus != HBXML_STATUS_OK
    
             MsgInfo("Erro ao processar o arquivo:" + CRLF +;
                 "na Linha: " + AllTrim( Str( oxml:nLine ) ) + CRLF +;
                 "Erro: " + HB_XmlErrorDesc( oxml:nError ) + CRLF +;
                 "Erro na Tag: " + oxml:oErrorNode:cName + CRLF +;
                 "Início Tag na linha: " + AllTrim( Str( oxml:oErrorNode:nBeginLine ) ))
    
          Else
    
             ::Tratar_Xml( )
    
             MsgInfo("Arquivo válido, verifique")
    
          End
    
       End
    
       fClose( hHandle )
    
       fErase( ::cFileRetorno )
    
       ::cFileRetorno := ""
    
    return
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_XML() CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar o XML para obter as informações por segmento
    * Parametros: oXml
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:36:19
    *
    ****************************************************************************
    
    local oSegmento, nContador := 0, cResultado := ""
    
       ::oXml := TOLEAUTO():New("Microsoft.XMLDOM")
       ::oXml:async := .f.
    
       If ::oXml:load( ::cFileRetorno )
    
          If ::VerificaTag( "segmento" )
    
             ::oXML_Segmento := ::oXml:getElementsByTagName( "segmento" )
    
             for nContador := 1 to ::oXml_Segmento:length
    
                ::Tratar_Segmento(nContador)
    
             End
    
          End
    
       End
    
       For nContador := 1 to Len(::aResult)
          cResultado += ::aResult[nContador,1] + " NCM: " + ::aResult[nContador,2] + CRLF
       End
       
       MsgInfo(cResultado)
    
       MsgInfo("Fim")
    
    return
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_Segmento(nContador) CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar retorno de segmento do XML
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:51:07
    *
    ****************************************************************************
    Local lResult := .T.
    
       If ::VerificaTag( "detalhes" ) .And. lResult
    
          lResult := ::Tratar_Detalhes(nContador)
    
       End
    
       If ::VerificaTag( "saida" ) .And. lResult
    
          lResult := ::Tratar_Saida(nContador)
    
       End
    
       If ::VerificaTag( "entrada" ) .And. lResult
    
          lResult := ::Tratar_Entrada(nContador)
    
       End
    
       If ::VerificaTag( "federal" ) .And. lResult
    
          lResult := ::Tratar_Federal(nContador)
    
       End
    
    return
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_Detalhes(nContador) CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar os detalhes
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:53:45
    *
    ****************************************************************************
    //<detalhes>
    //<ncm>2501.00.20</ncm>
    //<ncm_ex> </ncm_ex>
    //<idSegmento>191</idSegmento>
    //<nomeSegmento>Sal Refinado</nomeSegmento>
    //<descricaoNcm>Sal de mesa</descricaoNcm>
    //<tipoProduto>sem ean</tipoProduto>
    //<observacao> </observacao>
    //<dtCadastro>07/02/2013 10:56</dtCadastro>
    //<dtUltimaAtualizacao>03/04/2013 14:15</dtUltimaAtualizacao>
    //</detalhes>
    Local xRetorno
    
       ::oNode := ::oXML_Segmento[nContador-1]:getElementsByTagName( "detalhes" )
    
       aAdd( ::aResult, { ::PegaTag( "nomeSegmento" ), "NCM: " + ::PegaTag("ncm") } )
    
    return .T.
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_Saida(nContador) CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar os detalhes
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:53:45
    *
    ****************************************************************************
    
    //local
    
    
    
    return .T.
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_Entrada(nContador) CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar os detalhes
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:53:45
    *
    ****************************************************************************
    
    //local
    
    
    
    return .T.
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_Federal(nContador) CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar os detalhes
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:53:45
    *
    ****************************************************************************
    
    //local
    
    
    
    return .T.
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_Excecoes() CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar os detalhes
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:53:45
    *
    ****************************************************************************
    
    //local
    
    
    
    return
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_ExcecaoEstado() CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar os detalhes
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:53:45
    *
    ****************************************************************************
    
    //local
    
    
    
    return
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD Tratar_Importados() CLASS TComunicaXML
    ****************************************************************************
    *
    * Tratar os detalhes
    * Parametros:
    * Retorno:
    *
    * Autor: Samir
    * 11/05/2015 - 08:53:45
    *
    ****************************************************************************
    
    //local
    
    
    
    return
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD VerificaTag(cTag) CLASS TComunicaXML
    ****************************************************************************
    *
    * Verifica a existência de uma tag no retorno
    * Parametros: cTag
    * Retorno: lExiste
    *
    * Autor: Samir
    * 14/05/2015 - 10:11:35
    *
    ****************************************************************************
    
    local lExiste := .F.
    
       if upper( "<"+cTag+">" )   $ upper( ::cRetorno ) .And.;
          upper( "</"+cTag+">" )  $ upper( ::cRetorno )
    
          lExiste := .T.
    
       end
    
    return lExiste
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    METHOD PegaTag(cTag) CLASS TComunicaXML
    ****************************************************************************
    *
    * Obter o conteudo da tag no node
    * Parametros: oNode
    * Retorno: cResult
    *
    * Autor: Samir
    * 14/05/2015 - 10:55:28
    *
    ****************************************************************************
    
    local cResult := Replicate("#!",10)
    
       Try
       
          cResult := ::oNode[0]:getElementsByTagName( cTag ):Item(0):Text
          
       Catch
       
          cResult := Replicate("#!",10)
       
       End
       
       If ( cResult = Replicate("#!",10) )
       
          MsgInfo("Erro ao pegar informação da TAG: " + cTag, "Erro!")
          
       End
    
    return cResult
    /*------------------------------------------------------------------------*/
    
    ****************************************************************************
    procedure TestaWebservice()
    ****************************************************************************
    *
    *
    * Parametros:
    * Retorno: Nenhum
    *
    * Autor: Samir
    * 07/05/2015 - 15:15:23
    *
    ****************************************************************************
    
    local oAF, cEan := Space(15)
    
       oAF := TComunicaXML():New()
    
       oAf:Comunicar()
    
       oAf:End()
    
    Return Nil
    
    /*------------------------------------------------------------------------*/
    

    O esqueleto da classe está assim, tratando por nódulos, peguei como exemplo para implementar as modificações daqui:

    http://www.w3schools.com/xml/xml_applications.asp

  8. Amiguinhos,

    Vejamos o tratamento que dariamos ao .XML em questão usando as dicas acima:

    ...
        <segmento>
            <detalhes>
                ...
            </detalhes>
            <saida>
                ...
            </saida>
            <entrada>
            ...
        </segmento>
        <segmento>
            ...
    
    

    Exemplificando:

    oXMLDoc := TOLEAUTO():New("Microsoft.XMLDOM") 
       oXMLDoc:async := .f. 
     
       lSuccess := oXMLDoc:load( cXMLFile )
     
       if lSuccess
          ...
          // Farei a leitura de quantos segmentos houverem
          nSegmentos := oXMLDoc:getElementsByTagName( "segmento" ) 
          for i = 1 to nSegmentos:length 
              ... // Pega XML do trecho 
              cXMLDetalhes := oXMLDoc:getElementsByTagName( "Detalhes" ):Item(i-1):xml 
              ...
              // Dou tratamento ao xml resgatado em cXMLDetalhes
              ...
              cXMLSaida := oXMLDoc:getElementsByTagName( "Saida" ):Item(i-1):xml
              ...
              // Dou tratamento ao xml resgatado em cXMLSaida
              ...
              cXMLEntrada := oXMLDoc:getElementsByTagName( "Entrada" ):Item(i-1):xml
              ...
              // Dou tratamento ao xml resgatado em cXMLEntrada
              ...
    

    Outra coisa que se deve levar em consideração é o fato de uma tag não existir no .XML, por padrão ao escrever o conteúdo de um arquivo assim é melhor que exista conteúdo, mas muitas vezes encontramos "lixo" que nos atrapalham como <TagIncompleta /> ou <TagVazia></TagVazia>. Nos dois caso só nos faz perder tempo em processamento mas ainda assim devemos tratar e para tal é necessário criticar se a tag existe.

    Neste caso posso fazer de duas formas:

    Via DOM:

    ...
       cXMLDoc  := MemoRead( cEDXFile )
       
       oXMLDoc := TOLEAUTO():New("Microsoft.XMLDOM")
       oXMLDoc:async := .f. 
    
       lSuccess := oXMLDoc:load( cEDXFile )
    
       if lSuccess
    
          oteste := oXMLDoc:getElementsByTagName( "segmento" )
    	  
          lExisteTagDetalhes := CriticaTagName( "detalhes", oXMLDoc, cXMLDoc )
          lExisteTagSaida    := CriticaTagName( "saida", oXMLDoc, cXMLDoc )
          ...
    
    Function CriticaTagName( _tagName_, oXMLDoc, cXMLDoc )
       if upper( "<"+_tagName_+">" ) $ upper( cXMLDoc )
          _cTagName_ := oXMLDoc:getElementsByTagName( _tagName_ ):Item(0):Text
       else
          _cTagName_ := ""
       endif
       return _cTagName_
    
    

    Via STRING:

    ...
       cXMLDoc  := MemoRead( cEDXFile )
    
       if ! empty( cXMLDoc )
       
          lExisteTagDetalhes := ValidaXMLField( "Detalhes", cXMLDoc )
          lExisteTagSaida    := ValidaXMLField( "Saida"   , cXMLDoc )
          ...
    
    function ValidaXMLField( _XMLField_, _XMLFile_ )
       return iif( AT( "<"+_XMLField_+">", _XMLFile_ ) > 0, .t., .f. )
    
    

    Era basicamente isso que eu procurava, vou tratar em métodos em uma classe para poder facilitar o entendimento agora e tendo sucesso aviso aqui, muito obrigado!

  9. 01 - a transação é feita via internet - No modelo DEDICADO, sim

    02 - que equipamentos são necessários para desenvolver algo assim - Pinpad apenas

    03 - como funciona a burocracia, digo, a administradora do cartão precisa autorizar? Como funciona isto? - A forma mais simples é através de alguma empresa certificadora, por exemplo a Software Express com o SiTef.
    Você utilizada DLL deles para realizar as transações com um aplicativo deles que vai se conectar com os servidores das administradoras.

    Aqui na empresa demorei cerca de 3 meses entre desenvolvimento, teste e homologação.

  10. <?xml version="1.0" encoding="ISO-8859-1" ?>
    <tributacoes>
        <segmento>
            <detalhes>
                <ncm>2501.00.20</ncm>
                <ncm_ex> </ncm_ex>
                <idSegmento>191</idSegmento>
                <nomeSegmento>Sal Refinado</nomeSegmento>
                <descricaoNcm>Sal de mesa</descricaoNcm>
                <tipoProduto>sem ean</tipoProduto>
                <observacao> </observacao>
                <dtCadastro>07/02/2013 10:56</dtCadastro>
                <dtUltimaAtualizacao>03/04/2013 14:15</dtUltimaAtualizacao>
            </detalhes>
            <saida>
                <icmsSaida>0.00</icmsSaida>
                <icmsSituacao>Isento/Alíquota Zero</icmsSituacao>
                <icmsCstSaida>040</icmsCstSaida>
                <icmsLeiSaida>Lei 4892/2006</icmsLeiSaida>
                <icmsLeiLinkSaida>http://alerjln1.alerj.rj.gov.br/CONTLEI.NSF/0/797b7f8a3063a4d78325721f006764da?OpenDocument</icmsLeiLinkSaida>
                <ipi>0.00</ipi>
            </saida>
            <entrada>
                <ufDestino>RJ</ufDestino>
                <subItemST> </subItemST>
                <mvaInterno>0.00</mvaInterno>
                <mvaExterno>0.00</mvaExterno>
                <mvaImportado>0.00</mvaImportado>
                <baseReduzida>0.00</baseReduzida>
                <icmsInterno>19.00</icmsInterno>
                <icmsLeiInterno>Decreto 32.161 de 2002</icmsLeiInterno>
                <icmsLeiLinkInterno>http://www.fazenda.rj.gov.br/portal/index.portal?_nfpb=true&_pageLabel=tributaria&file=/legislacao/tributaria/decretos/2002/32161.shtml</icmsLeiLinkInterno>
                <icmsAtacadoAC>12.00</icmsAtacadoAC>
                <icmsIndustriaAC>12.00</icmsIndustriaAC>
                <icmsAtacadoAL>12.00</icmsAtacadoAL>
                <icmsIndustriaAL>12.00</icmsIndustriaAL>
                <icmsAtacadoAM>12.00</icmsAtacadoAM>
                <icmsIndustriaAM>12.00</icmsIndustriaAM>
                <icmsAtacadoAP>12.00</icmsAtacadoAP>
                <icmsIndustriaAP>12.00</icmsIndustriaAP>
                <icmsAtacadoBA>12.00</icmsAtacadoBA>
                <icmsIndustriaBA>12.00</icmsIndustriaBA>
                <icmsAtacadoCE>12.00</icmsAtacadoCE>
                <icmsIndustriaCE>12.00</icmsIndustriaCE>
                <icmsAtacadoDF>12.00</icmsAtacadoDF>
                <icmsIndustriaDF>12.00</icmsIndustriaDF>
                <icmsAtacadoES>12.00</icmsAtacadoES>
                <icmsIndustriaES>12.00</icmsIndustriaES>
                <icmsAtacadoGO>12.00</icmsAtacadoGO>
                <icmsIndustriaGO>12.00</icmsIndustriaGO>
                <icmsAtacadoMA>12.00</icmsAtacadoMA>
                <icmsIndustriaMA>12.00</icmsIndustriaMA>
                <icmsAtacadoMG>12.00</icmsAtacadoMG>
                <icmsIndustriaMG>12.00</icmsIndustriaMG>
                <icmsAtacadoMS>12.00</icmsAtacadoMS>
                <icmsIndustriaMS>12.00</icmsIndustriaMS>
                <icmsAtacadoMT>12.00</icmsAtacadoMT>
                <icmsIndustriaMT>12.00</icmsIndustriaMT>
                <icmsAtacadoPA>12.00</icmsAtacadoPA>
                <icmsIndustriaPA>12.00</icmsIndustriaPA>
                <icmsAtacadoPB>12.00</icmsAtacadoPB>
                <icmsIndustriaPB>12.00</icmsIndustriaPB>
                <icmsAtacadoPE>12.00</icmsAtacadoPE>
                <icmsIndustriaPE>12.00</icmsIndustriaPE>
                <icmsAtacadoPI>12.00</icmsAtacadoPI>
                <icmsIndustriaPI>12.00</icmsIndustriaPI>
                <icmsAtacadoPR>12.00</icmsAtacadoPR>
                <icmsIndustriaPR>12.00</icmsIndustriaPR>
                <icmsAtacadoRJ>19.00</icmsAtacadoRJ>
                <icmsIndustriaRJ>19.00</icmsIndustriaRJ>
                <icmsAtacadoRN>12.00</icmsAtacadoRN>
                <icmsIndustriaRN>12.00</icmsIndustriaRN>
                <icmsAtacadoRO>12.00</icmsAtacadoRO>
                <icmsIndustriaRO>12.00</icmsIndustriaRO>
                <icmsAtacadoRR>12.00</icmsAtacadoRR>
                <icmsIndustriaRR>12.00</icmsIndustriaRR>
                <icmsAtacadoRS>12.00</icmsAtacadoRS>
                <icmsIndustriaRS>12.00</icmsIndustriaRS>
                <icmsAtacadoSC>12.00</icmsAtacadoSC>
                <icmsIndustriaSC>12.00</icmsIndustriaSC>
                <icmsAtacadoSE>12.00</icmsAtacadoSE>
                <icmsIndustriaSE>12.00</icmsIndustriaSE>
                <icmsAtacadoSP>12.00</icmsAtacadoSP>
                <icmsIndustriaSP>12.00</icmsIndustriaSP>
                <icmsAtacadoTO>12.00</icmsAtacadoTO>
                <icmsIndustriaTO>12.00</icmsIndustriaTO>
            </entrada>
            <federal>
                <piscofinsSituacao>Tributado</piscofinsSituacao>
                <piscofinsCstEntrada>50</piscofinsCstEntrada>
                <piscofinsCstSaida>01</piscofinsCstSaida>
                <pisEntrada>1.650</pisEntrada>
                <cofinsEntrada>7.600</cofinsEntrada>
                <pisSaida>1.650</pisSaida>
                <cofinsSaida>7.600</cofinsSaida>
                <piscofinsLei> </piscofinsLei>
                <piscofinsLeiLink> </piscofinsLeiLink>
                <piscofinsNatRec> </piscofinsNatRec>
            </federal>
            <tipoLista> </tipoLista>
        </segmento>
        <segmento>
            <detalhes>
                <ncm>2201.90.00</ncm>
                <ncm_ex> </ncm_ex>
                <idSegmento>1467</idSegmento>
                <nomeSegmento>Gelo</nomeSegmento>
                <descricaoNcm>Outros gelo e neve</descricaoNcm>
                <tipoProduto>sem ean</tipoProduto>
                <observacao> </observacao>
                <dtCadastro>25/10/2013 16:48</dtCadastro>
                <dtUltimaAtualizacao>25/10/2013 16:48</dtUltimaAtualizacao>
            </detalhes>
            <saida>
                <icmsSaida>0.00</icmsSaida>
                <icmsSituacao>ST - Substituição Tributária</icmsSituacao>
                <icmsCstSaida>060</icmsCstSaida>
                <icmsLeiSaida>ITEM 34,  Livro II, Anexo I,RICMS RJ</icmsLeiSaida>
                <icmsLeiLinkSaida>http://www.fazenda.rj.gov.br/portal/index.portal?_nfpb=true&_pageLabel=tributaria&file=/legislacao/tributaria/decretos/2000/ricms/index_livro_II.shtml</icmsLeiLinkSaida>
                <ipi>0.00</ipi>
            </saida>
            <entrada>
                <ufDestino>RJ</ufDestino>
                <subItemST>1.5</subItemST>
                <mvaInterno>70.00</mvaInterno>
                <mvaExterno>0.00</mvaExterno>
                <mvaImportado>0.00</mvaImportado>
                <baseReduzida>0.00</baseReduzida>
                <icmsInterno>19.00</icmsInterno>
                <icmsLeiInterno>Decreto 39.855/2006</icmsLeiInterno>
                <icmsLeiLinkInterno>http://www.fazenda.rj.gov.br/sefaz/faces/oracle/webcenter/portalapp/pages/navigation-renderer.jspx?_afrLoop=118327526224000&datasource=UCMServer%23dDocName%3A81207&_adf.ctrl-state=lzncd73uj_32</icmsLeiLinkInterno>
                <icmsAtacadoAC>12.00</icmsAtacadoAC>
                <icmsIndustriaAC>12.00</icmsIndustriaAC>
                <icmsAtacadoAL>12.00</icmsAtacadoAL>
                <icmsIndustriaAL>12.00</icmsIndustriaAL>
                <icmsAtacadoAM>12.00</icmsAtacadoAM>
                <icmsIndustriaAM>12.00</icmsIndustriaAM>
                <icmsAtacadoAP>12.00</icmsAtacadoAP>
                <icmsIndustriaAP>12.00</icmsIndustriaAP>
                <icmsAtacadoBA>12.00</icmsAtacadoBA>
                <icmsIndustriaBA>12.00</icmsIndustriaBA>
                <icmsAtacadoCE>12.00</icmsAtacadoCE>
                <icmsIndustriaCE>12.00</icmsIndustriaCE>
                <icmsAtacadoDF>12.00</icmsAtacadoDF>
                <icmsIndustriaDF>12.00</icmsIndustriaDF>
                <icmsAtacadoES>12.00</icmsAtacadoES>
                <icmsIndustriaES>12.00</icmsIndustriaES>
                <icmsAtacadoGO>12.00</icmsAtacadoGO>
                <icmsIndustriaGO>12.00</icmsIndustriaGO>
                <icmsAtacadoMA>12.00</icmsAtacadoMA>
                <icmsIndustriaMA>12.00</icmsIndustriaMA>
                <icmsAtacadoMG>12.00</icmsAtacadoMG>
                <icmsIndustriaMG>12.00</icmsIndustriaMG>
                <icmsAtacadoMS>12.00</icmsAtacadoMS>
                <icmsIndustriaMS>12.00</icmsIndustriaMS>
                <icmsAtacadoMT>12.00</icmsAtacadoMT>
                <icmsIndustriaMT>12.00</icmsIndustriaMT>
                <icmsAtacadoPA>12.00</icmsAtacadoPA>
                <icmsIndustriaPA>12.00</icmsIndustriaPA>
                <icmsAtacadoPB>12.00</icmsAtacadoPB>
                <icmsIndustriaPB>12.00</icmsIndustriaPB>
                <icmsAtacadoPE>12.00</icmsAtacadoPE>
                <icmsIndustriaPE>12.00</icmsIndustriaPE>
                <icmsAtacadoPI>12.00</icmsAtacadoPI>
                <icmsIndustriaPI>12.00</icmsIndustriaPI>
                <icmsAtacadoPR>12.00</icmsAtacadoPR>
                <icmsIndustriaPR>12.00</icmsIndustriaPR>
                <icmsAtacadoRJ>19.00</icmsAtacadoRJ>
                <icmsIndustriaRJ>19.00</icmsIndustriaRJ>
                <icmsAtacadoRN>12.00</icmsAtacadoRN>
                <icmsIndustriaRN>12.00</icmsIndustriaRN>
                <icmsAtacadoRO>12.00</icmsAtacadoRO>
                <icmsIndustriaRO>12.00</icmsIndustriaRO>
                <icmsAtacadoRR>12.00</icmsAtacadoRR>
                <icmsIndustriaRR>12.00</icmsIndustriaRR>
                <icmsAtacadoRS>12.00</icmsAtacadoRS>
                <icmsIndustriaRS>12.00</icmsIndustriaRS>
                <icmsAtacadoSC>12.00</icmsAtacadoSC>
                <icmsIndustriaSC>12.00</icmsIndustriaSC>
                <icmsAtacadoSE>12.00</icmsAtacadoSE>
                <icmsIndustriaSE>12.00</icmsIndustriaSE>
                <icmsAtacadoSP>12.00</icmsAtacadoSP>
                <icmsIndustriaSP>12.00</icmsIndustriaSP>
                <icmsAtacadoTO>12.00</icmsAtacadoTO>
                <icmsIndustriaTO>12.00</icmsIndustriaTO>
            </entrada>
            <federal>
                <piscofinsSituacao>Tributado</piscofinsSituacao>
                <piscofinsCstEntrada>50</piscofinsCstEntrada>
                <piscofinsCstSaida>01</piscofinsCstSaida>
                <pisEntrada>1.650</pisEntrada>
                <cofinsEntrada>7.600</cofinsEntrada>
                <pisSaida>1.650</pisSaida>
                <cofinsSaida>7.600</cofinsSaida>
                <piscofinsLei> </piscofinsLei>
                <piscofinsLeiLink> </piscofinsLeiLink>
                <piscofinsNatRec> </piscofinsNatRec>
            </federal>
            <tipoLista> </tipoLista>
        </segmento>
        <segmento>
            <detalhes>
                <ncm>1905.90.90</ncm>
                <ncm_ex> </ncm_ex>
                <idSegmento>361</idSegmento>
                <nomeSegmento>Alfajor</nomeSegmento>
                <descricaoNcm>(Tributado) Outros - Produtos de padaria, pastelaria ou da indústria de bolachas e biscoitos, mesmo adicionados de cacau e produtos semelhantes.</descricaoNcm>
                <tipoProduto>sem ean</tipoProduto>
                <observacao> </observacao>
                <dtCadastro>15/02/2013 11:49</dtCadastro>
                <dtUltimaAtualizacao>05/07/2014 13:09</dtUltimaAtualizacao>
            </detalhes>
            <saida>
                <icmsSaida>19.00</icmsSaida>
                <icmsSituacao>Tributado</icmsSituacao>
                <icmsCstSaida>000</icmsCstSaida>
                <icmsLeiSaida>Lei 2.657, Artigo 14, Inciso I</icmsLeiSaida>
                <icmsLeiLinkSaida>http://alerjln1.alerj.rj.gov.br/contlei.nsf/f25edae7e64db53b032564fe005262ef/01cc04eee53b3b30032564fb005c2ddf?OpenDocument</icmsLeiLinkSaida>
                <ipi>0.00</ipi>
            </saida>
            <entrada>
                <ufDestino>RJ</ufDestino>
                <subItemST> </subItemST>
                <mvaInterno>0.00</mvaInterno>
                <mvaExterno>0.00</mvaExterno>
                <mvaImportado>0.00</mvaImportado>
                <baseReduzida>0.00</baseReduzida>
                <icmsInterno>19.00</icmsInterno>
                <icmsLeiInterno>Decreto 39.855/2006</icmsLeiInterno>
                <icmsLeiLinkInterno>http://www.fazenda.rj.gov.br/sefaz/faces/oracle/webcenter/portalapp/pages/navigation-renderer.jspx?_afrLoop=118327526224000&datasource=UCMServer%23dDocName%3A81207&_adf.ctrl-state=lzncd73uj_32</icmsLeiLinkInterno>
                <icmsAtacadoAC>12.00</icmsAtacadoAC>
                <icmsIndustriaAC>12.00</icmsIndustriaAC>
                <icmsAtacadoAL>12.00</icmsAtacadoAL>
                <icmsIndustriaAL>12.00</icmsIndustriaAL>
                <icmsAtacadoAM>12.00</icmsAtacadoAM>
                <icmsIndustriaAM>12.00</icmsIndustriaAM>
                <icmsAtacadoAP>12.00</icmsAtacadoAP>
                <icmsIndustriaAP>12.00</icmsIndustriaAP>
                <icmsAtacadoBA>12.00</icmsAtacadoBA>
                <icmsIndustriaBA>12.00</icmsIndustriaBA>
                <icmsAtacadoCE>12.00</icmsAtacadoCE>
                <icmsIndustriaCE>12.00</icmsIndustriaCE>
                <icmsAtacadoDF>12.00</icmsAtacadoDF>
                <icmsIndustriaDF>12.00</icmsIndustriaDF>
                <icmsAtacadoES>12.00</icmsAtacadoES>
                <icmsIndustriaES>12.00</icmsIndustriaES>
                <icmsAtacadoGO>12.00</icmsAtacadoGO>
                <icmsIndustriaGO>12.00</icmsIndustriaGO>
                <icmsAtacadoMA>12.00</icmsAtacadoMA>
                <icmsIndustriaMA>12.00</icmsIndustriaMA>
                <icmsAtacadoMG>12.00</icmsAtacadoMG>
                <icmsIndustriaMG>12.00</icmsIndustriaMG>
                <icmsAtacadoMS>12.00</icmsAtacadoMS>
                <icmsIndustriaMS>12.00</icmsIndustriaMS>
                <icmsAtacadoMT>12.00</icmsAtacadoMT>
                <icmsIndustriaMT>12.00</icmsIndustriaMT>
                <icmsAtacadoPA>12.00</icmsAtacadoPA>
                <icmsIndustriaPA>12.00</icmsIndustriaPA>
                <icmsAtacadoPB>12.00</icmsAtacadoPB>
                <icmsIndustriaPB>12.00</icmsIndustriaPB>
                <icmsAtacadoPE>12.00</icmsAtacadoPE>
                <icmsIndustriaPE>12.00</icmsIndustriaPE>
                <icmsAtacadoPI>12.00</icmsAtacadoPI>
                <icmsIndustriaPI>12.00</icmsIndustriaPI>
                <icmsAtacadoPR>12.00</icmsAtacadoPR>
                <icmsIndustriaPR>12.00</icmsIndustriaPR>
                <icmsAtacadoRJ>19.00</icmsAtacadoRJ>
                <icmsIndustriaRJ>19.00</icmsIndustriaRJ>
                <icmsAtacadoRN>12.00</icmsAtacadoRN>
                <icmsIndustriaRN>12.00</icmsIndustriaRN>
                <icmsAtacadoRO>12.00</icmsAtacadoRO>
                <icmsIndustriaRO>12.00</icmsIndustriaRO>
                <icmsAtacadoRR>12.00</icmsAtacadoRR>
                <icmsIndustriaRR>12.00</icmsIndustriaRR>
                <icmsAtacadoRS>12.00</icmsAtacadoRS>
                <icmsIndustriaRS>12.00</icmsIndustriaRS>
                <icmsAtacadoSC>12.00</icmsAtacadoSC>
                <icmsIndustriaSC>12.00</icmsIndustriaSC>
                <icmsAtacadoSE>12.00</icmsAtacadoSE>
                <icmsIndustriaSE>12.00</icmsIndustriaSE>
                <icmsAtacadoSP>12.00</icmsAtacadoSP>
                <icmsIndustriaSP>12.00</icmsIndustriaSP>
                <icmsAtacadoTO>12.00</icmsAtacadoTO>
                <icmsIndustriaTO>12.00</icmsIndustriaTO>
            </entrada>
            <federal>
                <piscofinsSituacao>Tributado</piscofinsSituacao>
                <piscofinsCstEntrada>50</piscofinsCstEntrada>
                <piscofinsCstSaida>01</piscofinsCstSaida>
                <pisEntrada>1.650</pisEntrada>
                <cofinsEntrada>7.600</cofinsEntrada>
                <pisSaida>1.650</pisSaida>
                <cofinsSaida>7.600</cofinsSaida>
                <piscofinsLei> </piscofinsLei>
                <piscofinsLeiLink> </piscofinsLeiLink>
                <piscofinsNatRec> </piscofinsNatRec>
            </federal>
            <tipoLista> </tipoLista>
        </segmento>
        <segmento>
            <detalhes>
                <ncm>1905.90.90</ncm>
                <ncm_ex> </ncm_ex>
                <idSegmento>23</idSegmento>
                <nomeSegmento>Bolo</nomeSegmento>
                <descricaoNcm>(Tributado) Outros - Produtos de padaria, pastelaria ou da indústria de bolachas e biscoitos, mesmo adicionados de cacau e produtos semelhantes.</descricaoNcm>
                <tipoProduto>sem ean</tipoProduto>
                <observacao> </observacao>
                <dtCadastro>15/01/2013 15:47</dtCadastro>
                <dtUltimaAtualizacao>24/02/2015 11:23</dtUltimaAtualizacao>
            </detalhes>
            <saida>
                <icmsSaida>19.00</icmsSaida>
                <icmsSituacao>Tributado</icmsSituacao>
                <icmsCstSaida>000</icmsCstSaida>
                <icmsLeiSaida>Lei 2.657, Artigo 14, Inciso I</icmsLeiSaida>
                <icmsLeiLinkSaida>http://alerjln1.alerj.rj.gov.br/contlei.nsf/f25edae7e64db53b032564fe005262ef/01cc04eee53b3b30032564fb005c2ddf?OpenDocument</icmsLeiLinkSaida>
                <ipi>0.00</ipi>
            </saida>
            <entrada>
                <ufDestino>RJ</ufDestino>
                <subItemST> </subItemST>
                <mvaInterno>0.00</mvaInterno>
                <mvaExterno>0.00</mvaExterno>
                <mvaImportado>0.00</mvaImportado>
                <baseReduzida>0.00</baseReduzida>
                <icmsInterno>19.00</icmsInterno>
                <icmsLeiInterno>Decreto 39.855/2006</icmsLeiInterno>
                <icmsLeiLinkInterno>http://www.fazenda.rj.gov.br/sefaz/faces/oracle/webcenter/portalapp/pages/navigation-renderer.jspx?_afrLoop=118327526224000&datasource=UCMServer%23dDocName%3A81207&_adf.ctrl-state=lzncd73uj_32</icmsLeiLinkInterno>
                <icmsAtacadoAC>12.00</icmsAtacadoAC>
                <icmsIndustriaAC>12.00</icmsIndustriaAC>
                <icmsAtacadoAL>12.00</icmsAtacadoAL>
                <icmsIndustriaAL>12.00</icmsIndustriaAL>
                <icmsAtacadoAM>12.00</icmsAtacadoAM>
                <icmsIndustriaAM>12.00</icmsIndustriaAM>
                <icmsAtacadoAP>12.00</icmsAtacadoAP>
                <icmsIndustriaAP>12.00</icmsIndustriaAP>
                <icmsAtacadoBA>12.00</icmsAtacadoBA>
                <icmsIndustriaBA>12.00</icmsIndustriaBA>
                <icmsAtacadoCE>12.00</icmsAtacadoCE>
                <icmsIndustriaCE>12.00</icmsIndustriaCE>
                <icmsAtacadoDF>12.00</icmsAtacadoDF>
                <icmsIndustriaDF>12.00</icmsIndustriaDF>
                <icmsAtacadoES>12.00</icmsAtacadoES>
                <icmsIndustriaES>12.00</icmsIndustriaES>
                <icmsAtacadoGO>12.00</icmsAtacadoGO>
                <icmsIndustriaGO>12.00</icmsIndustriaGO>
                <icmsAtacadoMA>12.00</icmsAtacadoMA>
                <icmsIndustriaMA>12.00</icmsIndustriaMA>
                <icmsAtacadoMG>12.00</icmsAtacadoMG>
                <icmsIndustriaMG>12.00</icmsIndustriaMG>
                <icmsAtacadoMS>12.00</icmsAtacadoMS>
                <icmsIndustriaMS>12.00</icmsIndustriaMS>
                <icmsAtacadoMT>12.00</icmsAtacadoMT>
                <icmsIndustriaMT>12.00</icmsIndustriaMT>
                <icmsAtacadoPA>12.00</icmsAtacadoPA>
                <icmsIndustriaPA>12.00</icmsIndustriaPA>
                <icmsAtacadoPB>12.00</icmsAtacadoPB>
                <icmsIndustriaPB>12.00</icmsIndustriaPB>
                <icmsAtacadoPE>12.00</icmsAtacadoPE>
                <icmsIndustriaPE>12.00</icmsIndustriaPE>
                <icmsAtacadoPI>12.00</icmsAtacadoPI>
                <icmsIndustriaPI>12.00</icmsIndustriaPI>
                <icmsAtacadoPR>12.00</icmsAtacadoPR>
                <icmsIndustriaPR>12.00</icmsIndustriaPR>
                <icmsAtacadoRJ>19.00</icmsAtacadoRJ>
                <icmsIndustriaRJ>19.00</icmsIndustriaRJ>
                <icmsAtacadoRN>12.00</icmsAtacadoRN>
                <icmsIndustriaRN>12.00</icmsIndustriaRN>
                <icmsAtacadoRO>12.00</icmsAtacadoRO>
                <icmsIndustriaRO>12.00</icmsIndustriaRO>
                <icmsAtacadoRR>12.00</icmsAtacadoRR>
                <icmsIndustriaRR>12.00</icmsIndustriaRR>
                <icmsAtacadoRS>12.00</icmsAtacadoRS>
                <icmsIndustriaRS>12.00</icmsIndustriaRS>
                <icmsAtacadoSC>12.00</icmsAtacadoSC>
                <icmsIndustriaSC>12.00</icmsIndustriaSC>
                <icmsAtacadoSE>12.00</icmsAtacadoSE>
                <icmsIndustriaSE>12.00</icmsIndustriaSE>
                <icmsAtacadoSP>12.00</icmsAtacadoSP>
                <icmsIndustriaSP>12.00</icmsIndustriaSP>
                <icmsAtacadoTO>12.00</icmsAtacadoTO>
                <icmsIndustriaTO>12.00</icmsIndustriaTO>
            </entrada>
            <federal>
                <piscofinsSituacao>Tributado</piscofinsSituacao>
                <piscofinsCstEntrada>50</piscofinsCstEntrada>
                <piscofinsCstSaida>01</piscofinsCstSaida>
                <pisEntrada>1.650</pisEntrada>
                <cofinsEntrada>7.600</cofinsEntrada>
                <pisSaida>1.650</pisSaida>
                <cofinsSaida>7.600</cofinsSaida>
                <piscofinsLei> </piscofinsLei>
                <piscofinsLeiLink> </piscofinsLeiLink>
                <piscofinsNatRec> </piscofinsNatRec>
            </federal>
            <tipoLista> </tipoLista>
        </segmento>
        <segmento>
            <detalhes>
                <ncm>1905.90.90</ncm>
                <ncm_ex> </ncm_ex>
                <idSegmento>1292</idSegmento>
                <nomeSegmento>Palitos (de Chocolate)</nomeSegmento>
                <descricaoNcm>(Tributado) Outros - Produtos de padaria, pastelaria ou da indústria de bolachas e biscoitos, mesmo adicionados de cacau e produtos semelhantes.</descricaoNcm>
                <tipoProduto>sem ean</tipoProduto>
                <observacao> </observacao>
                <dtCadastro>13/09/2013 10:58</dtCadastro>
                <dtUltimaAtualizacao>11/02/2015 17:58</dtUltimaAtualizacao>
            </detalhes>
            <saida>
                <icmsSaida>19.00</icmsSaida>
                <icmsSituacao>Tributado</icmsSituacao>
                <icmsCstSaida>000</icmsCstSaida>
                <icmsLeiSaida>Lei 2.657, Artigo 14, Inciso I</icmsLeiSaida>
                <icmsLeiLinkSaida>http://alerjln1.alerj.rj.gov.br/contlei.nsf/f25edae7e64db53b032564fe005262ef/01cc04eee53b3b30032564fb005c2ddf?OpenDocument</icmsLeiLinkSaida>
                <ipi>0.00</ipi>
            </saida>
            <entrada>
                <ufDestino>RJ</ufDestino>
                <subItemST> </subItemST>
                <mvaInterno>0.00</mvaInterno>
                <mvaExterno>0.00</mvaExterno>
                <mvaImportado>0.00</mvaImportado>
                <baseReduzida>0.00</baseReduzida>
                <icmsInterno>19.00</icmsInterno>
                <icmsLeiInterno>Decreto 39.855/2006</icmsLeiInterno>
                <icmsLeiLinkInterno>http://www.fazenda.rj.gov.br/sefaz/faces/oracle/webcenter/portalapp/pages/navigation-renderer.jspx?_afrLoop=118327526224000&datasource=UCMServer%23dDocName%3A81207&_adf.ctrl-state=lzncd73uj_32</icmsLeiLinkInterno>
                <icmsAtacadoAC>12.00</icmsAtacadoAC>
                <icmsIndustriaAC>12.00</icmsIndustriaAC>
                <icmsAtacadoAL>12.00</icmsAtacadoAL>
                <icmsIndustriaAL>12.00</icmsIndustriaAL>
                <icmsAtacadoAM>12.00</icmsAtacadoAM>
                <icmsIndustriaAM>12.00</icmsIndustriaAM>
                <icmsAtacadoAP>12.00</icmsAtacadoAP>
                <icmsIndustriaAP>12.00</icmsIndustriaAP>
                <icmsAtacadoBA>12.00</icmsAtacadoBA>
                <icmsIndustriaBA>12.00</icmsIndustriaBA>
                <icmsAtacadoCE>12.00</icmsAtacadoCE>
                <icmsIndustriaCE>12.00</icmsIndustriaCE>
                <icmsAtacadoDF>12.00</icmsAtacadoDF>
                <icmsIndustriaDF>12.00</icmsIndustriaDF>
                <icmsAtacadoES>12.00</icmsAtacadoES>
                <icmsIndustriaES>12.00</icmsIndustriaES>
                <icmsAtacadoGO>12.00</icmsAtacadoGO>
                <icmsIndustriaGO>12.00</icmsIndustriaGO>
                <icmsAtacadoMA>12.00</icmsAtacadoMA>
                <icmsIndustriaMA>12.00</icmsIndustriaMA>
                <icmsAtacadoMG>12.00</icmsAtacadoMG>
                <icmsIndustriaMG>12.00</icmsIndustriaMG>
                <icmsAtacadoMS>12.00</icmsAtacadoMS>
                <icmsIndustriaMS>12.00</icmsIndustriaMS>
                <icmsAtacadoMT>12.00</icmsAtacadoMT>
                <icmsIndustriaMT>12.00</icmsIndustriaMT>
                <icmsAtacadoPA>12.00</icmsAtacadoPA>
                <icmsIndustriaPA>12.00</icmsIndustriaPA>
                <icmsAtacadoPB>12.00</icmsAtacadoPB>
                <icmsIndustriaPB>12.00</icmsIndustriaPB>
                <icmsAtacadoPE>12.00</icmsAtacadoPE>
                <icmsIndustriaPE>12.00</icmsIndustriaPE>
                <icmsAtacadoPI>12.00</icmsAtacadoPI>
                <icmsIndustriaPI>12.00</icmsIndustriaPI>
                <icmsAtacadoPR>12.00</icmsAtacadoPR>
                <icmsIndustriaPR>12.00</icmsIndustriaPR>
                <icmsAtacadoRJ>19.00</icmsAtacadoRJ>
                <icmsIndustriaRJ>19.00</icmsIndustriaRJ>
                <icmsAtacadoRN>12.00</icmsAtacadoRN>
                <icmsIndustriaRN>12.00</icmsIndustriaRN>
                <icmsAtacadoRO>12.00</icmsAtacadoRO>
                <icmsIndustriaRO>12.00</icmsIndustriaRO>
                <icmsAtacadoRR>12.00</icmsAtacadoRR>
                <icmsIndustriaRR>12.00</icmsIndustriaRR>
                <icmsAtacadoRS>12.00</icmsAtacadoRS>
                <icmsIndustriaRS>12.00</icmsIndustriaRS>
                <icmsAtacadoSC>12.00</icmsAtacadoSC>
                <icmsIndustriaSC>12.00</icmsIndustriaSC>
                <icmsAtacadoSE>12.00</icmsAtacadoSE>
                <icmsIndustriaSE>12.00</icmsIndustriaSE>
                <icmsAtacadoSP>12.00</icmsAtacadoSP>
                <icmsIndustriaSP>12.00</icmsIndustriaSP>
                <icmsAtacadoTO>12.00</icmsAtacadoTO>
                <icmsIndustriaTO>12.00</icmsIndustriaTO>
            </entrada>
            <federal>
                <piscofinsSituacao>Tributado</piscofinsSituacao>
                <piscofinsCstEntrada>50</piscofinsCstEntrada>
                <piscofinsCstSaida>01</piscofinsCstSaida>
                <pisEntrada>1.650</pisEntrada>
                <cofinsEntrada>7.600</cofinsEntrada>
                <pisSaida>1.650</pisSaida>
                <cofinsSaida>7.600</cofinsSaida>
                <piscofinsLei> </piscofinsLei>
                <piscofinsLeiLink> </piscofinsLeiLink>
                <piscofinsNatRec> </piscofinsNatRec>
            </federal>
            <tipoLista> </tipoLista>
        </segmento>
        <segmento>
            <detalhes>
                <ncm>1905.90.90</ncm>
                <ncm_ex> </ncm_ex>
                <idSegmento>1138</idSegmento>
                <nomeSegmento>Pão de Mel (biscoito)</nomeSegmento>
                <descricaoNcm>(Tributado) Outros - Produtos de padaria, pastelaria ou da indústria de bolachas e biscoitos, mesmo adicionados de cacau e produtos semelhantes.</descricaoNcm>
                <tipoProduto>sem ean</tipoProduto>
                <observacao> </observacao>
                <dtCadastro>07/08/2013 12:05</dtCadastro>
                <dtUltimaAtualizacao>07/07/2014 16:10</dtUltimaAtualizacao>
            </detalhes>
            <saida>
                <icmsSaida>19.00</icmsSaida>
                <icmsSituacao>Tributado</icmsSituacao>
                <icmsCstSaida>000</icmsCstSaida>
                <icmsLeiSaida>Lei 2.657, Artigo 14, Inciso I</icmsLeiSaida>
                <icmsLeiLinkSaida>http://alerjln1.alerj.rj.gov.br/contlei.nsf/f25edae7e64db53b032564fe005262ef/01cc04eee53b3b30032564fb005c2ddf?OpenDocument</icmsLeiLinkSaida>
                <ipi>0.00</ipi>
            </saida>
            <entrada>
                <ufDestino>RJ</ufDestino>
                <subItemST> </subItemST>
                <mvaInterno>0.00</mvaInterno>
                <mvaExterno>0.00</mvaExterno>
                <mvaImportado>0.00</mvaImportado>
                <baseReduzida>0.00</baseReduzida>
                <icmsInterno>19.00</icmsInterno>
                <icmsLeiInterno>Decreto 39.855/2006</icmsLeiInterno>
                <icmsLeiLinkInterno>http://www.fazenda.rj.gov.br/sefaz/faces/oracle/webcenter/portalapp/pages/navigation-renderer.jspx?_afrLoop=118327526224000&datasource=UCMServer%23dDocName%3A81207&_adf.ctrl-state=lzncd73uj_32</icmsLeiLinkInterno>
                <icmsAtacadoAC>12.00</icmsAtacadoAC>
                <icmsIndustriaAC>12.00</icmsIndustriaAC>
                <icmsAtacadoAL>12.00</icmsAtacadoAL>
                <icmsIndustriaAL>12.00</icmsIndustriaAL>
                <icmsAtacadoAM>12.00</icmsAtacadoAM>
                <icmsIndustriaAM>12.00</icmsIndustriaAM>
                <icmsAtacadoAP>12.00</icmsAtacadoAP>
                <icmsIndustriaAP>12.00</icmsIndustriaAP>
                <icmsAtacadoBA>12.00</icmsAtacadoBA>
                <icmsIndustriaBA>12.00</icmsIndustriaBA>
                <icmsAtacadoCE>12.00</icmsAtacadoCE>
                <icmsIndustriaCE>12.00</icmsIndustriaCE>
                <icmsAtacadoDF>12.00</icmsAtacadoDF>
                <icmsIndustriaDF>12.00</icmsIndustriaDF>
                <icmsAtacadoES>12.00</icmsAtacadoES>
                <icmsIndustriaES>12.00</icmsIndustriaES>
                <icmsAtacadoGO>12.00</icmsAtacadoGO>
                <icmsIndustriaGO>12.00</icmsIndustriaGO>
                <icmsAtacadoMA>12.00</icmsAtacadoMA>
                <icmsIndustriaMA>12.00</icmsIndustriaMA>
                <icmsAtacadoMG>12.00</icmsAtacadoMG>
                <icmsIndustriaMG>12.00</icmsIndustriaMG>
                <icmsAtacadoMS>12.00</icmsAtacadoMS>
                <icmsIndustriaMS>12.00</icmsIndustriaMS>
                <icmsAtacadoMT>12.00</icmsAtacadoMT>
                <icmsIndustriaMT>12.00</icmsIndustriaMT>
                <icmsAtacadoPA>12.00</icmsAtacadoPA>
                <icmsIndustriaPA>12.00</icmsIndustriaPA>
                <icmsAtacadoPB>12.00</icmsAtacadoPB>
                <icmsIndustriaPB>12.00</icmsIndustriaPB>
                <icmsAtacadoPE>12.00</icmsAtacadoPE>
                <icmsIndustriaPE>12.00</icmsIndustriaPE>
                <icmsAtacadoPI>12.00</icmsAtacadoPI>
                <icmsIndustriaPI>12.00</icmsIndustriaPI>
                <icmsAtacadoPR>12.00</icmsAtacadoPR>
                <icmsIndustriaPR>12.00</icmsIndustriaPR>
                <icmsAtacadoRJ>19.00</icmsAtacadoRJ>
                <icmsIndustriaRJ>19.00</icmsIndustriaRJ>
                <icmsAtacadoRN>12.00</icmsAtacadoRN>
                <icmsIndustriaRN>12.00</icmsIndustriaRN>
                <icmsAtacadoRO>12.00</icmsAtacadoRO>
                <icmsIndustriaRO>12.00</icmsIndustriaRO>
                <icmsAtacadoRR>12.00</icmsAtacadoRR>
                <icmsIndustriaRR>12.00</icmsIndustriaRR>
                <icmsAtacadoRS>12.00</icmsAtacadoRS>
                <icmsIndustriaRS>12.00</icmsIndustriaRS>
                <icmsAtacadoSC>12.00</icmsAtacadoSC>
                <icmsIndustriaSC>12.00</icmsIndustriaSC>
                <icmsAtacadoSE>12.00</icmsAtacadoSE>
                <icmsIndustriaSE>12.00</icmsIndustriaSE>
                <icmsAtacadoSP>12.00</icmsAtacadoSP>
                <icmsIndustriaSP>12.00</icmsIndustriaSP>
                <icmsAtacadoTO>12.00</icmsAtacadoTO>
                <icmsIndustriaTO>12.00</icmsIndustriaTO>
            </entrada>
            <federal>
                <piscofinsSituacao>Tributado</piscofinsSituacao>
                <piscofinsCstEntrada>50</piscofinsCstEntrada>
                <piscofinsCstSaida>01</piscofinsCstSaida>
                <pisEntrada>1.650</pisEntrada>
                <cofinsEntrada>7.600</cofinsEntrada>
                <pisSaida>1.650</pisSaida>
                <cofinsSaida>7.600</cofinsSaida>
                <piscofinsLei> </piscofinsLei>
                <piscofinsLeiLink> </piscofinsLeiLink>
                <piscofinsNatRec> </piscofinsNatRec>
            </federal>
            <tipoLista> </tipoLista>
        </segmento>
        <segmento>
            <detalhes>
                <ncm>1905.90.90</ncm>
                <ncm_ex> </ncm_ex>
                <idSegmento>1445</idSegmento>
                <nomeSegmento>Pão de Mel (Bolacha)</nomeSegmento>
                <descricaoNcm>(Tributado) Outros - Produtos de padaria, pastelaria ou da indústria de bolachas e biscoitos, mesmo adicionados de cacau e produtos semelhantes.</descricaoNcm>
                <tipoProduto>sem ean</tipoProduto>
                <observacao> </observacao>
                <dtCadastro>24/10/2013 09:54</dtCadastro>
                <dtUltimaAtualizacao>28/06/2014 19:47</dtUltimaAtualizacao>
            </detalhes>
            <saida>
                <icmsSaida>19.00</icmsSaida>
                <icmsSituacao>Tributado</icmsSituacao>
                <icmsCstSaida>000</icmsCstSaida>
                <icmsLeiSaida>Lei 2.657, Artigo 14, Inciso I</icmsLeiSaida>
                <icmsLeiLinkSaida>http://alerjln1.alerj.rj.gov.br/contlei.nsf/f25edae7e64db53b032564fe005262ef/01cc04eee53b3b30032564fb005c2ddf?OpenDocument</icmsLeiLinkSaida>
                <ipi>0.00</ipi>
            </saida>
            <entrada>
                <ufDestino>RJ</ufDestino>
                <subItemST> </subItemST>
                <mvaInterno>0.00</mvaInterno>
                <mvaExterno>0.00</mvaExterno>
                <mvaImportado>0.00</mvaImportado>
                <baseReduzida>0.00</baseReduzida>
                <icmsInterno>19.00</icmsInterno>
                <icmsLeiInterno>Decreto 39.855/2006</icmsLeiInterno>
                <icmsLeiLinkInterno>http://www.fazenda.rj.gov.br/sefaz/faces/oracle/webcenter/portalapp/pages/navigation-renderer.jspx?_afrLoop=118327526224000&datasource=UCMServer%23dDocName%3A81207&_adf.ctrl-state=lzncd73uj_32</icmsLeiLinkInterno>
                <icmsAtacadoAC>12.00</icmsAtacadoAC>
                <icmsIndustriaAC>12.00</icmsIndustriaAC>
                <icmsAtacadoAL>12.00</icmsAtacadoAL>
                <icmsIndustriaAL>12.00</icmsIndustriaAL>
                <icmsAtacadoAM>12.00</icmsAtacadoAM>
                <icmsIndustriaAM>12.00</icmsIndustriaAM>
                <icmsAtacadoAP>12.00</icmsAtacadoAP>
                <icmsIndustriaAP>12.00</icmsIndustriaAP>
                <icmsAtacadoBA>12.00</icmsAtacadoBA>
                <icmsIndustriaBA>12.00</icmsIndustriaBA>
                <icmsAtacadoCE>12.00</icmsAtacadoCE>
                <icmsIndustriaCE>12.00</icmsIndustriaCE>
                <icmsAtacadoDF>12.00</icmsAtacadoDF>
                <icmsIndustriaDF>12.00</icmsIndustriaDF>
                <icmsAtacadoES>12.00</icmsAtacadoES>
                <icmsIndustriaES>12.00</icmsIndustriaES>
                <icmsAtacadoGO>12.00</icmsAtacadoGO>
                <icmsIndustriaGO>12.00</icmsIndustriaGO>
                <icmsAtacadoMA>12.00</icmsAtacadoMA>
                <icmsIndustriaMA>12.00</icmsIndustriaMA>
                <icmsAtacadoMG>12.00</icmsAtacadoMG>
                <icmsIndustriaMG>12.00</icmsIndustriaMG>
                <icmsAtacadoMS>12.00</icmsAtacadoMS>
                <icmsIndustriaMS>12.00</icmsIndustriaMS>
                <icmsAtacadoMT>12.00</icmsAtacadoMT>
                <icmsIndustriaMT>12.00</icmsIndustriaMT>
                <icmsAtacadoPA>12.00</icmsAtacadoPA>
                <icmsIndustriaPA>12.00</icmsIndustriaPA>
                <icmsAtacadoPB>12.00</icmsAtacadoPB>
                <icmsIndustriaPB>12.00</icmsIndustriaPB>
                <icmsAtacadoPE>12.00</icmsAtacadoPE>
                <icmsIndustriaPE>12.00</icmsIndustriaPE>
                <icmsAtacadoPI>12.00</icmsAtacadoPI>
                <icmsIndustriaPI>12.00</icmsIndustriaPI>
                <icmsAtacadoPR>12.00</icmsAtacadoPR>
                <icmsIndustriaPR>12.00</icmsIndustriaPR>
                <icmsAtacadoRJ>19.00</icmsAtacadoRJ>
                <icmsIndustriaRJ>19.00</icmsIndustriaRJ>
                <icmsAtacadoRN>12.00</icmsAtacadoRN>
                <icmsIndustriaRN>12.00</icmsIndustriaRN>
                <icmsAtacadoRO>12.00</icmsAtacadoRO>
                <icmsIndustriaRO>12.00</icmsIndustriaRO>
                <icmsAtacadoRR>12.00</icmsAtacadoRR>
                <icmsIndustriaRR>12.00</icmsIndustriaRR>
                <icmsAtacadoRS>12.00</icmsAtacadoRS>
                <icmsIndustriaRS>12.00</icmsIndustriaRS>
                <icmsAtacadoSC>12.00</icmsAtacadoSC>
                <icmsIndustriaSC>12.00</icmsIndustriaSC>
                <icmsAtacadoSE>12.00</icmsAtacadoSE>
                <icmsIndustriaSE>12.00</icmsIndustriaSE>
                <icmsAtacadoSP>12.00</icmsAtacadoSP>
                <icmsIndustriaSP>12.00</icmsIndustriaSP>
                <icmsAtacadoTO>12.00</icmsAtacadoTO>
                <icmsIndustriaTO>12.00</icmsIndustriaTO>
            </entrada>
            <federal>
                <piscofinsSituacao>Tributado</piscofinsSituacao>
                <piscofinsCstEntrada>50</piscofinsCstEntrada>
                <piscofinsCstSaida>01</piscofinsCstSaida>
                <pisEntrada>1.650</pisEntrada>
                <cofinsEntrada>7.600</cofinsEntrada>
                <pisSaida>1.650</pisSaida>
                <cofinsSaida>7.600</cofinsSaida>
                <piscofinsLei> </piscofinsLei>
                <piscofinsLeiLink> </piscofinsLeiLink>
                <piscofinsNatRec> </piscofinsNatRec>
            </federal>
            <tipoLista> </tipoLista>
        </segmento>
            <excecoes>
            <excecaoEstado>
                <excecaoUF>ES</excecaoUF>
                <excecaoNome>beneficio</excecaoNome>
                <excecaoAtacado>1.00</excecaoAtacado>
                <excecaoIndustria>12.00</excecaoIndustria>
            </excecaoEstado>
        </excecoes>
        <importados>
            <aliquotaInterestadual>4.00</aliquotaInterestadual>
            <prefixo num="1">Estrangeira - Importação direta, exceto a indicada no código 6</prefixo>
            <prefixo num="2">Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7</prefixo>
            <prefixo num="6">Estrangeira - Importação direta, sem similar nacional, constante em lista de Resolução CAMEX (vide Resolução Camex 79/2012)</prefixo>
            <prefixo num="7">Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista de Resolução CAMEX (vide Resolução Camex 79/2012)</prefixo>
        </importados>
        <totalSegmentos>63</totalSegmentos>
        <dtSolicitacao>08/05/2015 15:57</dtSolicitacao>
        <chaveControle>c87783e2bf362d</chaveControle>
    </tributacoes>
    

    Exemplo do XML que preciso tratar para facilitar o entendimento.

    Ola Boa noite

    Samir no projeto HB_NFE tem um tratamento do XML da NFE para impressão na FAST, de repente te ajude.

    Espero ter ajudado.

    Já analisei, mas o tratamento ali é muito especifico, preciso de algo mais genérico e preferencialmente dinâmico, onde eu não necessite de conhecimento prévio das tags para obter os valores.

    Amiguinhos,

    sambomb,

    Precisa ser uma classe? e como voce disse, DO XML, voce foi específico mas não deu detalhes portanto vou responder conforme entendi.

       ...
       cXMLTotal := MemoRead( "meu.xml" )
    
       if empty(XMLGet( "logradouro", cRs ))
          MsgStop( "LOGRADOURO nao encontrado." ) 
          return .t.
       endif
       
       cXMLTexto := XMLGet( "logradouro", cRs )
    
       ? cXMLTexto
       
       return nil
    

    No trecho acima, carrego um XML qualquer e com ajuda de uma função busco por uma determinada TAG.

    Função XMLGet():

    Function XMLGet( XMLField, XMLFile )
       XMLField    := alltrim( XMLField )
       XMLFieldINI := rat( "<"+XMLField+">", XMLFile ) + len( "<"+XMLField+">" ) 
       XMLFieldEND := rat( "", XMLFile ) - XMLFieldINI
       return alltrim(substr( XMLFile, XMLFieldINI, XMLFieldEND ))
    

    Pra mim funciona que é uma beleza.

    Quem sabe já te ajuda.

    Em tempo, o forense mjuliao postou a seguinte contribuição, Leitura de XML Generico, que talvez seja exatamente o que desejas.

    Não me serve pois tenho muitas tags repetidas e aninhadas, no exemplo acima vai ver que o grupo <segmento> se repete diversas vezes ( esse exemplo está resumido tem arquivos que vão ter mais de 1000 segmentos ) e queria tratar eles em uma matriz para facilitar o tratamento, mas preciso de uma classe que me permita obter os dados para jogar na matriz.

    No Hash do exemplo do Juliao do jeito que está não tem como eu tratar pois não vou ter uma estrutura que me permita usar repetição ( For/While/Repeat )

    Simples, a forma mais apropriada para manipular (ler/criar) a estrutura de qualquer arquivo XML, é com as classes TXmlDocument/TXmlNode, e não com funções de string, etc. veja os exemplos.

    Eric, já tentei usar ela mas sem sucesso, não consegui compreender como tratar para trabalhar com multiplos Nodes homônimos, com vários níveis de profundidade.

    Segue um exemplo:

    Existem diversos <segmento>, dentro de cada um tenho um <detalhes> e a informação está dentro desse Node.

    Até onde eu entendi, a classe TXmlDocument() gera um Node no findFirst ou Next, mas tenho que dar um Find no Segmento e precisaria usar esse Node para dar um Find em <detalhes>, <entrada>, <saida>, etc e só então pegar as informações.

    O problema é que a classe Node não tem opção de Find.

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <tributacoes>
    	<segmento>
    		<detalhes>
    			<ncm>2501.00.20</ncm>
    		</detalhes>
    		<saida>
    			<icmsSaida>0.00</icmsSaida>
    		</saida>
    		<entrada>
    			<ufDestino>RJ</ufDestino>
    		</entrada>
    		<federal>
    			<piscofinsSituacao>Tributado</piscofinsSituacao>
    		</federal>
    		<tipoLista> </tipoLista>
    	</segmento>
    	<segmento>
    		<detalhes>
    			<ncm>2201.90.00</ncm>
    			...
    
×
×
  • Create New...