Imaginemos que tengo una lista de nombres de señoras y que tengo algunos nombres como "Remedios de la Concepcion" que me ocupan dos lineas del informe y al limitarlo a 10 caracteres solo me ocuparía una linea de informe.
La macro que me generó amablemente Longi es esta:
Código: Seleccionar todo
Sub Informes (Event As Object)
Wait 200
oForm=Event.Source.Model.Parent
Conn = ThisDatabaseDocument.CurrentController.ActiveConnection ' Conectamos para recoger los datos de las tablas
oStat=Conn.createStatement() ' Creación de la conexión
Taller= oForm.getByName("Taller").boundfield.getString
oConsulta = ThisDatabaseDocument.DataSource.QueryDefinitions.getByName ("General") ' La consulta en la que se basa el reporte
if Right (Taller,1)=1 or Right (Taller,1)=2 or Right (Taller,1)=3 Then
Como= "%" & left (Taller,len(Taller)-1)& "%" & "%" & Right(Taller,1) &"%"
Else
Como= "%"& Taller &"%"
End if
oConsulta.Command= "SELECT ""1º apellido"", ""2º apellido"", ""Nombre"", ""TELEFONO 1"", ""nº Socio"" FROM ""PRUEBAMERG2"" WHERE UPPER ( ""viajes"" ) LIKE UPPER('"& Como &"')"
ocontroller = Thisdatabasedocument.currentController
if not ocontroller.isconnected then ocontroller.connect ' Mantenemos la conexión
oreportdoc = Thisdatabasedocument.reportdocuments.getbyname("General").open ' Abrimos el informe
oTexttable = oreportdoc.Texttables(0) ' La tabla del informe
Filas= oTexttable.rows.count()-1 ' Cuantas Filas tiene la tabla
'oTexttable.Columns.insertByIndex(Columnas+1,2) ' Inserta otra columna
oreportdoc.DrawPage(0). Control(0).Text= Taller
oreportdoc.DrawPage(1).Control(0).Text= "Mes " & Month(Now())&"/" & Year (Now()) ' Aplicamos el tamaño
oreportdoc.DrawPage(2). Control(2).Text= Filas
oreportdoc.DrawPage(3). Control(2).Text= Format(Date, "mmmm")
oreportdoc.DrawPage(4). Control(2).Text= Format(Date+30, "mmmm")
oreportdoc.DrawPage(5). Control(2).Text= Format(Date+60, "mmmm")
End sub
Cada vez que entro en estos temas me parecen mas apasionantes pero tambien muy complejos para mi, ya, viejo cerebro.
Gracias por vuestra dedicación.