![]() |
Recorrer directorio y trabajar con archivos
Buenas amigos, tengo una aplicacion cliente servidor en datasnap con delphi.
Del lado del cliente cuando no hay conexion los tickets y presupuestos se guardan en xml, con el metodo savetofile del clientdataset, ya que trabajo con este componente. Entonces cuando retorna la conexion, necesito recorrer el directorio tickets por ejemplo y cargar los mismo en la base de datos, para lo mismo se usa el procedimiento del server que se usa siempre.
Pense contar la cantidad de archivos primero, pero me identifica 1(uno solo), y por ende no envia nada.
Lo que hice lo saque de ejemplos del foro y de la web, pero me esta costando. Saludos |
Busqueda recursiva
Debes realizar la busqueda recursiva de archivos, hay muchos ejemplos de esto.
Enalces foro: http://www.clubdelphi.com/foros/showthread.php?t=7181 http://www.clubdelphi.com/foros/showthread.php?t=86325 Saludos. |
Bueno pues use la funcion de neftali:
Ahora bien mi aplicacion de terminal de puesto de venta tiene un modulo con un edit con la cantidad de ticket(1 por archivo) y un progress bar para programar despues. El caso es que en el evento OnShow del form llamo a
pasandole los parametros Stardir, pero debo crear el objeto fileslist? Luego debo agregar obviamente el codigo que quiero se ejecute al encontrar un archivo dentro del while.
|
Hola.
No entiendo muy bien lo que estás haciendo con el procedimiento. Justo está hecho en un procedimiento para que puedas utilizarlo donde quieras y reaprovecharlo. Si modificas el procedimiento y le añades cosas como estas ya no será "reaprovechable":
Utiliza el procedimiento para buscar todos los ficheros que hay en el directorio que cumplen unas condiciones. Una vez realizada la búsqueda, utiliza un bucle para hacer el trabajo que necesites... (y coloca tu código ahí)
|
Te comento que logre cargar los ficheros xml en el dataset, pero en el xml el metodo savetofile no guarda los internalCalc y los Aggregates, por lo que el dataset ticketspendientes por ej debe contener los mismos campos que el de ticket que se usa a diario.
con la diferencia de que el subtotal de cada registro de compra: precio * cantidad debe ser recalculado, luego mi total si es aggregate.: Me dice : list index of bounds(1) Debo cargar los otros campos? |
no logro enviar .xml a bd usando el server
Hola amigos! abro un nuevo hilo porque hice una pregunta en otro creo fuera de lugar:
Cuando no hay conexion guardo los tickets de mi terminal de puesto de venta en un fichero xml. Y tengo un form donde de haber conexion voy recorriendo el directiorio de los tickets y quiero cargarlos en la base de datos. Primero que los campos que no son Data no se guardan en xml, por lo tanto hay que recalcularlos. Y luego que no veo los cambios en la base de datos. Ademas, no me convendria tener otro tclientdataset distinto para poder hacer tickets mientras vienen clientes en vez de usar el mismo?
lo primero que hago es buscar los ficheros, luego compruebo si hay conexion, si hay para cada archivo hago subtotal y total, y llamo al servidor datasnap. vacio el dataset. Alguien me puede ayudar |
Cita:
Los he unido. |
La franja horaria es GMT +2. Ahora son las 18:27:27. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi