Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

No me aclaro con el data report

Estas en el tema de No me aclaro con el data report en el foro de Visual Basic clásico en Foros del Web. He leído un montón de turoriales para DataReport y son demasiado complicados para mis conocimientos. La mayoría de tutoriales están orientados a usar base de ...
  #1 (permalink)  
Antiguo 14/09/2011, 05:25
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
No me aclaro con el data report

He leído un montón de turoriales para DataReport y son demasiado complicados para mis conocimientos. La mayoría de tutoriales están orientados a usar base de datos.

Lo único que necesito es que al hacer click en un button command del form genere un data report con lo que haya dentro de un text1.

A ver si me podéis orientar un poco.
  #2 (permalink)  
Antiguo 14/09/2011, 16:01
Avatar de byron_chang  
Fecha de Ingreso: septiembre-2011
Ubicación: Guatemala
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No me aclaro con el data report

por ke no intentas con variables globales o publicas ke se carguen en el form y ke puedas llamar desde el data report.

Pega tu codigo para ver ke tienes y asi poderte orientar mejor.
  #3 (permalink)  
Antiguo 15/09/2011, 11:23
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: No me aclaro con el data report

Gracias, cuando arregle un problema que he tenido con el vb6 sigo trabajando en esto. Pondré el código para explicarme mejor.
  #4 (permalink)  
Antiguo 20/09/2011, 02:37
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: No me aclaro con el data report

Bueno, ya están todos los problemas que tenía solucionados y sigo peleándome con el datareport.

Cuantos más manuales y posts leo más liado estoy. Yo quiero hacer algo muy sencillo (creo) sin bases de datos ni nada. Sólo quiero presentar en un informe de data report lo que hay dentro del cuadro rojo:

  #5 (permalink)  
Antiguo 20/09/2011, 04:07
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: No me aclaro con el data report

O quizás sea más cómodo crear un documento word... La verdad q es lo único q me falta para terminar mi primer programa :)

'Código word
Dim WordApp As Word.Application
Set WordApp = New Word.Application
WordApp.Documents.Add
'WordApp.Documents(1).Content = Cantidad_Public
WordApp.Documents.Item(1).Content = "PRESUPUESTO" & vbCrLf & vbCrLf & "Descripción" & vbCrLf & Descripcion_Text & vbCrLf & "Numero de Copias: " & CopiasText & vbCrLf & "Cantidad de papel: " & PapelText & vbCrLf & "Tiempo: " & (TiempoText / 60) & "horas"

WordApp.Visible = True


aunque no sé como darle formato (negritas, fuente de mayor tamaño, etc.) a esto.

Última edición por oskarrr; 20/09/2011 a las 04:33
  #6 (permalink)  
Antiguo 20/09/2011, 08:51
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 15 años, 1 mes
Puntos: 47
Respuesta: No me aclaro con el data report

Hola!!
No te compliques!!

Crea un Form, dale el formato que quieres y preséntalo, solo tienes que cargar los datos... sigue este ejemplo:

http://www.vb6.us/tutorials/printing-form-visual-basic


Código vb:
Ver original
  1. Option Explicit
  2.  
  3. Private Sub cmdGENERAR_INFORME()
  4.     frmINFORME.Top = (Screen.Height - Me.Height) / 2
  5.     frmINFORME.Left = (Screen.Width - Me.Width) / 2
  6.  
  7.     'display date & time
  8.    lblDate.Caption = Format$(Date, "dd/MM/yyyy")
  9.     lblTime.Caption = Format$(Time, "h:nn AM/PM")
  10.  
  11. 'LOS CAMPOS
  12.  
  13.    lblCOPIAS.CAPTION=frmPRESUPUESTO.txtCOPIAS.TEXT
  14.    lblDESCRIPCION.CAPTION=frmPRESUPUESTO.txtDESCRIPCION.TEXT
  15.    lblCANTIDADPAPEL.CAPTION=frmPRESUPUESTO.txtPAPELTEXT.TEXT
  16.    lblTIEMPO.CAPTION=frmPRESUPUESTO.txtTIEMPO.TEXT
  17.    '...
  18.   '...
  19.   '...
  20. End Sub
  21.  
  22. Private Sub cmdPrint_Click()
  23.     cmdPrint.Visible = False
  24.     cmdExit.Visible = False
  25.    
  26.     PrintForm
  27.    
  28.     cmdPrint.Visible = True
  29.     cmdExit.Visible = True
  30. End Sub
  31.  
  32. Private Sub cmdExit_Click()
  33.     End
  34. End Sub


