Fórum Felphi gerar arquivo xml pelo clientdataset #406147

06/08/2011

0

Bom dia   Utilizo o delphi 7, utilizo o banco de dados firebird 1.5   preciso de um programa modelo que le um clientdataset e gera um arquivo xml no seguinte formato   nome do arquivo xml (pagamentomensal)   dados abaixo que devem ser gerados no arquivo xml   codigo (integer) nome (varchar(50) salario (numeric,12,2) datapagamento (date)     Se algume puder me ajudar eu agradeço a gentileza   Grato   Placido            
Plácido Netto

Plácido Netto

Responder

Posts

06/08/2011

Jonathan Campos

com os dados em seu ClientDataSet faça: clientdataset.SaveToFile(nomedoarquivo, dfXML);
Responder

Gostei + 0

08/08/2011

Plácido Netto

Boa tarde   Obrigado pela ajuda, mas vou explicar melhor eu tenho uma query, datasetprovider,clientdataset e um data source   queryfolha dspfolha cdsfolha dsfolha           cdsfolha.Close;
      queryfolha.Close;       queryfolha;       cdsfolha;         aqui quero gravar o nome arquivo xml             while (cdsPadrao.Eof = false) do
            begin
                    aqui quero gravar os campos do xml               end       grato   Placido                      
Responder

Gostei + 0

13/08/2011

Plácido Netto

Boa tarde   Obrigado pela ajuda, mas vou explicar melhor eu tenho uma query, datasetprovider,clientdataset e um data source   queryfolha dspfolha cdsfolha dsfolha           cdsfolha.Close;
      queryfolha.Close;       queryfolha;       cdsfolha;         aqui quero gravar o nome arquivo xml             while (cdsfolha.Eof = false) do
            begin
                    aqui quero gravar os campos do xml                     cdsfolha.next;             end       grato   Estou precisando de ajuda, algume pode me ajudar.   Placido                      
Responder

Gostei + 0

13/08/2011

Marco Salles

Seria varrer os tfiels , especificando seu nome e seu tipo e depois salvando em formato Xml

seria isto ???
Responder

Gostei + 0

14/08/2011

Plácido Netto

Bom dia   É  exatamente isto...   Obrigado pela ajuda   Grato   Placido
Responder

Gostei + 0

14/08/2011

Marco Salles

Bom dia   É  exatamente isto...   Obrigado pela ajuda   Grato   Placido


Então , mas ja foi lhe aconselhado fazer assim


com os dados em seu ClientDataSet faça: clientdataset.SaveToFile(nomedoarquivo, dfXML);


Não lhe serviu porque ????

Porque além da definição dos fields vem também os dados ???

Vc disse como quer , mas não disse porque a ajuda do colega não te serviu ???

Porque o Xml gerado é padrão dataPacker e não Xml puro ???


Responder

Gostei + 0

15/08/2011

Plácido Netto

Bom dia   Vou explicar melhor A prefeitura quer que os clientes gerem os arquivos no formato xml
eu tenho os dados do cliente e dos produtos em um cliente dataset,
por tanto eu preciso ler cada campo do clientdaset especificando cada formato
e gravar estes campos no arquivo xml da prefeitura segue abaixo o modelo do arquivo xml ---------------------------------------------------- Modelo de Arquivo XML de Exportação          Os dados abaixo se referem ao modelo de arquivo de exportação de NFS-e com 2 (duas) notas fiscais de serviço eletrônica gerado pelo ISS OnLine. Nome do Arquivo: NFS-e_99999_4-2010.xml <NFSE>
<NOTA>
<COD>1</COD>
<ANOCOMP>2010</ANOCOMP>
<MESCOMP>4</MESCOMP>
<DATA>01/04/2010</DATA>
<HORA>01/01/0001 06:54:55</HORA>
<LOCALSERV>D</LOCALSERV>
<SERIECOD>14</SERIECOD>
<SERIEDESC>Nota Fiscal Eletrônica</SERIEDESC>
<SITCOD>1</SITCOD>
<SITABREV>N</SITABREV>
<SITDESC>Normal</SITDESC>
<OBSSERVICO>NENHUMA INFORMAÇÃO COMPLEMENTAR REGISTRADA</OBSSERVICO>
<RETIDO>N</RETIDO>
<ATIVCOD>5510801</ATIVCOD>
<ATIVDESC>Hotéis</ATIVDESC>
<BASECALC>39.90</BASECALC>
<IMPOSTO>0.80</IMPOSTO>
<DEDUCAO>0.00</DEDUCAO>
<RETENCAO>0.00</RETENCAO>
<ALIQUOTA>2.00</ALIQUOTA>
<PRESTCODCONTRIB>123456</PRESTCODCONTRIB>
<PRESTCODMOBILIARIO>12345</PRESTCODMOBILIARIO>
<PRESTINSCRICAOMUN>01.234/2000</PRESTINSCRICAOMUN>
<PRESTCPFCNPJ>00000000000000</PRESTCPFCNPJ>
<PRESTNOMERAZAO>HOTEL DE LINS LTDA</PRESTNOMERAZAO>
<PRESTESTAB>S</PRESTESTAB>
<PRESTSUPERSIMP>N</PRESTSUPERSIMP>
<PRESTPREFIXOCOD>3</PRESTPREFIXOCOD>
<PRESTPREFIXODESC>AVENIDA.</PRESTPREFIXODESC>
<PRESTLOGCOD>102</PRESTLOGCOD>
<PRESTLOGDESC>FLORIANO PEIXOTO</PRESTLOGDESC>
<PRESTBAIRROCOD>56</PRESTBAIRROCOD>
<PRESTBAIRRODESC>CENTRO</PRESTBAIRRODESC>
<PRESTMUNICIPIOCOD>3527108</PRESTMUNICIPIOCOD>
<PRESTMUNICIPIODESC>LINS</PRESTMUNICIPIODESC>
<PRESTMUNICIPIOUF>SP</PRESTMUNICIPIOUF>
<PRESTNUMERO>01234</PRESTNUMERO>
<PRESTCEP>16400101</PRESTCEP>
<TOMCODCONTRIB>1</TOMCODCONTRIB>
<TOMCODMOBILIARIO>99999</TOMCODMOBILIARIO>
<TOMINSCRICAOMUN>00.001/1974</TOMINSCRICAOMUN>
<TOMCPFCNPJ>44531788000138</TOMCPFCNPJ>
<TOMNOMERAZAO>PREFEITURA MUNICIPAL DE LINS</TOMNOMERAZAO>
<TOMPREFIXOCOD>2</TOMPREFIXOCOD>
<TOMPREFIXODESC>RUA</TOMPREFIXODESC>
<TOMLOGCOD>230</TOMLOGCOD>
<TOMLOGDESC>OLAVO BILAC</TOMLOGDESC>
<TOMBAIRROCOD>56</TOMBAIRROCOD>
<TOMBAIRRODESC>CENTRO</TOMBAIRRODESC/>
<TOMMUNICIPIOCOD>3527108</TOMMUNICIPIOCOD>
<TOMMUNICIPIODESC>LINS</TOMMUNICIPIODESC>
<TOMMUNICIPIOUF>SP</TOMMUNICIPIOUF>
<TOMNUMERO>640</TOMNUMERO>
<TOMCEP>16400075</TOMCEP>
<SERVICOS>
<SERVICO>
<CODIGO>1096</CODIGO>
<DESCRICAO>OUTROS SERVIÇOS</DESCRICAO>
<QUANTIDADE>1.0000</QUANTIDADE>
<VALOR>39.90</VALOR>
</SERVICO>
</SERVICOS>
</NOTA>
<NOTA>
<COD>2</COD>
<ANOCOMP>2010</ANOCOMP>
<MESCOMP>4</MESCOMP>
<DATA>01/04/2010</DATA>
<HORA>01/01/0001 06:55:55</HORA>
<LOCALSERV>D</LOCALSERV>
<SERIECOD>14</SERIECOD>
<SERIEDESC>Nota Fiscal Eletrônica</SERIEDESC>
<SITCOD>1</SITCOD>
<SITABREV>N</SITABREV>
<SITDESC>Normal</SITDESC>
<OBSSERVICO>NENHUMA INFORMAÇÃO COMPLEMENTAR REGISTRADA</OBSSERVICO>
<RETIDO>N</RETIDO>
<ATIVCOD>C2-5510801</ATIVCOD>
<ATIVDESC>Hotéis</ATIVDESC>
<BASECALC>39.90</BASECALC>
<IMPOSTO>0.80</IMPOSTO>
<DEDUCAO>0.00</DEDUCAO>
<DEDMATERIAIS>N</DEDMATERIAIS>
<RETENCAO>0.00</RETENCAO>
<ALIQUOTA>2.00</ALIQUOTA>
<PRESTCODCONTRIB>123456</PRESTCODCONTRIB>
<PRESTCODMOBILIARIO>12345</PRESTCODMOBILIARIO>
<PRESTINSCRICAOMUN>01.234/2000</PRESTINSCRICAOMUN>
<PRESTCPFCNPJ>00000000000000</PRESTCPFCNPJ>
<PRESTNOMERAZAO>HOTEL DE LINS LTDA</PRESTNOMERAZAO>
<PRESTESTAB>S</PRESTESTAB>
<PRESTSUPERSIMP>N</PRESTSUPERSIMP>
<PRESTPREFIXOCOD>3</PRESTPREFIXOCOD>
<PRESTPREFIXODESC>AVENIDA</PRESTPREFIXODESC>
<PRESTLOGCOD>102</PRESTLOGCOD>
<PRESTLOGDESC>FLORIANO PEIXOTO</PRESTLOGDESC>
<PRESTBAIRROCOD>56</PRESTBAIRROCOD>
<PRESTBAIRRODESC>CENTRO</PRESTBAIRRODESC>
<PRESTMUNICIPIOCOD>3527108</PRESTMUNICIPIOCOD>
<PRESTMUNICIPIODESC>LINS</PRESTMUNICIPIODESC>
<PRESTMUNICIPIOUF>SP</PRESTMUNICIPIOUF>
<PRESTNUMERO>01234</PRESTNUMERO>
<PRESTCEP>16400101</PRESTCEP>
<TOMCODCONTRIB>1328579</TOMCODCONTRIB>
<TOMCODMOBILIARIO>0</TOMCODMOBILIARIO>
<TOMINSCRICAOMUN/>
<TOMCPFCNPJ>11111111111</TOMCPFCNPJ>
<TOMNOMERAZAO>PESSOA FÍSICA - DADOS NÃO INFORMADOS</TOMNOMERAZAO>
<TOMPREFIXOCOD>2</TOMPREFIXOCOD>
<TOMPREFIXODESC>RUA</TOMPREFIXODESC>
<TOMLOGCOD>1002126</TOMLOGCOD>
<TOMLOGDESC>DADOS NÃO INFORMADOS</TOMLOGDESC>
<TOMBAIRROCOD>2742</TOMBAIRROCOD>
<TOMBAIRRODESC>NÃO INFORMADO<TOMBAIRRODESC>
<TOMMUNICIPIOCOD>3527108</TOMMUNICIPIOCOD>
<TOMMUNICIPIODESC>LINS</TOMMUNICIPIODESC>
<TOMMUNICIPIOUF>SP</TOMMUNICIPIOUF>
<TOMNUMERO>0</TOMNUMERO>
<TOMCEP>16400000</TOMCEP>
<SERVICOS>
<SERVICO>
<CODIGO>1096</CODIGO>
<DESCRICAO>OUTROS SERVIÇOS</DESCRICAO>
<QUANTIDADE>1.0000</QUANTIDADE>
<VALOR>39.90</VALOR>
</SERVICO>
</SERVICOS>
</NOTA>
</NFSE>
---------------------------------------------------
eu utilizo os componentes do dbexpress
Querydados
dspdados
cdsdados
cdsdados
inico do processo   Querydados.Close;
  cdsdados.Close;
  Querydados.open
  cdsdados.open   // gravar o nome do arquivo xml       while (cdsdados.Eof = false) do
        begin
           // aqui eu tenho os campos
           // numero da nota
           // codigo cliente
           // nome do cliente
           // codigo do produto
           // descricao do produto
           // quantidade
           // valor unitario
           // sao varios itens cada nota            // eu quero que faça um exemplo para cada campo gravando no arquivo xml  
          cdsdados.next
        end;     Grato   Placido
Responder

Gostei + 0

15/08/2011

Marco Salles

Bom dia   É  exatamente isto...   Obrigado pela ajuda   Grato   Placido


Então , mas ja foi lhe aconselhado fazer assim


com os dados em seu ClientDataSet faça: clientdataset.SaveToFile(nomedoarquivo, dfXML);


Não lhe serviu porque ????

Porque além da definição dos fields vem também os dados ???

Vc disse como quer , mas não disse porque a ajuda do colega não te serviu ???

Porque o Xml gerado é padrão dataPacker e não Xml puro ???





Desculpa mas sem querer ser insistente , porque não responde as perguntas que são feitas a você ??? item a item ..
Responder

Gostei + 0

17/08/2011

Plácido Netto

Marco Antonio   Obrigado pela preocupaçãoi em tentar me ajudar..   Vou tentar responder suas perguntas...   A Prefeitura de LIns quer que eu gere os dados das notas fiscais de um determindado periodo para   um arquivo no formato xml como especificado acima...   eu tenho so dados do cliente e da nota fsical no clientedataset(cdsimprimenota)      eu preciso fazer o while para ler cada registro de cadata nota e gravar o xml no formato acima..   a sql esta abaixo ----------------------------------------------- SELECT
       NT.CLI_CODIGO,
       CL.CLI_NOME,
       CL.CLI_CNPJ,
       CL.CLI_CPF,
       CL.CLI_RG,
       CL.CLI_LOGRADOUROENDERECO,
       CL.CLI_BAIRRO,
       CL.CLI_CEP,
       CL.CLI_CIDADE,
       CL.CLI_INSCRICAOESTADUAL,
       CL.CLI_UF,
       NT.CODF_CODIGO,
       CF.CODF_DESCRICAO,
       NT.NTF_NUMERONOTA,
       NT.NTF_SEQUENCIAFORMULARIO,
       NT.NTF_VALORTOTALNOTA,
       NT.NTF_DATAEMISSAO,
       NI.SERV_CODIGO,
       S.SERV_DESCRICAO,
       NI.REQ_QTDE,
       NI.REQ_VALOR,
       NT.NTF_TOTALITENS,
       CL.CLI_ISS,
       E.EMP_ALIQUOTAISS FROM NOTAREQUISICAO NT LEFT JOIN EMPRESA E ON (E.EMP_CODIGO = NT.EMP_CODIGO)
                   JOIN NOTAREQUISICAOITENS NI ON (NT.EMP_CODIGO = NI.EMP_CODIGO AND
                           NT.NTF_ANODAEMISSAO = NI.NTF_ANODAEMISSAO AND
                           NT.NTF_NUMERONOTA = NI.NTF_NUMERONOTA)
LEFT JOIN CLIENTE CL ON (NT.EMP_CODIGO = CL.EMP_CODIGO AND
                         NT.CLI_CODIGO = CL.CLI_CODIGO)
LEFT JOIN CODFISCAL CF ON (NT.CODF_CODIGO = CF.CODF_CODIGO)
LEFT JOIN SERVICOS S ON (NT.EMP_CODIGO = S.EMP_CODIGO AND
                         NI.SERV_CODIGO = S.SERV_CODIGO) WHERE NT.EMP_CODIGO = :EMPRESA  AND
NT.ntf_datainicial between :PDATAINICIAL AND :PDATAFINAL  AND
CL.CLI_NOME between :PNOMEINICIAL  AND :PNOMEFINAL   -----------------------------------------------     Espero ter ajudado nas respostas para vc me dar a resposta   Grato   Placido                  
Responder

Gostei + 0

26/08/2011

Plácido Netto

Bom dia   Estou precisando de ajuda...alguem pode me ajudar ???  fazendo um favor   Grato   Placido
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar