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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...