Nos cuentas!!
  #7 (permalink)  
Antiguo 23/09/2011, 06:27
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: No me aclaro con el data report

Así lo he hecho y ha quedado genial. Gracias por todo Lokoman!

  #8 (permalink)  
Antiguo 23/09/2011, 06:56
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 15 años, 1 mes
Puntos: 47
Respuesta: No me aclaro con el data report

  #9 (permalink)  
Antiguo 27/09/2011, 13:44
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: No me aclaro con el data report

Hola. Me he encontrado con un problema. En otros ordenadores con resoluciones más pequeñas no se ve el form entero, por lo que he optado por hacer un form con scroll. El problema es q sólo se imprime lo que se ve en ese momento en la pantalla, perdiéndose los datos que no se ven.

He buscado y rebuscado y sólo he encontrado la opción de imprimir sobre un picturebox, pero esta opción no me vale porque necesito que los datos del form se puedan retocar antes de imprimir, y con esta opción, aunque sale a pantalla completa correctamente, no me coge los datos nuevos.

Pregunta: ¿no hay opción de imprimir un form más grande que lo que se ve en pantalla con printform?
  #10 (permalink)  
Antiguo 30/09/2011, 14:58
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 15 años, 1 mes
Puntos: 47
Respuesta: No me aclaro con el data report

Bueno, continuando con el codigo que te mostré, aqui te traigo una solucion no muy profesional, pero debe servir para la necesidad:

• CREA un FORM por cada resolución!

Como ya tienes uno funcionando, solo debes CLONARLO para no estar haciendo todo desde cero; asi es como lo haces:

• Selecciona el FORM ORIGINAL (el que ya tienes funcionando) y CAMBIALE el nombre en las PROPIEDADES, ej.: frmImprime800x600
• En el explorador del proyecto, le das clic derecho y despues GUARDAR FORM COMO...
• Le pones un nombre, digamos que "frmImprime800x600" para que vaya acorde con el nombre que le pusimos en las PROPIEDADES del FORM
• Diseñas el FORM "frmImprime800x600" para que se ajuste a esa resolución, o sea, pones los LABELS, y CONTROLES mas juntos, mueves de lugar una que otra cosa, etc...
• Haces lo mismo para cada FORM que vas a CLONAR, es decir, GUARDAS el FORM, CAMBIAS el nombre en PROPIEDADES, GUARDAS el FORM COMO..., DISEÑAS para otra resolución y empiezas otra vez

Ahora, solo falta volver a AÑADIRLOS:
• En el explorador del proyecto, le das clic derecho y agregar FORM
• Te va a salir un cuadro con DOS PESTAÑAS, selecciona la pestaña FORM EXISTENTE y seleccionas los FORMS que ya guardaste y no estan incluidos en tu proyecto

Y ya los tienes todos!!

Este es el code en el FORM que va a llamar a los otros dependiendo de la resolución:

