FoxPro/Visual FoxPro - XML cuaderno 34

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

XML cuaderno 34

Publicado por Irene (38 intervenciones) el 17/01/2014 11:09:15
Hola a todos,
no se si alguno de vosotros ha hecho o tiene que hacer el cuaderno 34 en formato XML por lo de la nueva ley SEPA.
Si es así podría orientarme un poco de como se hace un XML desde Foxpro?
Gracias y un saludo

Irene
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 109
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

XML cuaderno 34

Publicado por elhabraque (58 intervenciones) el 19/01/2014 09:47:00
Muy malamente.

Como la estructura de la Norma SEPA no permite utilizar el CURSORTOXML, he tenido que enviar línea a línea cada dato. He creado este método queme permite enviar el nivel del dato (lo que lo hace más legible) y el campo y su dato, indicando además si es el tag de inicio de campo o el final.

Espero te sirva.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
LPARAMETERS pNivel, pTag, pValor
 
**	METODO QUE GRABA LA EQTIQUETA EN EL ARCHIVO XML
**	SE LE PASAN LOS SIGUIENTES VALORES
**	pNivel		Nivel para mejorar la visualización del fichero
**	pTag		Etiqueta del campo
**	pValor		Contenido de la etiqueta o si es el final
 
*	THIS.Enviar_XML(1, 'CstmrDrctDbtInitn', '' | .T.)
 
LOCAL lxLinea, lxEtik_ini, lxEtik_fin, lxValor, lxFinal
 
IF PCOUNT() < 3
	lxValor	= ''
	lxFinal	= .F.
ELSE
	IF VARTYPE(pValor) == 'C'
		lxValor	= pValor
		lxFinal	= .F.
	ELSE
		lxValor	= ''
		lxFinal	= pValor
	ENDIF
ENDIF
 
lxLinea	= ''
pNivel	= pNivel + 1
IF pNivel > 0
	lxLinea	= lxLinea + REPLICATE('	', pNivel)
ENDIF
 
IF !EMPTY(pTag)
	lxEtik_ini	= '<' + pTag + '>'
 
	IF RIGHT(pTag, 9) == 'Ccy="EUR"'
		pTag	= ALLTRIM(LEFT(pTag, LEN(pTag) - 9))
	ENDIF
 
	lxEtik_fin	= '</' + pTag + '>'
ELSE
	lxEtik_ini	= ''
	lxEtik_fin	= ''
ENDIF
 
IF EMPTY(lxValor)
	lxLinea	= lxLinea + IIF(lxFinal, lxEtik_fin, lxEtik_ini)
ELSE
	lxLinea	= lxLinea + lxEtik_ini + lxValor + lxEtik_fin
ENDIF
 
lxLinea	= lxLinea + CHR(13) + CHR(10)
 
STRTOFILE(lxLinea, THISFORM.txtFichero.Value, 1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar