Agregando el reporte

Vamos a ir a la izquierda de nuestro IDE , botón  derecho sobre fuentes-nuevo-reporte y en la ventana que se abre a continuación ponemos Rpelis como nombre y le damos aceptar. Entre sus propiedades a ajustar está la orientación que será Landscape (horizontal) y su size que deberá ser A4

Insertamos en el mismo un ReportVbox y dentro de este dos Reportlabel. Las siguientes son sus propiedades.

En el ReportVbox ponemos a true solo el onepiece (para que aparezca en todas las páginas del reporte) y visible. El resto queda como está, incluído su nombre.

En los reportlabel ponemos a True el autoresize , el fixed y el visible y en su propiedad text  ponemos  Listado de películas en el primero y Título Director Actor Actriz Género Año en el segundo, tanteando el espaciado entre palabras para que quede justo.

Esto es todo lo que precisamos para generar la interfase gráfica, vamos ahora a ver todo el código:

Private hConn As Connection      ‘primero las variables generales
Private hRes1 As Result
Public Sub _new()
Dim ReportHBox1 As ReportHBox              ‘luego las variables internas
Dim ReportVBox1 As ReportVBox
Dim lbtitulo, lbdirector, lbactor, lbactriz, lbgenero, lbanio As ReportLabel
Dim valor As String
hConn = New Connection

valor = FMain.valor               ‘aquí asignamos el valor de la sentencia sql que se genera desde fmain
hconn = modcon.ConectarBase()

ReportVBox1 = New ReportVBox(Me)
ReportVBox1.Expand = True

ReportHBox1 = New ReportHBox(ReportVBox1)
ReportHBox1.Height = “8mm”
lbtitulo = New ReportLabel(ReportHBox1) As “lbtitulo”
lbtitulo.Width = “50mm”
lbtitulo.Alignment = Align.Center
lbdirector = New ReportLabel(ReportHBox1) As “lbdirector”
lbdirector.Expand = True
lbdirector.Alignment = Align.Center
lbactor = New ReportLabel(ReportHBox1) As “lbactor”
lbactor.Expand = True
lbactor.Alignment = Align.Center
lbactriz = New ReportLabel(ReportHBox1) As “lbactriz”
lbactriz.Expand = True
lbactriz.Alignment = Align.Center
lbgenero = New ReportLabel(ReportHBox1) As “lbgenero”
lbgenero.Expand = True
lbgenero.Alignment = Align.Center
lbanio = New ReportLabel(ReportHBox1) As “lbanio”
lbanio.Expand = True
lbanio.Alignment = Align.Center

hRes1 = hconn.Exec(valor)                 ‘aquí ejecutamos la sentencia
ReportHBox1.DataCount = hRes1.Count       ‘y contamos la cantidad de resultados

End

Public Sub lbtitulo_Data(Index As Integer)                        ‘A partir de aquí llenamos los datos
 
hRes1.MoveTo(Index)
Last.data = hRes1!titulo

End
Public Sub lbdirector_Data(Index As Integer)

hRes1.MoveTo(Index)
Last.data = hRes1!director

End
Public Sub lbactor_Data(Index As Integer)

hRes1.MoveTo(Index)
Last.data = hRes1!actoruno

End

Public Sub lbactriz_Data(Index As Integer)

hRes1.MoveTo(Index)
Last.data = hRes1!actrizuno

End

Public Sub lbgenero_Data(Index As Integer)

hRes1.MoveTo(Index)
Last.data = hRes1!genero

End
Public Sub lbanio_Data(Index As Integer)

hRes1.MoveTo(Index)
Last.data = hRes1!anio

End

A continuación el enlace al código fuente completo. Hasta la próxima.

Anuncios
Esta entrada fue publicada en programación y etiquetada , , , , . Guarda el enlace permanente.

14 respuestas a Agregando el reporte

  1. Kevin Millan dijo:

    Hola, disculpa estoy realizando un sistema en nuestra comunidad y gestiona reportes, los diversos reportes son mostrados, pero tengo un problema, con los reportes que son de un mismo tipo, pero con parámetros diferentes, es decir, cuando seleccione un tipo de filtro por ejemplo familia de la casa X, y luego de cerrar el reporte (habiendo mostrado la info sin problemas), y vuelvo a cambiar el filtro a ora casa X y mando denuevo el reporte, este muestra la información de la primera casa con la cual genere el primer reporte y no actualiza, como hago para que actualice?, si los parámetros se pasan nuevos cada vez que se hace el llamado?

    • dapeca2608 dijo:

      Kevin, en esta misma aplicación se generan reportes diferentes con los mismos items y el mismo componente gráfico. Si quieres mándame al correo la parte de código que genera el reporte y el código del reporte para verlo y darte una respuesta. Dime además que S.O usas y que versión de Gambas.
      Saludos

      • Kevin Millan dijo:

        Public Sub _new()

        Dim hConn As Connection
        Dim hRes As Result
        Dim hRes2 As Result
        Dim RHBox As ReportHBox
        Dim contador As Integer
        Dim lblNItem, lblCedula, lblNombre, lblApellido, lblCIJefe As ReportLabel
        lblreporte.Text = frmreportepopup2.parametro.Text
        lblreporte.Width = “20mm”
        lblreporte.Expand = False
        lblreporte.Alignment = Align.Left

        lblreporte2.Text = frmreportepopup2.parametro2.Text
        lblreporte2.Width = “0mm”
        lblreporte2.Expand = False
        lblreporte2.Alignment = Align.Left

        ReportLabel2.Text = “Miembros familiares que asisten a mision:”
        ReportLabel2.Width = “150mm”
        ReportLabel2.Expand = False
        ReportLabel2.Alignment = Align.Left

        hConn = Connections[“SISVILLA”]
        hConn.Password = “050586”
        hConn.Close()
        hConn.Open()
        hRes = hConn.Exec(“select *from carga_familiar where codigo_mi= ‘” & frmreportepopup2.parametro2.Text & “‘”)
        For Each hRes
        RHBox = New ReportHBox(RClone)
        RHBox.Height = “10mm”

        lblNItem = New ReportLabel(RHBox)
        contador = contador + 1
        lblNItem.Width = “7mm”
        lblNItem.Alignment = Align.Center
        lblNItem.Text = contador

        lblCedula = New ReportLabel(RHBox)
        lblCedula.Expand = True
        lblCedula.Alignment = Align.Center
        lblCedula.Text = hRes[“ci_f”]

        lblNombre = New ReportLabel(RHBox)
        lblNombre.Expand = True
        lblNombre.Alignment = Align.Center
        lblNombre.Text = hRes[“nombre_f”]

        lblApellido = New ReportLabel(RHBox)
        lblApellido.Expand = True
        lblApellido.Alignment = Align.Center
        lblApellido.Text = hRes[“apellido_f”]

        lblCIJefe = New ReportLabel(RHBox)
        lblCIJefe.Expand = True
        lblCIJefe.Alignment = Align.Center
        lblCIJefe.Text = hRes[“ci_j”]

        Next

        conexion.desconectarbd(hConn)
        End
        parametro2 es el parámetro que uso para filtrar el reporte, pero cuando actualizo ese parámetro en una ventana previa y vuelvo a llamar el reporte no se actualiza con el nuevo parámetro el llamado lo hago con el reporte.preview, probé usando los .clear y .refesh pero nada.
        Uso ubuntu 12.4 lts y estoy trabajando en la ultima versión de gambas 3.3.3
        Estoy aprendiendo gambas apenas xD

  2. dapeca2608 dijo:

    Kevin, dos apuntes. Veo que usas un bloque for each para buscar los resultados en lugar de usar la propiedad .count del result. Esto te da la cantidad de veces que el evento data debe producirse
    Public Sub lbgenero_Data(Index As Integer)

    hRes1.MoveTo(Index)
    Last.data = hRes1!genero

    No es necesario el bucle. Por otra parte, cuando llamo al reporte desde el formulario principal lo hago de la siguiente manera:
    Public Sub reportar() ”para evitar abrir un reporte vacìo y que nos de error

    If valor “” ‘si valor es diferente a nada abrimos el reporte,sino mostramos el mensaje
    $hReport = New Rpelis
    $hReport.Preview()
    Else
    Message(“No hay datos que coincidan”)
    Endif
    Creo que en la línea donde declaro $hreport=New Rpelis es la clave. Cada vez que lanzo un reporte le digo que sea New, es decir nuevo. No uso ni clear ni refresh. Tienes el código fuente de este y otros programas para descargar con reportes en el blog. Si quieres mandarme el código completo de la aplicación al correo para probarlo no hay problema, puedo demorar unos días en responderte pero lo haré.
    Te invito a unirte a la comunidad de gambas en español, allí hay mucha gente con ganas de ayudar y compartir conocimientos. En los enlaces del blog está el enlace al mismo.
    Saludos

    • Kevin Millan dijo:

      resuelto, evidentemente allí era el problema, simplemente cree una variable tipo reporte, y le y se la asignación reporte = new (nombre del reporte) en el llamado al reporte con su debido (nombre del reporte).preview y santo remedio, muchas gracias por su ayuda.

  3. Miqueas dijo:

    Oye tengo el mismo problema pero no te entiendo tu dices que creas una Variable tipo reporte? me fuedes facilitar el codigo?

    • dapeca2608 dijo:

      Miqueas, en realidad lo que se hace es instanciar el reporte con la palabra clave New cada vez que lo llames. Si te fijas al final del post está el código fuente de esta aplicación para descargar.

  4. Miqueas dijo:

    ok estoy creando un Sistema de Digitalizacion de Boletines y cada vez que llamo el reporte por numero de cedula que se llama BOLETIN me parece el mismo anterior que llame osea no me modifica.
    los llamo asi BOLETIN.preview()
    pero no entiendo esto que haces
    “If
    $hReport = New Rpelis”
    $hReport.Preview()
    disculpa estoy comenzando en gambas
    dime que tengo que hacer si quieres te envio mi PROYECTO!!

    • dapeca2608 dijo:

      Enviame el código al correo electrónico, dapeca2608@yahoo.com.ar. Te digo que la clave está en el NEW.
      Lee bien el contenido del blog, hay varias aplicaciones con reportes. Yo no tengo problema en ayudarte, pero lo fundamental
      es que comprendas como funciona el código. Espero tu correo. Saludos

      • miqueas dijo:

        hermano ya esta listo descargue tu proyecto y observe bien el codigo que usastes me guie y solucione,
        cree una Variable tipo reporte
        “public variable as report ” y luego
        Variable = New Reporte”
        Variable.Preview() y listo muchas gracias despues que tenga listo mi proyecto te lo envio para que me corrijas algunas cosas papa si puedes papa!!

  5. Miqueas dijo:

    Hermano me puedes enviar tu Base de datos en MYSQL porque no tengo SQLite3. te lo agradesco!!

  6. Melek dijo:

    Hola soy nuevo en gambas, y no logro entender bien lo del diseño y vista de los reportes, estoy limitado a .net y quiero salir de ese agujero, sería bueno que se implementaran videos para un mejor aprendizaje

    • dapeca2608 dijo:

      Pasate por el foro de Gambas(gambas-es.org), hay una sección de videotutoriales. Creo que no hay de gbreport todavía, a ver si me hago un tiempo para hacer uno.
      Saludos

  7. YORSY dijo:

    tambien tenia ese problem
    GENIAL!! pude resolver con su aporte
    muchas gracias …

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s