Código vb:
Ver original
  1. Public bImpreso As Boolean
  2.  
  3. Private Sub cmdImprimeForm_Click()
  4.     Dim X As Double
  5.     Dim Y As Double
  6.    
  7. 'CALCULO DE LA RESOLUCION ACTUAL
  8.    X = Screen.Width / Screen.TwipsPerPixelX
  9.     Y = Screen.Height / Screen.TwipsPerPixelY
  10.    
  11.     MsgBox "Resolucion actual :" & X & " x " & Y 'PRESENTA LA RESOLUCION ACTUAL EN UN MENSAJE
  12.    
  13. 'PRESENTA UN FORM DISEÑADO PARA LA RESOLUCION
  14.    If X = 800 And Y = 600 Then frmImprime800x600.Show vbModal
  15.     If X = 1024 And Y = 768 Then frmImprime1024x768.Show vbModal
  16.     If X = 1152 And Y = 864 Then frmImprime1152x864.Show vbModal
  17.     If X = 1280 And Y = 600 Then frmImprime1280x600.Show vbModal
  18.     If X = 1280 And Y = 720 Then frmImprime1280x720.Show vbModal
  19.     If X = 1280 And Y = 768 Then frmImprime1280x768.Show vbModal
  20.     If X = 1280 And Y = 960 Then frmImprime1280x960.Show vbModal
  21.     If X = 1280 And Y = 1024 Then frmImprime1280x1024.Show vbModal
  22.    
  23.     If bImpreso = False Then
  24.         MsgBox "Resolución de la pantalla no soportada!!" _
  25.             & "Para ver este reporte debe tener una de estas resoluciones:" _
  26.             & vbNewLine & "[800 x  600]" _
  27.             & vbNewLine & "[1024 x  768]" _
  28.             & vbNewLine & "[1152 x  864]" _
  29.             & vbNewLine & "[1280 x  600] " _
  30.             & vbNewLine & "[1280 x  720]" _
  31.             & vbNewLine & "[1280 x  768]" _
  32.             & vbNewLine & "[1280 x  960]" _
  33.             & vbNewLine & "[1280 x 1024] ", vbInformation
  34.     Else
  35.         bImpreso = False
  36.     End If
  37. End Sub

En el boton de IMPRIMIR de los FORMS llamados, pones el codigo:

Código vb:
Ver original
  1. Sub cmdImprime_Click()
  2.     Printer.Zoom = 100 'SI DESEAS PUEDES AJUSTAR EL ZOOM
  3.    
  4.     PrintForm
  5.    
  6.     bImpreso = True
  7. End Sub

Espero que se haya entendido

Última edición por lokoman; 30/09/2011 a las 15:03
  #11 (permalink)  
Antiguo 01/10/2011, 03:23
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: No me aclaro con el data report

Pues habíamos pensado lo mismo. Es la solución temporal que le dí mientras encontraba una definitiva. Aunque yo lo he hecho para 2 resoluciones. Y viendo q no hay otra solución, se quedará así.

Código:
'Form1
Private Sub Informe_Click()

'LLAMARÁ AL FORM2 Ó FORM3 DEPENDIENDO DE LA RESOLUCIÓN DE PANTALLA

If (Screen.Height / Screen.TwipsPerPixelY) < 768 Then 'Ajusta el tamaño del formulario a resolución
        Form_a_Mostrar = "Form3" 'variable que se utilizará en el ImprimirForm
        MsgBox "La resolución de la pantalla es insuficiente para imprimir correctamente el formulario.", vbExclamation, "Resolución de Pantalla Insuficiente (Resolución mínima: 1024x768)"
        Form3.Show
Else
    If (Screen.Height / Screen.TwipsPerPixelY) < 1024 Then
        Form_a_Mostrar = "Form3"
        Form3.Show
    Else
        Form_a_Mostrar = "Form2"
        Form2.Show
    End If
End If
Código:
'ImprimirForm

Private Sub cmdPrint_Click()

If Form1.Form_a_Mostrar = "Form2" Then
    Form2.cmdPrint.Visible = False
    Form2.cmdExit.Visible = False
    
    
        If List1.ListIndex <> -1 Then
       Call Establecer(List1.Text)
       'MsgBox "Se usará la impresora: " & _
       '        Printer.DeviceName & " para imprimir el Presupuesto", vbInformation
               
    End If

    Form2.PrintForm
        
    Form2.cmdPrint.Visible = True
    Form2.cmdExit.Visible = True
        
    Unload Me
End If

If Form1.Form_a_Mostrar = "Form3" Then
    Form3.cmdPrint.Visible = False
    Form3.cmdExit.Visible = False
    
    
        If List1.ListIndex <> -1 Then
       Call Establecer(List1.Text)
       'MsgBox "Se usará la impresora: " & _
       '        Printer.DeviceName & " para imprimir el Presupuesto", vbInformation
               
    End If

    Form3.PrintForm
        
    Form3.cmdPrint.Visible = True
    Form3.cmdExit.Visible = True
        
    Unload Me
End If


End Sub
  #12 (permalink)  
Antiguo 01/10/2011, 03:26
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: No me aclaro con el data report

(Mensaje Duplicado)

Etiquetas: data, report
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:39.