-
Posts
1,951 -
Joined
-
Last visited
-
Days Won
10
Posts posted by sambomb
-
-
o blClicked é da TWindow não da TControl hein
-
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 TControlCLASS TXBrowse FROM TControl -
Bom de petrópolis que é perto
-
-
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)
-
Fica a dica que objetos podem ser considerados como matrizes, então é possível fazer algo assim:
oObjeto := TObjeto():New()
? oObjeto[2] -
Ta indo bem, inclusive parece que ta com muito mais fôlego que o Fivewin por sinal....
-
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.....
-
-
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 britoantonio caeantonio caefazantonio carloantonio pereiraantonio sergueiraEntã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
-
Não na estrutura e sim no conteudo
exemplo:
Funcionaria:
Reg | Campo nome
001 | Joao
002 | Juca
003 | Mano
Erro:
Reg | Campo nome
001 | Joao
002 | Kapiaba
003 | Samir
-
Pois eu agarantcho, que assim funcionará perfeito, eu acho que ele nem testou.
// Funciona normal Index On TRIM( Nome ) + Space( 1 ) Tag Nome TO CUSTOMER ; FOR !DELETED() EVAL( CursorWait(), SysRefresh() ) EVERY 10
Só deveria funcionar se o banco estiver com todos os registros com o mesmo tamanho
-
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>' )
AbsTratar 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.
-
Vai te abrir várias opções, mais exemplos, correções de bugs, etc...
-
Alguém sabe como tratar essas tags?
-
-
Atualizando a versão é o caminho mais fácil
-
Não pode indexar um campo com tamanhos diferentes....
Utilize sem alltrim que vai resolver -
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 -
/*************************************************************************** * 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:
-
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!
-
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. -
<?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> ...
-
Alguém conhece alguma classe que retorne os dados do XML em um array ou Hash?
Um click no xBrowse
in Programação
Posted
Everton:
http://wiki.fivetechsoft.com/doku.php?id=fivewin_classes_hierarchy
Todos* os métodos e propriedades da classe TWindow estão disponíveis para a classe TControl
Todos* os métodos e propriedades da classe TControl estão disponíveis para a classe TXBrowse
portanto a TXBrowse tem todos os atributos dela mesmo, da TControl e da TWindow.
*Todos menos os que seja forçadamente removidos / definidos como virtuais.