Ola!
Eu consegui gerar este exemplo. (Código Abaixo)
O arquivo gerado pelo exemplo foi lido pelo site da Ginfes e gerado NFSe com sucesso.
O meu problema é:
Como colocar neste código varias notas fiscais.
Obs.: Eu até consegui colocar o loop, mas a linha - <Rps>
não fecha para a próxima NFSe.
Ou seja quando aplico o loop a linha deveria começar - <Rps>
e terminar com </Rps>.
Obrigado.
CÓDIGO...
procedure TForm1.Button1Click(Sender: TObject);
var
NodeNivelA, NodeNivelB, NodeNivelC, NodeNivelD, NodeNivelE, NodeNivelF,
NodeNivelG, NodeNivelH, NodeNivelI, NodeNivelJ: IXMLNode;
vXMLDoc: TXMLDocument;
nItens: integer;
begin
vXMLDoc := TXMLDocument.Create(self);
Try
With vXMLDoc do
begin
Active := True;
Version := '1.0';
Encoding := 'UTF-8';
AddChild('EnviarLoteRpsEnvio','');
DocumentElement.Attributes['xmlns:tip'] := '';
// Dados da NFSe
NodeNivelA := DocumentElement;
NodeNivelA.ChildValues['NumeroLote'] := '1';
NodeNivelA.ChildValues['Cnpj'] := '11111111111111';
NodeNivelA.ChildValues['InscricaoMunicipal'] := '2222222';
NodeNivelA.ChildValues['QuantidadeRps'] := '1';
NodeNivelA := NodeNivelA.ChildNodes['ListaRps'];
For nItens := 1 to 2 do
begin
NodeNivelA := NodeNivelA.ChildNodes['Rps'];
NodeNivelB := NodeNivelA.ChildNodes['tip:IdentificacaoRps'];
NodeNivelB.ChildValues['Numero'] := '1';
NodeNivelB.ChildValues['Serie'] := 'NFSe';
NodeNivelB.ChildValues['Tipo'] := '1';
NodeNivelA.ChildValues['tip:DataEmissao'] := '2014-02-26T09:58:52';
NodeNivelA.ChildValues['tip:NaturezaOperacao'] := '1';
NodeNivelA.ChildValues['tip:RegimeEspecialTributacao'] := '1';
NodeNivelA.ChildValues['tip:OptanteSimplesNacional'] := '1';
NodeNivelA.ChildValues['tip:IncentivadorCultural'] := '2';
NodeNivelA.ChildValues['tip:Status'] := '1';
// Serviço e Valores
NodeNivelC := NodeNivelA.ChildNodes['tip:Servico'];
NodeNivelD := NodeNivelC.ChildNodes['tip:Valores'];
NodeNivelD.ChildValues['tip:ValorServicos'] := '10.00';
NodeNivelD.ChildValues['tip:IssRetido'] := '2';
NodeNivelD.ChildValues['tip:ValorIss'] := '0.00';
NodeNivelD.ChildValues['tip:BaseCalculo'] := '10.00';
NodeNivelD.ChildValues['tip:Aliquota'] := '0.0350';
NodeNivelD.ChildValues['tip:ValorLiquidoNfse'] := '10.00';
NodeNivelC.ChildValues['tip:ItemListaServico'] := '1401';
NodeNivelC.ChildValues['tip:CodigoTributacaoMunicipio'] := '14.01.00';
NodeNivelC.ChildValues['tip:Discriminacao'] := 'Teste NFSe';
NodeNivelC.ChildValues['tip:MunicipioPrestacaoServico'] := '3543402';
// Prestador
NodeNivelE := NodeNivelA.ChildNodes['tip:Prestador'];
NodeNivelE.ChildValues['tip:Cnpj'] := '11111111111111';
NodeNivelE.ChildValues['tip:InscricaoMunicipal'] := '2222222';
// Tomador
NodeNivelF := NodeNivelA.ChildNodes['tip:Tomador'];
NodeNivelG := NodeNivelF.ChildNodes['tip:IdentificacaoTomador'];
NodeNivelH := NodeNivelG.ChildNodes['tip:CpfCnpj'];
NodeNivelH.ChildValues['tip:Cpf'] := '33333333333';
NodeNivelF.ChildValues['tip:RazaoSocial'] := 'MIRIANE NUNES DA SILVA';
// Tomador Endereço
NodeNivelI := NodeNivelF.ChildNodes['tip:Endereco'];
NodeNivelI.ChildValues['tip:Endereco'] := 'RUA SAO CRISTOVAO DA LAGUNA';
NodeNivelI.ChildValues['tip:Numero'] := '513';
NodeNivelI.ChildValues['tip:Bairro'] := 'ANCHIETA';
NodeNivelI.ChildValues['tip:Cidade'] := '3549805';
NodeNivelI.ChildValues['tip:Estado'] := 'SP';
NodeNivelI.ChildValues['tip:Cep'] := '15100000';
// Tomador Contato
NodeNivelJ := NodeNivelF.ChildNodes['tip:Contato'];
NodeNivelJ.ChildValues['tip:Telefone'] := '4444444444';
NodeNivelJ.ChildValues['tip:Email'] := '';
end;
vXMLDoc.SaveToFile('EnviNFSe.xml');
WebBrowser1.Navigate(ExtractFileDir(application.ExeName) +
'\EnviNFSe.xml');
end;
finally
vXMLDoc.Free;
end;
end;