Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: lucius 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.
(http://www.foro.vb-mundo.com/attachments/f27/2090d1274748624-activar-rueda-del-datareport-vb6-0-datareport_rueda.jpg)
-
Los reportes por estetica se muestran MAXIMIZADOS...! Creeme que se ve muy feo estar moviendo scroll para ver un Reporte...!
-
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
-
por el tema de la rueda proba con este codigo
En un Modulo Bas
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
Private Sub DataReport_Initialize()
SubClassReport Me.hwnd
End Sub
Private Sub DataReport_Terminate()
UnSubClassReport Me.hwnd
End Sub
Saludos.
-
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
-
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)
(http://img41.imageshack.us/img41/268/reporten.jpg)
-
Jajaja... Jose dominguez se fue a tomar con sus amigos??? Que descaro... :o
Yo quiero trabajar en esa empresa...! ;D
-
jeje, bueno es un reporte veraz, pero la verdad es que Jose Dominguez es el dueño de la empresa.
-
Yvan Metete con crystal reports... Es muchisimo y super mejor que el datareport...! Creeme...!
-
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
-
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.
-------------------------------------------------------------------------------------------------------
-
::) 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 ;)
-
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