Buenas a todos de nuevo:
Me acerco de nuevo a este foro, para buscar solucion a duda surgida, trataré de ser breve y claro.
Buscando en este foro he cogido la BD DeustcheBank, ya que venia bien para la idea que tenía.
He copiado la macro que tiene, y me surge el problema que al lanzar el informe me pide el de esta base
"infMovimientosPorFecha", no editandome el informe que yo tengo "infTextos".
Si a mi informe le cambio el nombre por el de arriba referenciado, me abre este pero sin filtrar
Podría alguien ayudarme, acompaño base de datos y modelo de informe
[RESUELTO] Seleccionar para imprimir informe
[RESUELTO] Seleccionar para imprimir informe
- Adjuntos
-
- PRUEBAS BASE.zip
- (80.53 KiB) Descargado 151 veces
Última edición por mauricio el Lun Oct 09, 2017 4:52 pm, editado 2 veces en total.
Razón: Marcar icono de resuelto
Razón: Marcar icono de resuelto
OpenOffice 4.1.2 en Windows 2010
Re: Seleccionar para imprimir informe
Hola,
El problema es que en el tag del bóton (la propiedad Información adicional) pone el nombre del informe que mencionas, cuando debes poner el tuyo (infTextos). En la macro también haces referencia a una consulta que no existe. No se si es que en tu ejemplo no la has puesto o es un error.
Saludos
El problema es que en el tag del bóton (la propiedad Información adicional) pone el nombre del informe que mencionas, cuando debes poner el tuyo (infTextos). En la macro también haces referencia a una consulta que no existe. No se si es que en tu ejemplo no la has puesto o es un error.
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Re: Seleccionar para imprimir informe
Gracias por la pronta respuesta RMG,
He corregido la propiedad Información adicional, pero aún así no realiza el filtro, me abre directamente el informe
He corregido la propiedad Información adicional, pero aún así no realiza el filtro, me abre directamente el informe
OpenOffice 4.1.2 en Windows 2010
Re: Seleccionar para imprimir informe
Hola,
No te abre el informe filtrado, por que en la macro no se lo has indicado bien. Este ejemplo te puede servir.
Saludos
No te abre el informe filtrado, por que en la macro no se lo has indicado bien. Este ejemplo te puede servir.
Saludos
- Adjuntos
-
- prueba informe.zip
- (36.63 KiB) Descargado 206 veces
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Re: Seleccionar para imprimir informe
Gracias RMG, ya entendí el proceso.
Siguiendo con el mismo tema, como puedo hacer para que al visualizar o imprimir el informe
se vea el texto completo, ya que el espacio donde va el texto no sale todo completo.
Gracias de antemano
Siguiendo con el mismo tema, como puedo hacer para que al visualizar o imprimir el informe
se vea el texto completo, ya que el espacio donde va el texto no sale todo completo.
Gracias de antemano
OpenOffice 4.1.2 en Windows 2010
Re: Seleccionar para imprimir informe
Hola
Tal cual esta, solo lo puedes hacer agrandando el campo en el informe. Otras posibilidades es estudiar como lo ha hecho el usuario del foro longi. Mira el enlace, ademas mira en los mensajes de ejemplos de él, te pueden ayudar.
https://forum.openoffice.org/es/forum/v ... 70&t=11605
Saludos
Tal cual esta, solo lo puedes hacer agrandando el campo en el informe. Otras posibilidades es estudiar como lo ha hecho el usuario del foro longi. Mira el enlace, ademas mira en los mensajes de ejemplos de él, te pueden ayudar.
https://forum.openoffice.org/es/forum/v ... 70&t=11605
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Re: [RESUELTO]Seleccionar para imprimir informe
Buenas!
Perdona, pero he estado liado en otras cosas, y aunque ya se le ha puesto la etiqueta de 'RESUELTO', te cuelgo la solución que he hecho:
He modificado la macro, añadiendo algunos elementos:
-He puesto autoaltura a las celdas de la tabla principal
-He localizado las celdas de la columna C
-He justificado el texto de dichas columnas.
Y nada más.
Un saludo!
Perdona, pero he estado liado en otras cosas, y aunque ya se le ha puesto la etiqueta de 'RESUELTO', te cuelgo la solución que he hecho:
He modificado la macro, añadiendo algunos elementos:
-He puesto autoaltura a las celdas de la tabla principal
-He localizado las celdas de la columna C
-He justificado el texto de dichas columnas.
Editado: El código puesto aquí es para el caso de un informe hecho con ORB. En otro caso la cosa es algo más sencilla |
Código: Seleccionar todo
Option Explicit
Sub InformeTextos( Evento )
'On Error Resume Next
Dim sNombre As String
Dim oInforme As Object
Dim oConsulta As Object
Dim sPrueba As String
Dim sObjeto As String
Dim sSeleccion As String
Dim oForm As Object
Dim ocontroller, oTexttable, NTexttable, z, Fila, Filas, Columnas, orow, i, oCursor, oCell, oText, oCurs
'El nombre del informe
sNombre = Evento.Source.Model.Tag()
'El formulario activo
oForm = Evento.Source.Model.Parent
sPrueba = oForm.GetByName("Prueba").Text
sObjeto = oForm.GetByName("Objeto").Text
sSeleccion = oForm.GetByName("Seleccion").Text
If sPrueba = "" Or sObjeto = "" Or sSeleccion = "" Then
MsgBox "Faltan datos de selección"
Exit Sub
End If
'La consulta en la que se basa el reporte
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("conFiltro")
'Modificamos la consulta de modo que tome el registro actual
oConsulta.Command = "SELECT Tabla2.Selecion, Tabla3.Objeto, Tabla4.Prueba FROM Tabla2, Tabla3, Tabla4 WHERE Tabla2.Selecion = '"& sSeleccion &"'"&_
" AND Tabla3.Objeto = '"& sObjeto &"' AND Tabla4.Prueba = '"& sPrueba &"'"
'oInforme = ThisDatabaseDocument.ReportDocuments.getByName (sNombre)
ocontroller = Thisdatabasedocument.currentController
if not ocontroller.isconnected then ocontroller.connect ' Mantenemos la conexión
oInforme = Thisdatabasedocument.reportdocuments.getbyname(sNombre).open ' Abrimos el informe
NTexttable = oInforme.Texttables().GetCount() ' Número de tablas
For z=0 to NTexttable-1 ' Revisamos todas las tablas
oTexttable = oInforme.Texttables(z) ' La tabla que toca en cada paso del ciclo
If oTexttable.Name= "Detail" Then ' Nombre de la tabla que nos interesa
Fila = oTexttable.rows ' Objeto fila
Filas = Fila.Count-1 ' Número de filas que tiene la tabla
Columnas= oTexttable.Columns.Count-1 ' Número de columnas de la tabla
'------------------------------------------------------------------------
' 2º Ponemos autoaltura en cada una de las filas
for i = 1 to Filas ' Ciclo que recorre todas las filas
orow = Fila(i) ' La fila que le toca en ese momento
orow.IsAutoheight=True ' Autoaltura
next i ' Cierra el ciclo de las filas
'--------------------------------------------------------------------
' 3º Paseamos por las celdas de la tabla
oCursor = oTexttable.createCursorByCellName("A1") ' Cursor de tabla en la primera celda
Do ' Iniciamos un ciclo que recorre cada celda
oCursor.getRangeName ' Nombre de la celda
if left(oCursor.getRangeName,1)="C" Then ' Seleccionamos las celdas de la columna "C"
oCell = oTextTable.getCellByName(oCursor.getRangeName) ' Nos ponemos en la celda que cumple las condiciones
oText = oCell.Text ' Texto en el interior de la celda
oCurs = oText.createTextCursor() ' Generamos un cursor de texto
oCurs.gotoEND(True) ' Vamos hasta el final del texto, indicando que las acciones se aplican a todo el texto de la celda
oCurs.ParaAdjust = com.sun.star.style.ParagraphAdjust.BLOCK ' Justificamos el texto
End if ' Acabamos la condición de que sea de la columna "C"
Loop While oCursor.goRight(1,False) ' Reiniciamos el ciclo hasta la siguiente celda
End if ' Acabamos la condición de que sea la tabla "Detail"
next z ' Cierra el ciclo de las tablas
End Sub
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10