Autor Tema: Es posible activar rueda del Datareport en vb6.0  (Leído 8653 veces)

0 Usuarios y 1 Visitante están viendo este tema.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Es posible activar rueda del Datareport en vb6.0
« en: Mayo 27, 2010, 12:04:22 am »
Alguien tiene un codigo para poder mover los scroll de un Datareport o al menos es posible hacerlo o lo han visto en algun ejecutable?
Solo he encontrado ejemplo para activar los scroll de datagrid's y demas controles mas no de Datareport's, espero alguien pueda responder.


ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #1 en: Mayo 27, 2010, 10:50:24 am »
Los reportes por estetica se muestran MAXIMIZADOS...! Creeme que se ve muy feo estar moviendo scroll para ver un Reporte...!
Miguel Núñez.

Jose

  • Bit
  • Mensajes: 5
  • Reputación: +0/-0
    • Ver Perfil
Reportes en Cristal Report
« Respuesta #2 en: Mayo 27, 2010, 01:23:58 pm »
Quiero ver que puedo hacer para que me habra los reportes en Cristal Report pero en Windows Vista y Windows 7 cuando trabaje los reportes se hicieron en Windows XP pero ahora no me deja, hay alguna solucion

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #3 en: Mayo 27, 2010, 07:35:50 pm »
por el tema de la rueda proba con este codigo

En un Modulo Bas
Código: (vb) [Seleccionar]
Option Explicit

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetProp Lib "user32.dll" Alias "GetPropA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function SetProp Lib "user32.dll" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long

Public Const GWL_WNDPROC = (-4)
Private Const WM_MOUSEWHEEL As Long = &H20A
Private Const WM_KEYDOWN As Long = &H100
Private Const WM_KEYUP As Long = &H101



Public Sub SubClassReport(hwnd As Long)
    Dim PrevProc As Long
    PrevProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
    SetProp hwnd, "PrevProc", PrevProc
End Sub

Public Sub UnSubClassReport(hwnd As Long)
    SetWindowLong hwnd, GWL_WNDPROC, GetProp(hwnd, "PrevProc")
End Sub

Private Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
   
    Dim Handle As Long
    Dim hDisplayFrame As Long
   
    WindowProc = CallWindowProc(GetProp(hwnd, "PrevProc"), hwnd, uMsg, wParam, lParam)

    If uMsg = WM_MOUSEWHEEL Then
   
       
        Handle = FindWindowEx(hwnd, ByVal 0&, "MSDataReportRuntimeWndClass6.0", vbNullString)
        hDisplayFrame = FindWindowEx(Handle, ByVal 0&, "REPT_DISPLAYFRAME", vbNullString)
        If hDisplayFrame = 0 Then Exit Function
           
        If wParam < 0 Then
            Call SendMessage(hDisplayFrame, WM_KEYDOWN, ByVal vbKeyDown, ByVal CLng(0))
            Call SendMessage(hDisplayFrame, WM_KEYUP, ByVal vbKeyDown, ByVal CLng(0))
        Else
            Call SendMessage(hDisplayFrame, WM_KEYDOWN, ByVal vbKeyUp, ByVal CLng(0))
            Call SendMessage(hDisplayFrame, WM_KEYUP, ByVal vbKeyUp, ByVal CLng(0))
        End If
       
    End If
   
End Function

y dentro de cada data report

Código: (vb) [Seleccionar]
Private Sub DataReport_Initialize()
     SubClassReport Me.hwnd
End Sub

Private Sub DataReport_Terminate()
     UnSubClassReport Me.hwnd
End Sub

Saludos.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #4 en: Mayo 28, 2010, 04:02:23 am »
Leandro te pasaste con el codigo!!! si fuera mujer te daría un beso, pero no, así que solo un apretón de manos jeje.
Probé el código y funciona perfectamente, y si bien es cierto lo que dice Miguel sobre el scroll en reportes, también es cierto que tanto estar en navegadores y acostumbrarse a usar la ruedita para "scrollear" hace que automáticamente usemos la ruedita en el reporte, incluso he visto a clientes mios que ni bien cargan el reporte maxim¡zado (no es lo mismo que ver todo el reporte ya que la hoja no cabe) usan la ruedita instintivamente. Por tanto, yo si me permitiré usar este excelente código en el reporte.

Saludos
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #5 en: Mayo 28, 2010, 04:06:51 am »
Solo para que quede claro, aqui muestro el reporte maximizado y por tanto no se ve toda la hoja (bueno el ejemplo es un reporte que no necesita verse la hoja completa porque no se llena, pero se aplica igual si la hoja estuviera llena)

