Ir para conteúdo
  • Cadastre-se

pfmoretto

Membros
  • Total de ítens

    8
  • Registro em

  • Última visita

Tudo que pfmoretto postou

  1. Não fui eu quem criou o banco e salvou as informações. Estou conectado em um banco de terceiro... Estou tentando adivinhar o que fizeram.
  2. Então tecnicamente os dois são um XML, mas será que um ele grava em forma de texto e outro ele salva o arquivo mesmo (o binario)? Pois os campos são o mesmo domain, são identicos só consigo pensar que o insert está sendo feito de formas diferentes. Segue foto em anexo.
  3. Quando eu abro o XML dentro está escrito assim "(Memo)". Não faço ideia o porque. Infelizmente acontece a mesma coisa. O arquivo sai em branco. Eu acredito que exista alguma diferença na forma como os arquivos são salvos. Acho que no que eu consigo exportar o XML ele salva o texto e nos outros talvez o arquivo mesmo? Como que faria pa extrair?
  4. Muito obrigado mas Infelizmente o resultado é o mesmo que eu estava tendo antes.
  5. Estou tentando extrair alguns "arquivos" XML que foram armazenados no BD em forma de texto em campos blob BLOB SUB_TYPE 1 SEGMENT SIZE 100 CHARACTER SET WIN1252 COLLATE WIN1252 O BD é Fire Bird 2.5. (Não fui eu quem criei o banco). Estou tentando extrair os arquivos XML de NFe e CFe. O código é o mesmo para ambos os documentos só troco o tipo na query. Quando o documento é NFe ele funciona normal. Quando o documento é CFe ele não funciona. Se eu utilizar ArqXML.Text := qry2.Fields[0].AsString; O arquivo salva em branco. Se eu utilizar ArqXML.Text := qry2.Fields[0].Text; O arquivo salva com um (Memo) dentro. Estou tentando resolver isso a alguns dias mas não consegui já tentei basicamente de tudo. Alguém tem alguma luz? try Conn1 := FConnectionManager.AcquireConn1('Conn1'); Conn2 := FConnectionManager.AcquireConn2('Conn2'); qry1 := TFDQuery.Create(nil); qry2 := TFDQuery.Create(nil); qry1.Connection := Conn1; qry2.Connection := Conn2; ArqXML := TStringList.Create; { Encontra os XML que foram emitidos } try qry1.Close; qry1.SQL.Clear; qry1.SQL.Add('select' + ' nf_numero,' + ' nf_nfe_chave_identificacao' + ' from nf' + ' where NF_MODELO = ' + QuotedStr('SAT') + ' and nf_cancelada = ' + QuotedStr('N') + ' and nf_nfe_enviado = ' + QuotedStr('S') + ' and NF_DTEMISSAO BETWEEN ' + QuotedStr(sDataInicial) + ' AND ' + QuotedStr(sDataFinal)); qry1.Open; except on E: Exception do begin ShowMessage('Erro: ' + E.Message ); qry1.Close; end; end; { Caso encontre XML inicia exportação } if not qry1.IsEmpty then begin qry1.FetchAll; qry1.First; { Cria a pasta no desktop } if not DirectoryExists(uSysTools.DirDesktop + '\xml_sat') then begin ForceDirectories(uSysTools.DirDesktop + '\xml_sat'); end; while not qry1.Eof do begin try qry2.Close; qry2.SQL.Clear; qry2.SQL.Add('select' + ' NF_NFE_XML' + ' from nf ' + ' where nf_nfe_chave_identificacao = ' + QuotedStr(qry1.Fields[1].Text) + ' and nf_numero = ' + QuotedStr(qry1.Fields[0].Text) + ' and nf_modelo = ' + QuotedStr('SAT')); qry2.Open; except on E: Exception do begin ShowMessage('Erro: ' + E.Message ); qry2.Close; end; end; if not qry2.IsEmpty then begin ArqXML.Clear; ArqXML.Text := qry2.Fields[0].AsString; ArqXML.SaveToFile(uSysTools.DirDesktop + '\xml_sat' + qry1.Fields[1].Text + '.xml'); end; qry1.Next; end; end; finally FreeAndNil(qry1); FreeAndNil(qry2); FreeAndNil(ArqXML); FConnectionManager.ReleaseConn1(Conn1); FConnectionManager.ReleaseConn2(Conn2); end;
  6. Boa tarde, gero os blocos C800 e C850 do sped fiscal, mas estou enfrentando problemas de performance pois o numero de registros é muito grande. Estou tentando realizar a geração através do componente ACBrSPEDFiscal1 para melhorar. Tentei gerar apenas o bloco C800 porém ele salva apenas o arquivo sem as informações dentro. ( Arquivo em anexo ) Alguém poderia me dizer onde estou errando? Já olhei o exemplo mas não consegui descobrir onde estou errando. Outra duvida é a seguinte, quando vou passar o COD_SIT se eu utilizo COD_SIT.sdRegular; ou COD_SIT:= sdRegular; das duas formas ele da erro. Qual a forma correta de utilizar? with ACBrSPEDFiscal1 do begin DT_INI := DtInicial.Date; DT_FIN := DtFinal.Date; Arquivo:='C:\Users\Felipe\Desktop\teste.txt'; LinhasBuffer := StrToIntDef('10', 0); IniciaGeracao; while not qryC800.EOF do begin with Bloco_C.RegistroC800New do begin COD_MOD:='59'; //COD_SIT.sdRegular; NUM_CFE := qryC800.Fields[2].Text; DT_DOC := StrToDate(qryC800.Fields[3].Text); VL_CFE := StrToFloat(qryC800.Fields[4].Text); VL_PIS := StrToFloat(qryC800.Fields[5].Text); VL_COFINS := StrToFloat(qryC800.Fields[6].Text); CNPJ_CPF := qryC800.Fields[7].Text;; NR_SAT := qryC800.Fields[8].Text; CHV_CFE := qryC800.Fields[9].Text; VL_DESC := StrToFloat(qryC800.Fields[10].Text); VL_MERC := StrToFloat(qryC800.Fields[11].Text); VL_ICMS := StrToFloat(qryC800.Fields[12].Text); end; qryC800.Next; WriteBloco_C(False); end; WriteBloco_C(True); SaveFileTXT; ShowMessage('finalizado'); end; teste.txt
  7. Para solucionar o caso acima, basta declarar na uses a biblioteca: pcnConversao e fazer as respectivas conversões CST := CSTICMSToStr(ACBrSAT.CFe.Det.Items[a].Imposto.ICMS.CST); CSOSN := CSOSNIcmsToStr(ACBrSAT.CFe.Det.Items[a].Imposto.ICMS.CSOSN);
  8. Boa noite, tenho vários arquivos XML mod 59 (CFe) e preciso importar as informações. Estou usando o componente ACBrSAT para me auxiliar mas estou tendo dificuldade para a leitura de algumas tags por ex: CST e CSOSN do ICMS CST := ACBrSAT.CFe.Det.Items[a].Imposto.ICMS.CST; CSOSN := ACBrSAT.CFe.Det.Items[a].Imposto.ICMS.CSOSN; Quando tento receber o valor na variável desta forma eu não consigo, alguém poderia me dar uma luz? Possuo o mesmo tipo de problema com o pis e cofins. Consultei os arquivos de exemplo mas não encontrei de importação.
×
×
  • 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.