Ir para conteúdo
  • Cadastre-se

Rogério Vieira de Melo

Membros
  • Total de ítens

    26
  • Registro em

  • Última visita

Posts postados por Rogério Vieira de Melo

  1. Bom dia a Todos

    Estou tentando excluir um item de uma nota fiscal cujo XML foi importado para o ACBRNfe, e não estou conseguindo 

    Me foi passado que se eu botar   AcbrNfe1.Notasfiscais.Items[0].NFe.Det.Items[x].Delete      Funcionaria, porém o delete não existe neste comando, existe o Destroy porém quando eu

    uso o Destroy ele provoca um erro no programa!

    Se alguém puder me ajudar desde já agradeço, já estou lutando com isso a semanas, já zerei os dados do item para ver se ele cancelava sozinho e infelizmente também não deu certo!

     

  2. Muito obrigado mesmo EMBarbosa!

    Não consegui encontrar o metodo GerarXML, mais encontrei o metodo GerarNFe que fez a mesma coisa, agora sem querer incomodar e já incomodando 

    existe algum método que consiga excluir um item de uma nota dentro do ACBRNfe porque um dos participantes me indicou usar o 

    ACBRNfe1.NotasFiscais.Items[0].Nfe.Det.Items[x].Delete  

    Só que nesta estancia não existe o método delete, eu tentei usar o Destroy pois o Destroy existe mas infelizmente dá erro!

     

     

  3. Bom dia Pessoal, por favor teria como alguém me dizer se é possível alterar os dados de um XML, importado para dentro de um ACBRNfe, pois eu estou tentando fazer isso e não estou conseguindo, ao editar os dados no ACBRNfe até é possível porém quando eu mando salvar o novo XML com as edições gravadas, o novo arquivo XML é exatamente igual ao arquivo anterior, ou seja não foi aceito nenhuma alteração, por mais que eu tente não estou conseguindo

    Ex:

    No XML que eu fix o Loadfromfile("XML Atual") tem:

         ACBRNe1;NotasFiscais.Items[0].NFe.Det.Item[x].Prod.vDesc:=3.85;

    Eu alterei para:

         ACBRNe1.NotasFiscais.Items[0].NFe.Det.Item[x].Prod.vDesc:=0;

    No XML Destino continua

         ACBRNe1.NotasFiscais.Items[0].NFe.Det.Item[x].Prod.vDesc:=3.85;

       Como se nada tivesse acontecido, ou seja por mais que eu altere não aceita a alteração!

    Eu tentei também excluir um Item:

       ACBrNfe1.NotasFiscais.Items[0].Nfe.Det.Item[x].Delerte  <<<<------- Não aceita pôs não existe a opção DELETE

    Tentei:

       ACBrNfe1.NotasFiscais.Items[0].Nfe.Det.Item[x].Destroy <<<------ Aceita mas dá erro quando é executado!

     

    Por favor tem alguém que possa me ajudar, já tentei de tudo!

     

        

     

  4. Bom dia Italo!

    Estou tendo problemas com relação ao ACBRNFe, pois entendi muito bem a sua explicação e lhe agradeço muito por isso 

    porém, ao fazer conforme você muito bem exemplificou, ou seja alterar os dados nas propriedades do ACBRNfe1, e logo após gravar o novo XML já corrigido, me deparei com um problema, o novo XML esta idêntico ao anterior, ou seja não aceitou nenhuma das alterações feitas, e fiz conforme você expôs no exemplo que esta bastante didático, abaixo eu mostro como esta no meu programa e, estou anexando os dois arquivos XML o original e o destino, quanto a situação de deletar o item da nota fiscal, conforme você mostra em seu exemplo, a sintaxe da propriedade não dispõem do DELETE, mas dispõem do Destroy, só que quando usa da erro!

    Exemplo:

         Nfe1.NotasFiscais.Items[0].NFe.Det.Items[x].Prod.vProd:=StrToFloat(QDet.FieldbyName('vProd').AsString);
         Nfe1.NotasFiscais.Items[0].NFe.Det.Items[x].Prod.vDesc:=0;
         Nfe1.NotasFiscais.Items[0].NFe.Det.Items[x].Prod.vUnTrib:=StrTofloat(QDet.fieldbyName('vuntrib').AsString);
         Nfe1.NotasFiscais.Items[0].NFe.Det.Items[x].Prod.vUnCom:=StrToFloat(QDet.FieldbYname('vunCom').AsString);
                             

                               QDet = Query que contém os itens editados

     

    26191234790529000178650010000014851358065092-NFE.XML 26191234790529000178650010000014851358065092-NFE_Corrigido.xml

  5. Bom dia Ítalo
    Antes de qualquer coisa, muito obrigado mesmo por esta respondendo!
    Em anexo estão os dois XML o origem e o destino, o destino esta com o nome "corigido" no final, ambos são iguais
    para inicio os itens 1 e 2 no corrigido não deveriam existir, como lhe disse tentei usar o delete mas não funcionou 
    tentei então o "Destroy" mas não funcionou também, caso haja necessidade lhe mando o fonte do programa!

    26191234790529000178650010000014851358065092-NFE.XML 26191234790529000178650010000014851358065092-NFE_Corrigido.xml

  6. Boa tarde Italo Jurisato, Muito obrigado mesmo pelas dicas, porém esta acontecendo um problema que eu não estou entendendo

       Estou fazendo as alterações não esta dando erro em nada 

          ACbeNfe1.NotasFiscais.Items[0].NFe.Det.Items[x].Prod.vProd:=StrToFloat(QDet.FieldbyName('vProd').AsString);
          ACbeNfe1.NotasFiscais.Items[0].NFe.Det.Items[x].Prod.vDesc:=0;
          ACbeNfe1.NotasFiscais.Items[0].NFe.Det.Items[x].Prod.vUnTrib:=StrTofloat(QDet.fieldbyName('vuntrib').AsString);
          ACbeNfe1.NotasFiscais.Items[0].NFe.Det.Items[x].Prod.vUnCom:=StrToFloat(QDet.FieldbYname('vunCom').AsString);

    Porém quando boto o XML para gravar 

     AcbrNe1.NotasFiscais.GravaXML(m_arqdestino);

    E abro este m_arqdestino no InterNetExplorer, para minha surpresa ele esta lá sem nenhuma alteração!

    É necessario dar algum comando para que o ACBRNfe1 Aceite as alterações ou algum comando depois tipo Commit ou um POST, para que as alterações fiquem gravadas,

    e só mais uma coisinha o comando 

    ACBrNfe1.NotasFiscais.Items[0].NFe.Det.Items[ x].Delete;  não é aceito da erro de compilação pois não encontra o Delete, tentei usar o Destroy mas fica dando erro também!  

    Se você puder me ajudar mais uma vez desde já lhe agradeço muito!

  7. Juliomar muito obrigado mesmo por estar respondendo as minhas indagações!

    O problema é que eu estou usando os componentes ACBR a menos de um mês, e não estou bastante familiarizado com eles, e estou sentindo muita dificuldade para chegar nos meus objetivos, por exemplo no caso mesmo que o desconto do item é igual ao valor total do item, eu preciso excluir este registro

    Eu tentei mas não encontrei um comando do tipo    ACBrNfe1.NotasFiscais.Items[0].Delete;

    Como seria possível deletar um item existente no XML que esta dentro do ACBRNfe1?

    Já tentei ver nos exemplos, só que acho que isso é uma coisa tão inusitada que não tem exemplo lá disso, pelo menos eu não vi!

  8. Boa tarde Italo, pois é exatamente isso que estou tentando fazer, para lhe explicar o que estou fazendo:

    Estou lendo o XML com o componente ACBRNfe, depois que leio este XML, recupero os registros de lançamentos de itens da nota fiscal, juntamente com o registro do Total da nota em duas tabelas, uma para os itens e outra para o total, dai então faço as alterações, uma delas é o seguinte nas notas em que o desconto dado ao item seja igual ao valor total do item ou seja este item esta nulo, eu excluo este registro, nos outros que o desconto é menor eu deduzo do valor total do item o desconto e zero o campo desconto, depois disso re-calculo os item e gravo um novo valor do total, até ai esta tudo bem, feito tudo isso eu estou mandando os dados de volta para o ACBRNFE

    ACBrNfe1.NotasFiscais.Clear;

    ACBrNfe1.NotasFiscais.Add;

    ACBrNfe1.NotasFiscais.Items[0].LerArqIni(Memo1.Lines.text);

    ACBRNfe1.NotasFiscais.GravaXML('arquivo_destino.xml');

    Aparentemente tudo teria dado certo, só que quando fui conferir o arquivo_destino.xml, notei que simplesmente os itens não estão mais presente, embora que no memo1 eu vejo lá os itens!

    Tem alguma forma de gravar estes dados de forma que os itens sejam gravados também?

  9. Bom, eu não sei lhe explicar detalhes sobre este procedimento contábil, porém é que eu estou com esta batata quente na mão, que é uma forma de fazer com que estes descontos que ocorrem em notas de balcão de restaurantes, saiam dos XML, para que a contabilidade possa dar uma tarefa de certa forma até mais digna para estas 3 pessoas do que esta editando xml por xml para retirar os descotos destas notas de balcão e dai então poder importar para o sistema de contabilidade sem estes registros ou sem estes descontos !

    Infelizmente já havia até conseguido fazer isso com a treeview porém o componente treeview ler uma coisa e salva outra, ou seja ler um xml mas não salva um XML com o ACBRNfe eu Leio o XML e salvo o XML com tanto que eu não mexa nele! e se eu não posso mexer não adiantou muito para meu

    objetivo!

    Infelizmente!

     

  10. A finalidade deles é usa-los para serem importados para o Sistema de Contabilidade da Empresa pois este sistema importa o XML da Nota fiscal, mas se importar com os Descontos isso só atrapalha, eles não servem mais para serem validados ou ser mandos para a fazenda porém são a base de entrada de dados para a contabilidade!, e como eu já disse hoje ficam 3 pessoas só para excluir e alterar os dados de forma que a entre na contabilidade apenas os dados que interessam!

  11. Não é bem assim! De fato eu tenho uma quantidade enorme de Notas fiscais de vários restaurantes porém o meu objetivo é ler estas notas uma por

    uma e no caso da nota ter descontos, eu tenho que retirar este registro que tem o desconto, quando o desconto for igual ao valor do item, ou zerar o desconto e recalcular o valor total da nota, eu não sei porque a contadora faz isso porém isso é feito hoje manualmente, e o que eu preciso é que um programa passe a fazer isso pois não se trata de uma ou duas notas são mais de 15 mil notas, são 3 aux. contabeis fazendo isso quando poderiam estar fazendo outros procedimentos, dai o que foi que eu fiz, eu estou lendo o xml da nota fiscal

    ACBRNfe1.NotasFiscais,LoadFromFile('NFEnnnnnnnnn.xml');

    Após ler, eu converto os registros de itens e do total da nota em duas tabelas pois é nelas que eu vou mexer,

    Feito isso eu dou o seguinte procedimento, para os itens em que o desconto é o mesmo valor do produto, eu cancelo o item

    para os items que o valor do desconto é menor que o valor do item, eu subtraio o desconto do valor do item, recalculo o total e 

    esta pronta a minha nota, agora eu tenho que mandar de volta para o XML,  dai eu mando os dados para um MemoEdit, com todos os dados

    que o XML original tem, exceto os registros que foram cancelados e faço a leitura do ACBNfe1.

    ACBrNfe1.NotasFiscais.clear;

    ACBrNfe1.NotasFiscais.Add;

    ACBrNfe1.NotasFiscais.Items[0].LerArqIni(Memo1.Lines.Text);

    O erro que estava danado de (Linst Index Out Of Bounds(0)) Não esta dando mais pois acrescentei o AcbrNfe1.NotasFiscais.Add;

    Porém não esta fácil pois quando vou olhar o XML resultante do comando ACBRNfe1.NotasFiscais.GravaXML('NomeArquivoDestinoXML');

    Tenho a triste surpresa de que o XML final contem, Identificador, Contem Emitente, contem Destinatário. dai vem o total, e os dados finais da nota ou seja simplesmente os dados dos items que estão no MemoEdit, foram simplesmente ignorados!

    Isso tem algum jeito de resolver?

     

  12. Em 18/05/2020 at 12:48, EMBarbosa disse:

    Boa tarde Rogério.

       Não existe esse método. Então algo assim realmente não vai funcionar... O componente não foi feito para trabalhar com treeview genérico e sim com uma estrutura bem definida que é a da NF-e .

       Uma treeview nada mais é que uma árvore de dados, por isso quando você mandou gravar foi gerado uma árvore de dados. O XML pode ser representado como árvore de dados, por isso você consegue transferir fazendo a leitura. Então vai depender de como você programa seu while já que não é uma estrutura linear.

       Teoricamente bastaria você fazer o caminho inverso do que você fez na leitura para pegar do xml e jogar no treeview.

     

    Em 18/05/2020 at 14:31, Juliomar Marchetti disse:

    Você poderia carregar no componente esses XML e remover no componente e pedir para salvar novamente

    mas vai estar alterando o xml original e válido

     

    Em 19/05/2020 at 17:30, EMBarbosa disse:

    Minha sugestão é você fazer a leitura usando o ACBrNFe.

    Daí pegar os dados do ACBrNFE e jogar pra exibição conforme você quiser. Pode ser um treeview, ou algo diferente. Na minha cabeça a ideia seria um DANFe, mas eu posso não ter entendido o seu objetivo.

    Daí, depois de alterado, (ou durante a alteração caso prefira), você volta com os dados ao ACBrNFe.

    Por fim o ACBrNFe gera o arquivo XML novamente.

     Estou tentando fazer isso neste momento de ler  ACBRNfe, mando para algumas tabelas, e agora estou tentando voltar para o ACBRNfe e não estou conseguindo,

    A grosso modo estou fazendo assim

    Lendo o ACBRNFE

     Memo1.Lines.Text:=AcbrNfe1.NotasFiscais.Items[0].GerarNfeini;

    Com isso boto todo o conteúdo do ACBrNe1 para o Memo1, faço as alterações

    Tentei  

       ACbrNfe1.NotasFiscais.clear;

        For x:=0 to  Memo1.Lines.Count-1 do

             ACbrNfe1.NotasFiscais.Items[0]:= Memo1.Lines.String[x];

    Não funciona! 

    Como faço para botar dentro do ACBrNfe1 o Conteúdo de um MemoEdit??

     

     

         

     

  13. Bom quem vai acompanhar é um operador do departamento fiscal, porém o soft ele precisa ter a possibilidade de ler apenas um documento de N.Fiscal ou uma pasta cheia deles, no caso de ser lido apenas um documento o operador ler, abre o documento na parte dos itens, identifica que existe ou não o desconto, clica no botão de retirar o desconto, dai então o desconto é retirado da nota, e na operação seguinte ele manda gravar o novo xml já sem o desconto, para posteriormente ele ser processado pelo ERP que faz todas as operações das empresas, eu já pensei em ler e gravar em tabelas, o problema é que o corpo da nota nem sempre tem os mesmo campos, a situações que tem campos a mais e situações que tem campos a menos, pois alguns deles são opcionais, dai então fica difícil preparar uma tabela que nem sempre o campo vai estar presente!

     

  14. 2 horas atrás, EMBarbosa disse:

    Boa tarde Rogério.

       Não existe esse método. Então algo assim realmente não vai funcionar... O componente não foi feito para trabalhar com treeview genérico e sim com uma estrutura bem definida que é a da NF-e .

       Uma treeview nada mais é que uma árvore de dados, por isso quando você mandou gravar foi gerado uma árvore de dados. O XML pode ser representado como árvore de dados, por isso você consegue transferir fazendo a leitura. Então vai depender de como você programa seu while já que não é uma estrutura linear.

       Teoricamente bastaria você fazer o caminho inverso do que você fez na leitura para pegar do xml e jogar no treeview.

    Boa tarde usuário SAC, desculpe não sei o seu nome por isso estou me referindo com a informação que tem ai!

    Deixa eu lhe explicar o que tenho na mão, estou na obrigação de desenvolver um soft que tire um peso do departamento fiscal aqui de onde eu trabalho, o problema é que nos somo um bureau de serviços contábeis, e recebemos algumas milhares de notas fiscais de balcão, e muitas delas são de restaurantes, e estas normalmente vem com Descontos no corpo da nota, então minha missão é criar um ROBÔ que leia a nota verifique se tem desconto e retire as linhas de desconto ou o desconto do item, eu até já consegui fazer isso porém quado dou um treeview.savetofile(nomarq) o que é gravado não é nem de perto o XML da nota fiscal pois o treeview faz o favor de retirar as tags, não tenho muita familiaridade com o treeview dai pensei que o ACBRNfe poderia me ajudar pois ele lé um XML e grava o XML, porém eu preciso mostrar o que eu estou lendo, e a forma mais pratica seria um Treeview1 porém isso esta se mostrando uma coisa quase que impossível, pois na minha cabeça bastava ler o XML com o Treeview fazer as alterações necessárias dai então preservando toda estrutura do XML mandar para o ACBRNFE, e dai então poder gravar!

    Não teria como fazer isso não, como é um While não linear? desculpe a pergunta pois em DELPHI sou novo!

     

  15. Bom dia a Todos !

    Tenho um programa que ler um xml de uma nota fiscal e põe em uma treeview, estou tentando agora fazer o caminho de volta ou seja gravar do treeview para o

    xml, porém no momento que mando gravar a partir do  treeview, o que é gravado é uma arvore de dados, porém não é um XML, baixei e instalei o ACBR, em minha maquina tive alguma dificuldade mas as superei, só que agora eu vi que o componente ACBrNFe1 não é um treeview, mas se mandar ele gravar ele grava um

    xml de fato que é o que eu preciso, dai eu tenho como ler mais não gravo, eu gravo mas não mostro, tem algum comando do tipo assign, que eu possa transportar todo o conteúdo de uma treeview para o componente ACBrNfe1, tipo    ACBrNe1.Assign(Treeview1), (Já tentei isso não deu certo não), e já tentei um while percorrendo toda treeview mas também não deu certo, reconheço que minha experiencia em  manusear o treeview é pouquissima, se tiver como me ajudar mostrando como posso fazer isso em comandos agradeço muito desde já!

     

  16. Boa tarde a todos!

    Estou tentando instalar a biblioteca  ACBR e infelizmente estou tendo a sorte de encontrar todo tipo de problema, já tentei instalar no Delphi 7

    Dai ocorre o erro

    Borland Delphi Version 15.0
    Copyright (c) 1983,2002 Borland Software Corporation
    ACBr_NFeDanfeFR.dpk(77) Fatal: Required package 'fs7' not found
    Compilation failure
    Erro ao compilar o pacote "ACBr_NFeDanfeFR.dpk".
    Abortando... Ocorreram erros na compilação dos pacotes.
     

    já tentei instalar no Delphi XE 10.1 

    ACBrDFeReportRL.dpk(33) Fatal: E2202 Required package 'frce' not found
    Compilation failure
    Erro ao compilar o pacote "ACBrDFeReportRL.dpk".
    Abortando... Ocorreram erros na compilação dos pacotes.
    Como eu faço para conseguir resolver estes problemas pois já tentei de tudo! inclusive tentar compilar e instalar uma por uma das lib!

     

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...