Me encuentras en YAcosta.com

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #6 en: Mayo 28, 2010, 11:07:25 am »
Jajaja... Jose dominguez se fue a tomar con sus amigos??? Que descaro...  :o

Yo quiero trabajar en esa empresa...!  ;D
Miguel Núñez.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #7 en: Mayo 28, 2010, 01:46:27 pm »
jeje, bueno es un reporte veraz, pero la verdad es que Jose Dominguez es el dueño de la empresa.
Me encuentras en YAcosta.com

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #8 en: Mayo 28, 2010, 03:25:18 pm »
Yvan Metete con crystal reports... Es muchisimo y super mejor que el datareport...! Creeme...!
Miguel Núñez.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #9 en: Mayo 28, 2010, 10:02:11 pm »
ssccaann43, claro que los reportes se deben mostrar maximizados la imagen que puse fue para no hacer lo que afortunadamente hizo YvanB que dejo todo mas claro.

Claro que crystal report es mejor que Datareport pero con este ultimo se puede hacer lo mismo, es cuestion de utilizar el crystal y acostumbrarse si alguien desea utilizarlo, Ah! no olvidar que es CR es de pago!.

LeandroA, gracias por el codigo funciona muy bien, lo unico que no me gusto es que es muy lento o corre muy poco por cada rotacion de la ruedita, no se si esto se pueda solucionar, por otro lado creo que me voy con Crystal report

Que version de CR es la que le viene mejor al vb6.0 o la que mas se utiliza actulemte por que probe hace tiempo la 8.x y no me gusto por que solo podria utilizar el CRviewer y NO los cr normales generados por codigo, ademas solo era compatible con versiones antiguas de access y con sqlserver nunca pude conectarme, en fin es otro tema en fin saludos y gracias

« última modificación: Mayo 28, 2010, 10:04:49 pm por lucius »

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #10 en: Mayo 29, 2010, 01:46:41 am »
Si estoy de acuerdo que cristal report es de lejos mejor, pero es como dice lucius, en mi caso solo es un tema  de que mis clientes no quieren pagar un duro por la licencia del cristal.
El cristal lo uso pa otros clientes que no tienen problemas con la licencia porque tienen licencia Wilson jeje.

-------------------------------------------------------------------------------------------------------
Licencia Wilson: Avenida donde se consigue programas a 3 soles (1 dolar) y con su respectivo crack.
Pero no olviden: No compren piratería.... Adquiérala.
-------------------------------------------------------------------------------------------------------
Me encuentras en YAcosta.com

wolf_kof

  • Visitante
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #11 en: Mayo 30, 2010, 11:54:35 pm »
 ::) Todo esta muy interesante, pero queria ver si nuestro amigo Leandro nos puede solucionar un par de problemitas mas!!!!!!!!!

Leandro abusando de tu sabiduria con los apis te cuento que cuando ejecutio un datareport con tu codigo SKINN no colorea la barra de los botones no se si se podra hacer esto?

Ademas queria ver si se puede de alguna forma agregar una regla como en word o en CR!!!

ya que a muchos les gusta el CR a mi en lo personal me gusta el DR.

GRAX  ;)

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Es posible activar rueda del Datareport en vb6.0
« Respuesta #12 en: Mayo 31, 2010, 10:07:13 am »

Que version de CR es la que le viene mejor al vb6.0 o la que mas se utiliza actulemte por que probe hace tiempo la 8.x y no me gusto por que solo podria utilizar el CRviewer y NO los cr normales generados por codigo, ademas solo era compatible con versiones antiguas de access y con sqlserver nunca pude conectarme, en fin es otro tema en fin saludos y gracias



Creo que tienes un problema de mala información. Todas las versiones de Crystal puedes usarla con VB. Desde sus primeras versiones se logró conectar con VB incluso cuando estaba la versión 4.0 de VB.

Ahora bien, para conectar un Reporte de Crystal Reports a CUALQUIER BD, lo mejor es usar un ODBC.

Yo uso la version 8.5, y desde que conozco VB he trabajado con distintas base de datos, conectandolas efectivamente todas a tan excelente reporteador. Por ahora no dispongo de mucho tiempo, pero traere unos manuales y unos ejemplos para que puedan ayudarse un poco y meterse en el tema...!

Saludos
Miguel Núñez.