Vfp9 y xml

Imagínense una factura diseñada en 3 tablas,
cabeza.dbf Encabezado de la factura
detalle.dbf Items de la factura
Totales.dbf Total de la factura
Tengo que generar un archivo llamado FACTURA.XML, donde solo estén los registros de estas tablas (no el esquema), alguna idea

2 respuestas

Respuesta
1
Trata con esto:
Crea un informe de Visual FoxPro (archivo .frx) con los datos de las tablas que mencionaste.
El siguiente código convierte convierte un reporte de visual foxpro a un archivo tipo xml puedes pegarlo en un prg, en un método de formulario o bien en el evento click de un botón.
Local lcListener, lcShell
lcListener = .NULL.
Do (_reportoutput) with 4, lcListener
With lcListener
    .TargetFileName = forcepath('Factura.xml', sys(2023))
    .XMLMode = 0 && 0 = Solamente datos, 1 = solamente diseño, 2 = Modos 0 y 1
    .QuietMode = .T.
Endwith
wait window 'Generando XML...' nowait
erase (lcListener.TargetFileName)
report form Factura.frx object lcListener
* Mostrar los resultados.
lcShell = newobject('_shellexecute', home() + 'ffc\_environ.vcx')
LcShell. ShellExecute(lcListener. TargetFileName)
Wait clear
Nota: Este código funciona únicamente en Visual FoxPro 9.0 por lo tanto debes tener instalada la versión anteriormente mencionada.
Ante todo, muchas gracias, por compartir tus conocimientos en forma desinteresada, de verdad... gracias.
En este archivo XML, que tengo que enviar, solo tengo que enviar datos, ya que el esquema esta establecido, hay alguna forma de poder insertar en el código que me envías, el esquema y que no tome la estructura de las tablas.
Gracias
jrcoronado
El código que te envío solamente envía los datos de la tabla a un archivo XML, pero no entiendo a qué te refieres con eso de poder insertar en el código, ¿podrías explicarme eso en forma más detallada?
Gracias experto, veras, tal me explico mal, ya que soy nuevo en xml - vfp9, lo que pasa es que tengo que enviar los datos bajo este esquema:
Es la opción 6 de esta página:
http://www.sunat.gob.pe/legislacion/nuevoSigad/index.html
La que dice:
Ingreso Agente de Aduanas 17.09.2009 Esquema XSD del Formato Electrónico de
                                                                    La DUAv.1
Para que tengas una idea:
http://www.sunat.gob.pe/legislacion/nuevoSigad/2009/setiembre/pp170909/presentacionEstructura.ppt#322,16,Diapositiva 16
Gracias
jrcoronado
Bueno ya vi todo entonces en este caso tú debes crear un cursor con los datos en el orden que los solicita el esquema del servidor (es el esquema descrito en Excel archivo del vínculo que me suministraste) y utilizas la función CursorToXML de Visual FoxPro 9.0 para enviar los datos al servidor ejemplo:
Creamos un cursor con Select -SQL
Select * from Productos into Cursor cProductos
CursorToXML("cProductos", "Productos.xml", 1, 512, 0, "www.miempresa.com.co/MiEsquema.xsd")
Eso debería solucionar tu problema...
Gracias experto, dime no hay que hacer xmladapter (para usar tablas anidadas),¿?, la verdad entiendo muy poco casi nada de xml, recién estoy echando un vistazo de como se forma y como se trabaja en vfp9.
Gracias.
No hay necesidad, mediante código debes crear un cursor con los datos requeridos en el archivo de esquema *. Xsd del servidor, deberás insertar los datos en el cursor en el orden que lo requiere dicho esquema y utilizas la función que te nombre arriba de la cual te puse el ejemplo.
A manera de información, Xmladapter, como su nombre lo dice, importa datos de un archivo xml a un cursor de Visual FoxPro, en resumidas cuentas este control no te sirve.
Gracias, muchas gracias experto, voy a poner en practica todo lo que me dices, y bueno vamos a ver como sale todo esto, aunque yo creo que con tu valioso apoyo debe salir Ok.
Esta información (xml), lo tengo que enviar desde la empresa donde laboro (Agencia de aduana) a la aduana de mi país (Sunat).
Se que te molestare más adelante, así que espero me sepas comprender, y darme así como hasta ahora tu apoyo.
jrcoronado
Respuesta
Dale una mirada en ayuda de fox pro CURSORTOXML( )
CURSORTOXML( ), trabaja con una sola tabla, no con varias tablas, agradecería otra sugerencia, tal vez XMLADAPTER, lo que pasa es que no se como usarla.
Gracias
La idea es crear una sola tabla con las tres en un cursor y luego pasarla a xml

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas