FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Exportar DBGrid a txt con formato.
Salu2 amigos.
Se me ha encomendado la tarea de realizar la exportación de datos de un archivo MDB a un TXT. La información a exportar primero debe ser visualizada en un DBGRID. Sé como recorrer el DBGRID y pasar los datos al archivo TXT, pero la exportación debe realizarse con ciertas condiciones, como por ejemplo: 1.- Los campos se deben justificar a la derecha. 2.- Los campos deben ir de forma continua, sin ningún tipo de separador. Esto lo sé hacer. 3.- Cada campo tiene su tamaño específico al momento de exportar. Por ejemplo: Código del comprobante, debe tener un largo 10. Numero del documento, debe tener un largo 10. Fecha del documento, debe tener un largo 8. Razón Social, debe tener un largo 50. Pero si el dato ocupa menos caracteres, como agrego los espacios a la izquierda para completar el largo, si el dato tiene un largo de 3 caracteres por ejemplo? Espero que se haya entendido lo que escribí XD. salu2. |
#2
|
||||
|
||||
Hola darkone2k4.
Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 01-04-2011 a las 09:37:10. |
#3
|
|||
|
|||
Hola ecfisa.
Muchas gracias por la respuesta. Voy a probar de inmediato el código que me has dado. salu2. ----------------EDIT--------------- Acabo de probar el código y funciona muy bien. Ahora tengo una consulta. Los datos que muestro en el DBGRID, como los puedo ajustar para que el largo corresponda a los requerimientos??, ya que en algunos campos se supera en número de caracteres por campo que se necesitan en el archivo TXT. salu2. Última edición por darkone2k4 fecha: 01-04-2011 a las 08:02:01. |
#4
|
||||
|
||||
Hola darkone2k4.
Revisá estos enlaces: Colocar Ancho De columna de un DBGrid ... Ajuste de columnas en un DBGrid AutoAjustar un dbgrid Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 01-04-2011 a las 09:37:22. |
#5
|
|||
|
|||
gracias nuevamente por la respuesta ecfisa.
Hice una revisión de los links que me diste, pero no se ajusta a lo que necesito. Creo que expliqué mal lo que necesito. La verdad es que en el DBGRID me da lo mismo el largo( caracteres ) que tengan los campos, lo que es importante es que al momento de pasarlos al archivo de texto, éstos cumplan con los requerimientos de longitud. Estoy jugando con copy, trim, length para ver si por ahí me funciona. desde ya, muchas gracias. |
#6
|
|||
|
|||
Pues si te he entendido bien, ya lo tienes.
Para cada campo miras su longitud con el length. Y si es más corto que la longitud que debe tener en el txt le añades los espacios. Y sino pues haces un Copy de 0 al numero de caracteres que quieres o bien un LeftStr. Espero haber sido de ayuda! |
#7
|
|||
|
|||
gracias por la respuesta urixiv.
al final lo he hecho utilizando Copy. Claro que como son 15 columnas de distinto tamaño en longitud, he incluido un case donde, dependiendo de la columna, hiciera el recorte de caracteres. salu2. |
#8
|
||||
|
||||
Hola darkone2k4.
Me alegro que lo hayas podido realizar pero, no entiendo la necesidad de usar copy para ajustar el largo al guardar en el archivo. De eso se encargan la propiedad DisplayWidth y Length en la línea: Si no alterás los valores de presentación tendran por defecto los declarados en el DataSet y por lo tanto el campo cumplirá los requerimientos de longitud. Es decir que un campo de 10 caracteres con 3 ocupados, se guardará con 10 caracteres (7 espacios y los 3 ocupados). Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 01-04-2011 a las 09:37:32. |
#9
|
|||
|
|||
gracias por responder nuevamente.
Tuve que utilizar Copy, ya que la información que se muestra en la dbgrid, viene de un archivo excel, el cual tiene un formato predeterminado y al pasarlo a TXT algunos campos quedan con una longitud de 255 caracteres, es por eso que he utilizado COPY para acortar los campos. salu2. Cita:
|
#10
|
||||
|
||||
Hola darkone2k4.
Ahora entiendo, gracias por la aclaración. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
|||
|
|||
de nada amigo.
gracias por la ayuda brindada.. salu2. |
#12
|
|||
|
|||
Hola nuevamente.
Te hago una consulta?? Utilizando el código que pusiste, se puede modificar para asignar un número determinado de caracteres dependiendo de las columnas del dbgrid?, he tratado de hacerlo pero no lo he podido lograr. salu2. |
#13
|
||||
|
||||
Hola darkone2k4.
Cita:
Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
|||
|
|||
informacion!!
Cita:
hola ecfisa!! solo queria pedirte si podes mandarme un mensaje detallandome mas o menos que se hace con la rutina, osea se que es para exportar los datos del DBgrid a un archivo TXT pero si podes comentar las lineas de codigo puntuales, por ejemplo para que sirve el BOOKMARK, como hacer para que tambien se exporten los nombres de las columnas y que no este todo hacia la derecha, para saber como se maneja, asi no es solo copy-paste, sino saber como funciona. desde ya muchas gracias!! saludos |
#15
|
||||
|
||||
Hola ezequiel913.
Te documento el código linea a linea: Lo que puede quedar un poco confuso es el uso de StringOfChar, que devuelve n caracteres iguales al especificado. Si queremos mostrar la palabra 'hola' (de longitud 4) ajustada a longitud 7 rellenando con '@' los lugares faltantes a la izquierda sería: De todas formas si hay algo en lo que no me expliqué bién, te ruego que me lo hagas saber y gustoso busco otra forma de hacerlo. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#16
|
||||
|
||||
Cita:
Uno de ellos TDataToAscii hace exactamente lo que pides!... Puedes asignarle las columas de un DBGrid o bien definir campo a campo de forma explícita o bien puedes dejar que el componente los tome autmáticamente del dataset! Cada campo tiene la propiedad Alignment que la puedes asignar o la copia del campo/columna asignado Cita:
Cada campo tiene la propiedad FixedLength que es copiada automáticamente de la propiedad DisplayWidth. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#17
|
||||
|
||||
Cita:
Hola ezequiel913. Tal como me solicitaste por correo privado intentaré explicarte los tres puntos que consultas. 1) Marcas de posición Empecemos por TBookmark de tipo Pointer, que puede almacenar la posición de un registro de un TDataSet y por lo tanto regresar a él despues de realizar algún desplazamiento en el DataSet. Es decir que nos permite 'marcar' un punto del DataSet para luego retornar a él. Su uso va aparejado de tres métodos: GetBookmark, GotoBookmark y FreeBookmark. GetBookmark nos permite obtener la posición del registro actual del DataSet. GotoBookmark nos posiciona en el registro previamente guardado en Bookmark FreeBookmrk libera el recurso utilizado. Ejemplo:
Pero existe el tipo TBookmarkStr con igual finalidad y resultado.TBookmarkStr es de tipo string (no Pointer) y usándolo, el ejemplo anterior quedaría: Como verás este es más simple de usar. 2) Texto a la derecha o izquierda. Simplificando es sólo una manipulación de cadenas de caracteres. Por ejemplo si quiero ajustar un string a una longitud de 30 caracteres y este tiene 12, le faltan 18 para completar los 30. Entonces: Completar 30 caracteres con contenido a la izquierda:
Completar 30 caracteres con contenido a la derecha:
Centrar contenido en 30 caracteres:
3)Para exportar el título de las columnas agregamos: (texto en negrita)
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
exportar reporte a un archivo con formato | ebeltete | Impresión | 7 | 10-08-2024 00:46:21 |
Exportar en formato XBRL | cincosoft | Impresión | 1 | 14-01-2016 20:52:12 |
Exportar a Excel con formato numérico | Viky | Varios | 7 | 08-06-2011 21:01:38 |
Exportar un DBGRID a excel con formato de fecha | Luis Castro | Varios | 3 | 21-01-2011 21:54:38 |
Exportar a Excel en formato .xls | Parabol77 | Varios | 3 | 23-10-2010 01:32:23 |
|