Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Etiquetas XML

Como muchos yo también estoy dándole vueltas al tema de los mandatos SEPA. Me he econtrado en el manual de la AEB para estos soportes, en la página 38 hay esto:
Cita:
2.44 Importe ordenado – InstructedAmount
* Definición: Importe del adeudo directo expresado en euros (AT-06).
* Etiqueta XML: <InstdAmt>
* Ocurrencias: [1..1]
* Formato:
  • ActiveOrHistoricCurrencyAndAmount: FractionDigits: 2, minInclusive: 0, totalDigits: 11
  • ActiveOrHistoricCurrencyCode: [A-Z]{3,3}
* Reglas de uso:
  • Máximo 11 dígitos, de los cuales 2 son decimales (importe mínimo: 0.01, importe máximo: 999999999.99).
  • Separador decimal: '.'.
  • En la etiqueta debe incluirse el código 'EUR' correspondiente a la moneda euro, según la ISO 4217.
    • Ejemplo: Adeudo directo de 537 euros
      <InstdAmt Ccy="EUR">537.00</InstdAmt>
¿Cómo hago para insertar en la etiqueta InstdAmt ese valor Ccy="EUR"? Estoy trabajando con Builder 6.
Responder Con Cita
  #2  
Antiguo 14-01-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Un código como este:

Código Delphi [-]
var
  Items, Task: IXMLNode;
  XML:string;
  Doc: IXMLDocument;
begin

  Doc := NewXMLDocument;
  Items := Doc.AddChild('CdtTrfTxInf');
  //...
  Items := Items.AddChild('amt');
  Task := Items.AddChild('InstdAmt');
  Task.Attributes['Ccy'] := 'EUR';
  Task.NodeValue := '537.00';
  //...
  XML := Doc.XML.Text;
  Memo1.Lines.Text := XML;

Te dará un resultado como este:

Código:
<?xml version="1.0"?>
<CdtTrfTxInf>
<amt>
<InstdAmt Ccy="EUR">537.00</InstdAmt>
</amt>
</CdtTrfTxInf>
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 14-01-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias por la respuesta. El código que tengo ahora es este (decartando las cabeceras del formato SEPA):
Código:
_di_IXMLNode iNode0, iNode1, iNode2, iNode3, iNode4, iNode5, iNode6, iNode7;

XMLDocument1->Active   = false;
XMLDocument1->FileName = "";
XMLDocument1->Active   = true;

XMLDocument1->DocumentElement = XMLDocument1->CreateElement("Document","urn:iso:std:iso:20022:tech:xsd:pain.008.001.02");
[...]
iNode2 = iNode1->AddChild(WideString("DrctDbtTxInf"));
     iNode3 = iNode2->AddChild(WideString("PmtId"));
          iNode4 = iNode3->AddChild(WideString("EndToEndId"));
          iNode4->SetNodeValue(fSelSoc->Lista->Items->Item[nItem]->SubItems->Strings[1]);
     iNode3 = iNode2->AddChild(WideString("InstdAmt"));
     iNode3->Attributes["Ccy"] = "EUR";
     iNode3->SetNodeValue(StringReplace(StringReplace(Lista->Items->Item[nItem]->SubItems->Strings[4], "€", "", oReplace), ",", ".", oReplace));
Al grabar el fichero lo hace así:
Código:
<DrctDbtTxInf>
  <PmtId>
    <EndToEndId>4160</EndToEndId>
  </PmtId>
  <InstdAmt Ccy="True"/>
</DrctDbtTxInf>
Compila bien, pero al ejecutar me da esete error en línea SetNodeValue:

Va pro delante: Parte de los datos los saco de un TListView que está en un formulario que sigue abierto.
Responder Con Cita
  #4  
Antiguo 14-01-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Perdón. Me equivoqué en el código. Tengo puesto esto:
Código:
iNode3 = iNode2->AddChild(WideString("InstdAmt"));
iNode3->Attributes["Ccy"] = "EUR";
iNode3->NodeValue = StringReplace(StringReplace(fSelSoc->Lista->Items->Item[nItem]->SubItems->Strings[4], "€", "", oReplace), ",", ".", oReplace).Trim();
y en lugar de EUR me pone True.
Cita:
<InstdAmt Ccy="True">24.00</InstdAmt>
Responder Con Cita
  #5  
Antiguo 14-01-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Sólo por curiosidad y para descartar, si pones cualquier otra cosa, qué aparece?


Código Delphi [-]
iNode3->Attributes["Ccy"] = "clubdelphi";
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 15-01-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
¿Sólo por curiosidad y para descartar, si pones cualquier otra cosa, qué aparece?
Lo mismo: True.
Responder Con Cita
  #7  
Antiguo 16-01-2015
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Lo que me está pasando ¿Puede tener algo que ver con las propiedades del componente TXMLDocument?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
... etiquetas ... Jure Humor 10 11-06-2012 04:39:58
Etiquetas RebeccaGL Varios 8 24-09-2008 21:22:50
Etiquetas vB. [Gunman] PHP 24 16-12-2005 06:30:28
Uso de las etiquetas vB marto Noticias 0 07-05-2004 18:46:06
Etiquetas en Qr muli Impresión 4 23-11-2003 02:36:33


La franja horaria es GMT +2. Ahora son las 10:56:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi