[RESUELTO] Buscar y reemplazar texto de base a writer

Discute sobre las herramientas de la base de datos

[RESUELTO] Buscar y reemplazar texto de base a writer

Notapor jopicach » Mar Mar 28, 2017 4:22 pm

Hola,

Estoy buscando información de como buscar y reemplazar texto y no encuentro nada al respecto.

En MS Office, tenía una base de datos con formularios. Tras rellenar los datos, pulsaba un botón en el formulario, me abría un documento de word que tenía guardado y reemplazaba solo las palabras que clave que llevaba el documento entre % por los campos de ese registro del formulario.

Ejemplo: D. %nombre% %apellidos%, nacido en %localidad%, provincia de %provincia%. Y así todo el documento.

Gracias y un saludo.
Última edición por jopicach el Mar Abr 11, 2017 12:18 pm, editado 3 veces en total
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor Longi » Mié Mar 29, 2017 4:14 pm

Buenas!
Perdona, pero es que he estado fuera del foro por una temporada.
Lo tienes resuelto en https://drive.google.com/file/d/0B9p04immi5i9S2pJdzRPWFdIMUU/view?usp=sharing.
Es un listado de macros para hacer informes sin ORB.
Es un tanto liado, pero es posible, e incluso, además de las técnicas allí señaladas puede hacerse una combinación de correspondencia, que también lo hemos consultado y solucionado en el foro.
Es trabajoso, pero la presentación final es más que correcta.
Debes buscar en la tercera pestaña del formulario, en el apartado de textos.

Un saludo!
Openoffice 4.1.7, en Windows 10
Openoffice 4.1.3, en Windows 7
Libreoffice 6.3, en Windows 10
Longi
 
Mensajes: 590
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Mié Mar 29, 2017 8:11 pm

Hola,

Gracias por la respuesta. Está muy bien el enlace que has facilitado, muy trabajado y con buen resultado pero si que es lioso. No se como se puede aplicar a la duda que yo planteo. Voy a tener que seguir investigando por una solución más fácil. Tiene que existir la posibilidad que desde un formulario, abra un documento writer con la iD del registro en el que está y reemplace el texto. Si logro encontrar una solución la pondré aquí.

Gracias.
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor Longi » Jue Mar 30, 2017 1:51 pm

Mira a ver en este hilo:
https://forum.openoffice.org/es/forum/viewtopic.php?f=31&t=8720
Fue en el primero que empezamos a trabajar el asunto.
Habría que hacer un diseño de formulario en el que quitas la tabla, generas un subformulario con origen de datos de tu conveniencia. Después escribes en el documento (no deja de ser un Writer) y cuando llegue el campo que quieres poner le insertas el campo con ancoramiento como carácter.
En los ejemplos que ya habías descargado hay otras tres técnicas diferentes para tratar textos, pero no está la posibilidad de combinación de correspondencia (es solo de cómo se puede llegar a hacer cosas en informes), pero en este otro hilo también tratamos el tema de la correspondencia de combinación, por si te resulta más sencillo:
https://forum.openoffice.org/es/forum/viewtopic.php?f=31&t=11103&p=48049&hilit=combinaci%C3%B3n#p48049

Espero que algo te sirva.

Un saludo!
Openoffice 4.1.7, en Windows 10
Openoffice 4.1.3, en Windows 7
Libreoffice 6.3, en Windows 10
Longi
 
Mensajes: 590
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Dom Abr 02, 2017 7:44 pm

Hola,

Muchas gracias de nuevo. Perdona que no haya contestado antes, he intentado aplicar lo que has aportado pero no lo consigo, seguiré buscando a ver si lo logro. No domino bien LibreOffice.

Un saludo.
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor Longi » Lun Abr 03, 2017 1:47 pm

Bueno!

He estado repensando el tema, y creo que hay una posibilidad mucho más sencilla. Te cuento por encima, aunque sería mejor que me mandases un ejemplo sin datos comprometedores para hacer unas pruebas:
1- Generar un informe sin el ORB a partir de cualquier tabla (solo por mantener la conexión con la base de datos)
2-Borrar la tabla que se supone que es para lo que se hace el informe. (no eliminar ninguno de los controles ocultos que tiene el informe.)
3-Escribir en el fondo del informe (documento de Writer) el texto que quieres con los % limitando al nombre del campo que querrás sustituir después por el contenido que tiene el campo en el formulario
4- Guardar el informe con el nombre que te apetezca.
5-Crear un botón en el formulario al que le asignaremos la macro que después hacemos en el evento al apretar botón del ratón.
6-Generamos la macro:
1-Tomar la referencia del formulario en el que está el botón ( a través del evento, por ejemplo)
2- Hacer un ciclo que pase por todos los controles recogiendo el nombre del control y el Boundfield (texto o número que está en el control)
3- En ese ciclo, es decir, para cada uno de los controles, comprobaríamos el texto que se escribió en el informe en busca del nombre del control (añadiendo los porcentajes), y una vez buscado lo sustituye por el BoundField que era lo que querías poner.
4-Al terminar el ciclo habrá hecho los cambios pedidos y todos tan contentos.

Hay que tener en cuenta que podemos reducir el número de veces que hacemos que el ciclo se cargue si limitamos a ciertos tipos de controles (que no se haga para etiquetas o botones, por ejemplo).
Ya sé que queda todo bien en teoría, pero luego hay que hacer el código, y sobre todo que las pruebas nos den correctamente, pero la búsqueda de texto y la sustitución por otro no tiene problema, con pocas líneas está hecho.
Otra cosa es que el código que te haga sea el mejor de los posibles. Eso se lo dejaremos a los que saben.
De momento pon un ejemplo sobre el que poder trabajar. Creo que no habrá problemas.

Un saludo!
Openoffice 4.1.7, en Windows 10
Openoffice 4.1.3, en Windows 7
Libreoffice 6.3, en Windows 10
Longi
 
Mensajes: 590
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Lun Abr 03, 2017 4:56 pm

Hola,

Muchas gracias por el interés que te estas tomando. Adjunto un archivo de ejemplo sin datos.Generar informe sin ORB no se hacerlo. El texto de encabezado y pie de página iría donde su nombre indica y el nombre y apellidos puede que se repitan varias veces a lo largo del documento.

Un saludo
Adjuntos
PruebaTexto.7z
(9.81 KiB) 102 veces
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor Longi » Mar Abr 04, 2017 8:10 am

Buenas!
Al ver tu firma y tus afirmaciones he de comentarte que ORB es un generador de informes que viene embebido en Libreoffice desde ya hace unas cuantas versiones, y, aunque se puede regular su existencia o no a la hora de la instalación, la verdad es que la inmensa mayoría de gente es el generador de informes que usa.
Yo, y no sé si cinco más, usamos el generador inicial, mucho menos elaborado, pero que nos permite hacer variaciones que ORB no deja.
Para generar un informe sin ORB puedes hacer una instalación sin él (entonces te funciona el generador antiguo), o, más fácil, te descargas OpenOffice, abres tu base de datos con él, generas el informe y ya puedes cerrarlo y usar cualquiera de las dos suites, ya que te funciona en las dos sin problemas (al menos de momento).
(Añado unas explicaciones 'gráficas' de cómo hacer el informe, aunque no sé si aclaran o lían más)
Bien!
Generé un informe, le eliminé la tabla y escribí un texto en el writer que queda a la vista (Esto he sido incapaz de hacerlo con Libreoffice, es decir, con ORB). Puse los nombres de los campos con el porcentaje, e hice la macro que abre el informe, recorre todos los controles del formulario, selecciona los que son de tipo texto, recoge su nombre y su contenido. Después, para cada nombre de campo, busca en el texto del informe el nombre del campo con los porcentajes (condición inicial de este hilo, creo recordar), y los sustituye por el contenido del campo. 16 líneas de códgo, más explicaciones.

No es el mejor código del mundo, y vale para el ejemplo. Pero si se quiere añadir más tipos de campos habría que testar otros tipos de servicios.
También tener en cuenta que el ejemplo no tiene muchos campos y el texto es corto, pero cada campo supone un ciclo por todo el texto, por lo que, al incrementar el número de campos o la longitud del texto, el tiempo de respuesta se alarga considerablemente (por eso es lo de limitar a los controles de tipo 'texto' en este ejemplo).

Espero que sirva, y si a alguien se le ocurren mejoras en el código, supongo que serán bienvenidas!

Un saludo!
Adjuntos
Anexo.7z
Explicaciones 'gráficas'
(51.47 KiB) 103 veces
PruebaTextoCompletada.7z
(22.45 KiB) 120 veces
Openoffice 4.1.7, en Windows 10
Openoffice 4.1.3, en Windows 7
Libreoffice 6.3, en Windows 10
Longi
 
Mensajes: 590
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Mar Abr 04, 2017 10:20 pm

Hola!!!

Fantástico!!! He probado la solución que propones y me parece estupenda, es justo lo que intentaba hacer. Ahora voy a estudiarla e intentar aplicarla al proyecto, con sus distintos campos, fecha, numéricos.. que no se si cambiará mucho. Muchísimas gracias por tu tiempo. Lo dejo abierto por si quieres o alguien quiere comentar algo y lo daré por cerrado.

Un saludo!
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor Longi » Mar Abr 04, 2017 10:42 pm

Ten en cuenta que el ciclo puesto es solo para texto (If Control.supportsService("com.sun.star.form.component.TextField") Then ...), para los otros tipos de campos los servicios son diferentes.
También tiene un pequeño contratiempo, y es que al ser un informe no puede ser modificado con posterioridad, vamos, que es un texto no editable.
Se pueden organizar cambios dentro de la propia macro (poner negritas, cambio de tamaño de letra, cursiva, etc), o bien se le puede hacer un añadido a la macro para copiar todo el texto final, abrir un documento en blanco editable (un nuevo Writer) y pegar lo que teníamos en el informe. Con ello tendrías un documento editable, pudiendo corregir ortografía, mayúsculas o pequeños detalles que fuesen necesarios.
Si te sirve, ponlo como resuelto.

Otro saludo!
Openoffice 4.1.7, en Windows 10
Openoffice 4.1.3, en Windows 7
Libreoffice 6.3, en Windows 10
Longi
 
Mensajes: 590
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Mié Abr 05, 2017 7:59 pm

Hola de nuevo,

Podría hacer una pregunta. No se si es viable, pero ¿sería muy complicado abrir un documento que ya lleve texto y cambiar solo los campos que estén con los %? Me explico, el botón del formulario abriría un documento writer por su nombre, el cual llevaría ya el texto a modo de plantilla, estaría en la misma carpeta que la base de datos y al abrirse cambiase solo esos campos. Eso ya sería la solución ideal.

Muchas gracias.
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor mauricio » Mié Abr 05, 2017 8:37 pm

jopicach escribió:Hola de nuevo,

Podría hacer una pregunta. No se si es viable, pero ¿sería muy complicado abrir un documento que ya lleve texto y cambiar solo los campos que estén con los %? Me explico, el botón del formulario abriría un documento writer por su nombre, el cual llevaría ya el texto a modo de plantilla, estaría en la misma carpeta que la base de datos y al abrirse cambiase solo esos campos. Eso ya sería la solución ideal.

Muchas gracias.

Claro, pero hay que hacerlo por puro código, sin formularios o asistentes... en este foro he respondido una pregunta similar donde reemplazo los datos que están entre ciertos caracteres...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5933
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Mié Abr 05, 2017 10:13 pm

Hola,

Muchas gracias también. Mauricio, ¿Hay que poner alguna palabra clave para encontrarlo? No logro encontrarlo en el foro.

Un saludo.
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor mauricio » Vie Abr 07, 2017 5:47 am

Hasta a mi me costo encontrarlo, pero aquí esta: https://forum.openoffice.org/es/forum/v ... 531#p51531

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5933
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Vie Abr 07, 2017 2:49 pm

Hola,

He estado mirando tu enlace, pero no sé cómo se podría aplicar al ejemplo que puse.

Un saludo.
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor mauricio » Vie Abr 07, 2017 6:57 pm

Para no estar adivinando... anexa el archivo Writer que deseas generar, con los campos que deseas reemplazar entre {campo1}, {campo2}, etc... para hacer una prueba de concepto...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5933
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Vie Abr 07, 2017 8:25 pm

Hola,

Adjunto el archivo. La base lleva su formulario, se seleccionaría un registro y al pulsar el botón abriría el documento writer por su nombre y reemplazaría el texto de la plantilla writer que está con los simbolos % con los del archivo del formulario.
En Access y Word lo conseguí pero ahora al pasar a LibreOffice no lo logro y la solución propuesta por Longui, la cual agradezco, no termina de valerme. Necesito una vez logrado, poner distintos botones que me abran las distintas plantillas writer asignadas y sustituya el texto.

Muchas gracias y muy bueno tu libro.
Adjuntos
PruebaTexto.7z
(18.27 KiB) 95 veces
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor mauricio » Sab Abr 08, 2017 12:03 am

Hola...

Descarga y pruebas... hace mucho que no programo en Basic, cada vez que lo hago me gusta menos... :)
Código: Seleccionar todo   Expandir vistaContraer vista
Sub MakeDoc(event)   
    'Referencia al formulario
    form = event.Source.Model.Parent 
    'Nombre de la plantilla
    doc_name = event.Source.Model.Tag
    'Ruta de esta base de datos
   path = form.ActiveConnection.Parent.DatabaseDocument.URL
   'Ruta a la plantilla
   path_template = replace_name(path, doc_name)   
    'Abrimos la plantilla
    doc = open_doc(path_template)
     'Reemplazamos los valores
     replace_fields(doc, form)
End Sub


Sub replace_fields(doc, form)
    sd = doc.createSearchDescriptor()
    sd.SearchCaseSensitive = False
    sd.SearchRegularExpression = False

    'Los campos del formulario
    fields = form.Columns.getElementNames()
     For i = LBound(fields) To UBound(fields)
        sd.setSearchString("%" + fields(i) + "%")
        found = doc.findAll(sd)
        If found.Count > 0 Then
         For f = 0 To found.Count - 1
            t = found.getByIndex(f)
            t.setString(form.getString(i+1))
         Next f
        End If
     Next i

End Sub


Function replace_name(path, doc_name) As String
   tmp = Split(path, "/")
   tmp(UBound(tmp)) = doc_name
   replace_name = Join(tmp, "/")
End Function


Function open_doc(path) As Object
Dim opt(0) As New "com.sun.star.beans.PropertyValue"
Dim doc As Object

     opt(0).Name = "AsTemplate"
     opt(0).Value = True

     open_doc = StarDesktop.loadComponentFromURL(path, "_blank", 0, opt())   
End Function

Saludos
Adjuntos
PruebaForo.7z
(18.23 KiB) 101 veces
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5933
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Sab Abr 08, 2017 10:02 am

Hola,

Muchas gracias. Es justo lo que intentaba hacer, no creo que hubiese logrado hacerlo. La única duda que me queda es que al añadir un campo de fecha al formulario, al pasarlo a writer se cambia el formato de la misma, pone primero el año, cuando yo tengo el formato DD/MM/YYYY. Adjunto archivo.

Un saludo.
Adjuntos
PruebaForo-Fecha.7z
(38.34 KiB) 88 veces
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor mauricio » Sab Abr 08, 2017 5:48 pm

