Ver Mensaje Individual
  #19  
Antiguo 14-03-2020
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 280
Reputación: 8
manelb Va por buen camino
Buenos días a todos…

Hola Oscarrac, perdona el retraso en contestar….

No comprendo a que te refieres cuando dices que
Cita:
en los archivos XML de ejemplo (adjunto)
existen "claves" que cuando se generan con xl XSD no aparecen
El fixhero xml resultante contendrá todas y cada una de las líneas que tú le añadas.
Es verdad que estas líneas que me muestras de ejemplo, las cuales hacen referencia a precios, además del propio valor de la etiqueta tienen atributos.
Para asignarlos, deberás conocer los diferentes valores que pueden tomar, y la forma de asignarlos a cada etiqueta.
No recuerdo yo ahora que el formato Facturae en España tenga etiquetas con atributos, pero buscando un poco he encontrado que probablemente se pueda hacer de la siguiente e forma.
He ampliado un poco el ejemplo anterior que puse para insertar un nodo con algunas etiquetas de una línea de factura

Código Delphi [-]
var
  factura: IXMLInvoiceType;
  AccountID: IXMLAdditionalAccountIDType_cbc;
  PartyName: IXMLPartyNameType_cac;
  unaLinea: IXMLInvoiceLineType_cac;
begin
  factura:= GetInvoice(XMLDocument1);
  factura.IssueDate.NodeValue:='2011-06-28';
  factura.AccountingSupplierParty.CustomerAssignedAccountID.NodeValue:= '20100113612';

  AccountID:= factura.AccountingSupplierParty.AdditionalAccountID.Add;
  AccountID.nodevalue:='6';

  PartyName:= factura.AccountingSupplierParty.Party.PartyName.Add;
  PartyName.Name.NodeValue:='K&G Laboratorios';

  //******

  unaLinea:= factura.InvoiceLine.Add;
  unalinea.id.NodeValue:=1;

  unaLinea.InvoicedQuantity.SetAttributeNS('unitCode','', 'BX');
  unaLinea.InvoicedQuantity.SetAttributeNS('unitCodeListID','', 'UN/ECE rec 20');
  unaLinea.InvoicedQuantity.SetAttributeNS('unitCodeListAgencyName','', 'United Nations Economic Commission forEurope');
  unaLinea.InvoicedQuantity.NodeValue:=2000;

  unaLinea.LineExtensionAmount.SetAttributeNS('currencyID','','PEN');
  unaLinea.LineExtensionAmount.NodeValue:= '43840.00';


  //*****

  memoxml.lines.Text:= XMLDocument1.XML.Text;

end;

Espero te sirva...

Saludos
Responder Con Cita