Ir para conteúdo
  • Cadastre-se

RibaSoft

Membros
  • Total de ítens

    148
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que RibaSoft postou

  1. Consegui descobrir aqui, eu estava pegando o retorno do evento de forma errada. Estou usando esse agora e deu certo. "auxMDF.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XML;". Obrigado. Da minha parte pode fechar o Tópico.
  2. Olá a todos. Estou tentando imprimir eventos do MDFe, uso o mesmo padrão tanto no NFe, NFCe, CTe e todos funcionam porém ao tentar com o MDFe ele retorna vazio com mensagem de "cancelamento" mesmo sendo um evento de encerramento. Se eu uso o método auxM.EventoMDFe.LerXML funciona perfeitamente, mas se uso o auxM.EventoMDFe.LerXMLFromString não funciona. Acabei de zerar o ACBr e o Lazarus do me PC e continua da mesma forma, estou desde sedo procurando nos tópicos e não achei nada que resolvesse. var auxXML: string; auxM: TACBrMDFe; auxI: TACBrMDFeDAMDFeRL; begin DataModulo.OpenSQL('SELECT XML FROM MDF_EVENTOS WHERE ID = 1); auxXML := DataModulo.Query.FieldByName('XML').AsString; try auxM := TACBrMDFe.Create(nil); auxM.EventoMDFe.LerXMLFromString(auxXML); try auxI := TACBrMDFeDAMDFeRL.Create(nil); auxM.DAMDFE := auxI; auxM.ImprimirEvento; finally FreeAndNil(auxI); end; finally FreeAndNil(auxM); end; end;
  3. NFC modelo cupom válido http://www.fazenda.pr.gov.br/nfce/qrcode?p=41240931505493000145650010000019201000057604|2|1|1|4592077A36FB0F040C88445D6C80E8662A95D02A Mesma NFC modelo A4 inválido http://www.fazenda.pr.gov.br/nfce/qrcode?p=41240931505493000145650010000019201000057604|2|1|0|132F040269C61687060B97CE946505B07B05DBC7
  4. Aconteceu o mesmo comigo aq, no formato cupom da certo, no formato a4 da esse mesmo erro alguém conseguiu resolver? parana aq tambem
  5. Aq em Carlópolis / PR, tambem
  6. Caso interesse á alguem fiz para funcionar no lazarus procedure TFormOrcamento.DBGridDadosMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer); var C, L, auxID: integer; auxB: TBookMark; begin //Pega a Coluna e a Linha pela posição X, Y (Sender as TDBGrid).MouseToCell(X, Y, C, L); if(L < 1)then Exit; try //Marca a posição do dataset auxB := DataSourceDados.DataSet.GetBookmark; //Desabilita controles para não ficar oscilando DataSourceDados.DataSet.DisableControls; //Vai para a linha desejada DataSourceDados.DataSet.RecNo := L; //Pega a informação auxID := DataSourceDados.DataSet.FieldByName('ID').AsInteger; //Adiciona a informação ao Hint (Sender as TDBGrid).Hint := 'ID: ' + IntToStr(auxID); //Mostra o Hint Application.ActivateHint(Mouse.CursorPos); finally //Volta para a posição inicial DataSourceDados.DataSet.GotoBookmark(auxB); //Limpa a marcação DataSourceDados.DataSet.FreeBookmark(auxB); //Reabilida controles DataSourceDados.DataSet.EnableControls; end; end;
  7. @Fabrício G. Araújo A sim, vou dar uma olhada e refatorar o código, obrigado pela dica, fico muito contente com novos conhecimentos e melhores praticas de programação, DEUS abençoe
  8. Boa noite, graças a DEUS descobri, não sei exatamente o porque mas deu certo. Agradeço a explicação de ambos, não conhecia o "TNFe" da "pcnNFE", fico grato pelo conhecimento, mas como o "Record" já estava pronto deixei com ele mesmo, nas proximas vezes usarei o "TNFe". Então... usando o exemplo do @Fabrício G. Araújo, rodou normal e o meu dava erro, dai de pois de varios testes descobri que tirando o "bcOutros: Pag[I].TBAND := 99;" do case o erro parou. Dai ficou assim e funciona perfeitamente... if (Pag[I].TPAG = 3) or (Pag[I].TPAG = 4) then case auxNF.NotasFiscais.Items[0].NFe.pag[I].tBand of bcVisa: Pag[I].TBAND := 1; bcMasterCard: Pag[I].TBAND := 2; bcAmericanExpress: Pag[I].TBAND := 3; bcSorocred: Pag[I].TBAND := 4; bcDinersClub: Pag[I].TBAND := 5; bcElo: Pag[I].TBAND := 6; bcHipercard: Pag[I].TBAND := 7; bcAura: Pag[I].TBAND := 8; bcCabal: Pag[I].TBAND := 9; bcAlelo: Pag[I].TBAND := 10; bcBanesCard: Pag[I].TBAND := 11; bcCalCard: Pag[I].TBAND := 12; bcCredz: Pag[I].TBAND := 13; bcDiscover: Pag[I].TBAND := 14; bcGoodCard: Pag[I].TBAND := 15; bcGreenCard: Pag[I].TBAND := 16; bcHiper: Pag[I].TBAND := 17; bcJcB: Pag[I].TBAND := 18; bcMais: Pag[I].TBAND := 19; bcMaxVan: Pag[I].TBAND := 20; bcPolicard: Pag[I].TBAND := 21; bcRedeCompras: Pag[I].TBAND := 22; bcSodexo: Pag[I].TBAND := 23; bcValeCard: Pag[I].TBAND := 24; bcVerocheque: Pag[I].TBAND := 25; bcVR: Pag[I].TBAND := 26; bcTicket: Pag[I].TBAND := 27; else Pag[I].TBAND := 99; end; Se alguem puder explicar pq esse "bcOutros" deu problema nesse contexto fico muito feliz pois gosto de aprender td nos minimos detalhes, mas o problema já está resolvido e da minha porte pode fechar o tópico se necessário, muito obrigado mesmo pela dedicação de vcs. DEUS abençoe.
  9. Muito obrigado pela ajuda, vou testar as duas dicar e reporto aq o resultado de cada uma, DEUS abençoe a todos.
  10. @Fabrício G. AraújoMuito obrigado pela sua boa vontade em me ajudar, esse Pag[I].TPAG é um "Pag: array of TPagamentos;" e T pagamentos é "TPagamentos = record TPAG: integer; TBAND: integer; VPAG: currency; CAUT: string; end;" onde armazeno os dados extraidos do xml para depois inseri-los no banco de dados. Eu Determino o tamanho do array assim: C := auxNF.NotasFiscais.Items[0].NFe.pag.Count; {$Hints off} SetLength(Pag, C); {$Hints on} o auxNF é "auxNF: TACBrNFe;" eu gosto de criar todos os componentes em tempo de execução. esse codigo funcionar normalmente quando a tag "TBand" existe dentro da tag "Tpag", só dá problema quando a tag "TBAnd" não existe. E o erro e "access" é exatamente na linha "case auxNF.NotasFiscais.Items[0].NFe.pag.Items[I].tBand of" ou seja quando tento ler a informação tBand, não chega a ir na linha onde meu array está. Fico muito grato pela atenção, eu estava em um grupo de Lazarus tentando ajudar o máximo de gente possivel, mas o pessoal começou a abusar muito, tipo querendo se aproveitar da minha boa vontade, eu só peço ajuda depois de muito tentar e realmente não conseguir. e entendo pq as vezes o pessoal não quer ajudar ou dá uns "coice" por aq.
  11. Sim, tem o Pag.count por isso no "Items[I].tPag" não da erro pois o pagamento existe, o problema é que mesmo sendo cartão de crédito e existindo o pagamento, a tag TBand não existe nesse pagamento nesses xmls dessa cliente.
  12. Então.. Logo após esse meu codigo esta exatamente assim dentro de um for ou seja o mesmo "I" que passa no ...Items[I].tPag da violation no ...Items[I].tBand e só dá esse problema quando no xml o tband esta ausente. case auxNF.NotasFiscais.Items[0].NFe.pag.Items[I].tPag of fpDinheiro: Pag[I].TPAG := 1; fpCheque: Pag[I].TPAG := 2; fpCartaoCredito: Pag[I].TPAG := 3; fpCartaoDebito: Pag[I].TPAG := 4; fpCreditoLoja: Pag[I].TPAG := 5; fpValeAlimentacao: Pag[I].TPAG := 10; fpValeRefeicao: Pag[I].TPAG := 11; fpValePresente: Pag[I].TPAG := 12; fpValeCombustivel: Pag[I].TPAG := 13; fpBoletoBancario: Pag[I].TPAG := 15; fpDepositoBancario: Pag[I].TPAG := 16; fpPagamentoInstantaneo: Pag[I].TPAG := 17; fpTransfBancario: Pag[I].TPAG := 18; fpProgramaFidelidade: Pag[I].TPAG := 19; fpSemPagamento: Pag[I].TPAG := 90; else Pag[I].TPAG := 0; end; if (Pag[I].TPAG = 3) or (Pag[I].TPAG = 4) then case auxNF.NotasFiscais.Items[0].NFe.pag.Items[I].tBand of bcVisa: Pag[I].TBAND := 1; bcMasterCard: Pag[I].TBAND := 2; bcAmericanExpress: Pag[I].TBAND := 3; bcSorocred: Pag[I].TBAND := 4; bcDinersClub: Pag[I].TBAND := 5; bcElo: Pag[I].TBAND := 6; bcHipercard: Pag[I].TBAND := 7; bcAura: Pag[I].TBAND := 8; bcCabal: Pag[I].TBAND := 9; bcAlelo: Pag[I].TBAND := 10; bcBanesCard: Pag[I].TBAND := 11; bcCalCard: Pag[I].TBAND := 12; bcCredz: Pag[I].TBAND := 13; bcDiscover: Pag[I].TBAND := 14; bcGoodCard: Pag[I].TBAND := 15; bcGreenCard: Pag[I].TBAND := 16; bcHiper: Pag[I].TBAND := 17; bcJcB: Pag[I].TBAND := 18; bcMais: Pag[I].TBAND := 19; bcMaxVan: Pag[I].TBAND := 20; bcPolicard: Pag[I].TBAND := 21; bcRedeCompras: Pag[I].TBAND := 22; bcSodexo: Pag[I].TBAND := 23; bcValeCard: Pag[I].TBAND := 24; bcVerocheque: Pag[I].TBAND := 25; bcVR: Pag[I].TBAND := 26; bcTicket: Pag[I].TBAND := 27; bcOutros: Pag[I].TBAND := 99; end;
  13. Ta bom, muito obrigado por responder, achei mesmo estranho, vou revisar novamente pra tentar descobrir e aviso aq, DEUS abençoe
  14. Olá à todos, depois de muito tentar não consegui achar uma solução, ao importar um xml de nfe pelo componente acbrnfe, da access violation em um xml de TPAG = 3 "Cartão de Crédito" que não possui a tag TBand. Tentei usar o if assigned(auxNF.NotasFiscais.Items[0].NFe.pag.Items[I].tBand)then antes de tentar acessar o valor de tBand mas ele não aceita, tem alguma forma correta de verificar se essa tag existe antes de tentar acessá-la?
  15. Olá a todos é com grande alegria que venho informar que o problema de vazamento de memória do fortes foi corrigido aparentemente em 15 de dezembro de 2023. ja testei com o lazarus 3.2.2 e está td certo. Da minha parte pode fechar o topico se necessário. DEUS abençoe a todos.
  16. Olá, como não postaram aq a solução vou postar, pois passei pelo mesmo erro e cai aq. No meu caso resolveu mudando o tipo de envio de ASincrono para Sincrono... de auxNF.Enviar('1', True, False); para auxNF.Enviar('1', True, True); DEUS abençoe a todos.
  17. Mais um detalhe q obserei, até para impressão de NFe pelo componente do ACBr tambem esta dando vazamento, vou desistalar o lazarus e instalar novamente, qualquer coisa aviso aq.
  18. Continuei testando e pesquisando, na verdade o problema está só nesse trecho "TRLPreviewForm.Create(nil)" Mesmo colocando o Free no final o vazamento permanece
  19. Olá, estou com um problema de Vazamento de memória no preview do Fortes Report, estou usando o lazarus 2.4.6, windows 10x64. Esse vazamento não ocorria antigamente, ao menos eu nunca tinha percebido, começou a ocorrer depois que formatei o pc e passei do windows 11 para o windows 10. Pesquisei bastante na net, e achei pessoas relatando isso a muito tempo atraz, mas sem solução e alguns desistindo do fortes. O vamento se encontra exatamente aq... SentToPrinter := False; with TRLPreviewForm.Create(nil) do begin Preview.Pages := APages; if DefaultZoomFactor = ZoomFactorFullWidth then Preview.ZoomFullWidth else if DefaultZoomFactor = ZoomFactorFullPage then Preview.ZoomFullPage else if DefaultZoomFactor = ZoomFactorMultiplePages then Preview.ZoomMultiplePages else if DefaultZoomFactor > 0 then Preview.ZoomFactor := DefaultZoomFactor; UpdateComboBoxZoom; Position := APosition; WindowState := AWindowState; BorderIcons := ABorderIcons; HelpFile := AHelpFile; HelpContext := AHelpContext; if ACaption <> '' then Caption := ACaption; FormStyle := AFormStyle; if AShowModal then ShowModal else if Visible then BringToFront else Show; end; no RLPreviewForm obs. já reinstalei o Fortes e uso o tortoise pelo link https://github.com/fortesinformatica/fortesreport-ce/trunk Desde já agradeços a todos que puderem me ajudar.
  20. Nossa Daniel, muiiito obrigado, agora o limite é a imaginação, muito obrigado mesmo, DEUS abençoe
  21. Olá a todos, dei uma boa pesquisada e não achei nada a respeito, nem no site do FPDF em PHP, pelo contrário, oq vi foi comentárioos de que não dava pra fazer, ou gente que tentou e não conseguiu. Para negrito existe a procedure SetFont, porém como proceder dentro de uma frase (String), onde somente uma palavra deve ser negrita? Eu costumo utilizar a procedure MultiCell, para paragrafos com multiplas linhas, e o SetFont antes de cada multicell, mas como fazer no meio sem perder a identação? Perdoem minha leiguisse
  22. Dai provisóriamente eu resolvi aq assim, alterando a função do arquivo fpdf.pas Lembrando que todos meus arquivos estão setados como utf8
  23. Uhuu, achei um caminho, em uses, declara "LConvEncoding" dai as strings que for passar para o FPDF usa a função "UTF8ToCP1252('Endereço: ');" E seta "PDF.SetUTF8(False);" Dessa forma pode se usar os arquivos do lazarus codificado em utf8, tanto seu código quanto o "fpdf.pas"
  24. Então, o problema é que o comportamento difere para strings escritas diretas no codigo e strings passadas pelos Edits, dai criei um teste e usei conforme o Demo, dai só obtive sucesso, da forma que mensionei. Mas pelo que entendi o Juliomar vai dar uma olhada pra gente. .
  25. Aqui também estou brigando com a acentuação, a unica forma que da certo é ir em projeto >> opções de projeto >> Adiçoes e Sobreposiçoes e clicar em "Usar codificação do sistema", o problema é que dai bagunça algumas mensagens traduzidas do lazarus tipo "não" fica "n?o" Estou usando windows11x64 com lazarus 2.4.6
×
×
  • 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...