Tu archivo es el mismo que yo subi, no tiene ningún cambio...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5933
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Sab Abr 08, 2017 6:02 pm

Hola,

Perdona, me he equivocado de archivo. Adjunto el que incluye la fecha.

Un saludo.
Adjuntos
PruebaForo - fecha.7z
(20.12 KiB) 93 veces
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor mauricio » Lun Abr 10, 2017 4:18 am

Solo reemplaza la función replace_field
Código: Seleccionar todo   Expandir vistaContraer vista
Sub replace_fields(doc, form)
    sd = doc.createSearchDescriptor()
    sd.SearchCaseSensitive = False
    sd.SearchRegularExpression = False

    'Los campos del formulario
    fields = form.Columns.getElementNames()
     For i = LBound(fields) To UBound(fields)
        sd.setSearchString("%" + fields(i) + "%")
        found = doc.findAll(sd)
        If found.Count > 0 Then
           field = form.Columns.getByName(fields(i))
           value = form.getString(i+1)
           If field.TypeName = "DATE" Then
              value = Format(form.getLong(i+1), "dd/mm/yyyy")
           End If
         For f = 0 To found.Count - 1
            t = found.getByIndex(f)
            t.setString(value)
         Next f
        End If
     Next i

End Sub

Si necesitas cambiar otro campo de otro tipo, por otro formato, ahí esta la receta.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5933
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Lun Abr 10, 2017 11:52 am

Hola,

Gracias y perdona, he aplicado el código y al abrir writer sale una fecha diferente. En el formulario pongo
01/04/2016 y en writer sale 30/03/2016.
Un saludo.
Adjuntos
PruebaForo - copia2.7z
(25.07 KiB) 112 veces
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor mauricio » Lun Abr 10, 2017 8:30 pm

Y... ¿como has intentado resolverlo?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5933
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Lun Abr 10, 2017 8:41 pm

Hola,

he intentado cambiar el formato en esta línea value = Format(form.getLong(i+1), "dd/mm/yyyy")

Saludos.
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Lun Abr 10, 2017 8:48 pm

En los códigos donde pone lo que va haciendo cada instrucción voy aprendiendo y luego lo voy aplicando, pero si no es así me cuesta entenderlo
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)

Re: Buscar y reemplazar texto de base a writer

Notapor mauricio » Lun Abr 10, 2017 8:58 pm

pero... el formato es correcto... ¿no?... el problema es el desfase de los días... ¿no?
Código: Seleccionar todo   Expandir vistaContraer vista
value = Format(form.getLong(i+1)+2, "DD/MM/YYYY")

El problema es donde empiezan a contar los días, en Calc puedes establecer que fecha es la fecha 0, cambiando esto al 01/01/1900, entonces la fecha sale correcta, pero no toma el cambio en Base, por eso hay que agregarle 2 días, para evitar esto, se puede regresar la fecha con getDate, pero hay que construir la fecha con DateSerial, de esta manera no importa con que día empiece a contar los días... pero, eso te queda de tarea.

Saludos

P.D. Toma en cuenta que si quieres generar otros documentos del mismo registro, debe de actualizar la propiedad TAG del boton de comando, estableciendo el nombre del archivo que quieres mostrar.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5933
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Buscar y reemplazar texto de base a writer

Notapor jopicach » Mar Abr 11, 2017 12:17 pm

Hola,

Efectivamente, no era el formato, era un desfase de dos días lo que se producía, yo lo cambiaba aquí (i+1) y no era. Lo de getDate y DateSerial voy a investigarlo, creo que he encontrado algo en esta página.

https://wiki.openoffice.org/wiki/ES/Man ... oPasoAPaso

Muchas gracias por la ayuda, Longi y Mauricio.
LibreOffice versión: 5.4.7.2 (x64) - Windows 10 Pro 64 bits
jopicach
 
Mensajes: 129
Registrado: Dom Nov 20, 2016 3:24 pm
Ubicación: Almería (España)


Volver a Base

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados