Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: anmaroso en 23 de Octubre 2015, 12:12

Título: Fichero XML para transferencias SEPA
Publicado por: anmaroso en 23 de Octubre 2015, 12:12
Hola a tod@s, buenos días.

Tengo un fichero XML con todas las etiquetas bien esquematizadas.

Mi pregunta es cómo paso valores a las que lo requieren. o qué método es más sencillo para emitir ese fichero.

He leído que se puede hacer por WRITER o por diseño XLS pero la verdad es que no sé como seguir después de ordenar todas las etiquetas.

 Agradecería cualquier tipo de información al respecto.

Saludos.
Título: Re:Fichero XML para transferencias SEPA
Publicado por: Alex Rodríguez en 26 de Octubre 2015, 12:30
Hola anmaroso, pega el código de un fichero con datos de ejemplo (borra datos reales y reemplázalos por ficticios) e indica a dónde debes pasar los valores ¿Tratas de mostrarlos en pantalla?

Saludos
Título: Re:Fichero XML para transferencias SEPA
Publicado por: anmaroso en 27 de Octubre 2015, 12:44
Hola Alex, buenos días.

Perdona por la tardanza en contestar pero es que ayer no estuve con el ordenador.

Te copio un fichero XML

Código: [Seleccionar]

<?xml version="1.0" encoding="utf-8" ?>
<CstmrCdtTrfInitn>

  <GrpHdr>
     
    <MsgId>FTRANSF_E.vft13</MsgId>
    <CreDtTm></CreDtTm>
    <NbOfTxs></NbOfTxs>
    <CtrlSum></CtrlSum>

  </GrpHdr>
   
</CstmrCdtTrfInitn>

______________________________________

Public Class GrpHdr ' cabecera
    Public MsgId As String, Length(35)
    Public CreDtTm As String       '   , Length(19)
    Public NbOfTxs As Integer
    Public CtrlSum As Single, format("##,##0.00")

    Public Sub New(ByVal MsgId As String, ByVal CreDtTm As String, _
     ByVal NbOfTxs As Integer, ByVal CtrlSum As Single)
        Me.MsgId = "vft16"     ' MsgId
        Me.CreDtTm = "vft14"  'CreDtTm
        Me.NbOfTxs = "vfi1"       '   NbOfTxs
        Me.CtrlSum = "vfs1"     'CtrlSum
    End Sub

End Class


En el primer caso en la etiqueta MsgId debe de ir el valor de una variable que en  sería la vft13 que está en el formulario FTRANSF. Luego hay otras etiquetas con valores de una tabla de datos. Además hay etiquetas que se validarían con condicionantes. Este fichero creo que se haría por WRITER.

Pero he leído algo de que se pueden hacer más sencillo por clases, te paso en el segundo caso, algo que intento pero que me pasa lo mismo no coge el valor de la variable. Además habría que serializar estas clases.

Gracias y saludos.
Título: Re:Fichero XML para transferencias SEPA
Publicado por: Alex Rodríguez en 29 de Octubre 2015, 09:00
Hola anmaroso en el código de la clase veo algo que no parece coherente: declaras una variable como  Public NbOfTxs As Integer, eso significa que esa variable va a almacenar valores numéricos enteros.

Sin embargo luego escribes Me.NbOfTxs = "vfi1" y esto parece una incorrección, ya que si la variable está destinada a almacenar valores numéricos enteros no le puedes pasar una cadena de texto como vfi1. La variable está preparada para recibir por ejemplo Me.NbOfTxs = 476 no entiendo bien por el por qué de esto.

Saludos
Título: Re:Fichero XML para transferencias SEPA
Publicado por: anmaroso en 29 de Octubre 2015, 11:02
Hola Alex. Buenos días.

Las vfi1 y demás vf son variables que en algún sitio he leído que se tienen que entrecomillar para este tipo de clases de XML. No sé si debe de ser así.
Probaré quitando las comillas que lo cierto es que es más lógico y correcto.

Gracias y saludos.
Título: Re:Fichero XML para transferencias SEPA
Publicado por: Alex Rodríguez en 30 de Octubre 2015, 09:42
Hola anmaroso, quitar las comillas tampoco vale, el problema está en el tipo de dato, y esto es un concepto de base. Te recomiendo seguir este curso paso a paso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61 ahí se practica con todos los conceptos de base.

Saludos
Título: Re:Fichero XML para transferencias SEPA
Publicado por: anmaroso en 30 de Octubre 2015, 10:02
Hola, Alex. Buenos días:

El curso ya lo estoy haciendo, voy por la lección 25. Seguiré con él.

Muchas gracias y saludos.