Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

CrystalReportViewer & mouse wheel

Îåêßíçóå áðü ôï ìÝëïò γιωργος μπακογιαννης. Τελευταία δημοσίευση από το μέλος axaros στις 21-06-2005, 10:44. Υπάρχουν 11 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-05-2005, 17:11 2018

    CrystalReportViewer & mouse wheel

    Μήπως ξέρει κάποιος γιατί το CrystalReportViewer δεν κάνει scroll με το mouse wheel;

    while (!dead) learn();
  •  06-06-2005, 08:36 2473 σε απάντηση της 2018

    Re: CrystalReportViewer & mouse wheel

    Kαι στα ξένα forums όλοι το ίδιο ακριβώς ρωτάνε ...
    Είναι Known issue ..
    Τώρα τι θα κάνουν και πότε άγνωστο ...
    Πάνος Αβραμίδης
  •  06-06-2005, 09:47 2476 σε απάντηση της 2473

    Re: CrystalReportViewer & mouse wheel

    [*-)]
    while (!dead) learn();
  •  06-06-2005, 10:38 2479 σε απάντηση της 2476

    Re: CrystalReportViewer & mouse wheel

    Άσχετο μεν κι άλλο Know issue δε :
    Έχεις επισης προσέξει ότι τα strings στα panels του Viewer δεν είναι customizable αλλά ο χρήστης πρέπει να βλέπει αναγκαστικά τα standard αγγλικά : ''MainReport, CurrentPage No ''κτλ
    Πάνος Αβραμίδης
  •  06-06-2005, 11:08 2481 σε απάντηση της 2479

    Re: CrystalReportViewer & mouse wheel

    Εναλλακτικά: export σε PDF.
    while (!dead) learn();
  •  06-06-2005, 11:28 2482 σε απάντηση της 2481

    Re: CrystalReportViewer & mouse wheel

    George σε έχασα ..
    Στο preview παράθυρο ... Πριν κάνεις οποιοδήποτε είδους export ...

    Συζητάς να κάνεις export κατευθείαν ?
    Πάνος Αβραμίδης
  •  06-06-2005, 13:37 2489 σε απάντηση της 2482

    Re: CrystalReportViewer & mouse wheel

    Ναι και το έχω δοκιμάσει !


    while (!dead) learn();
  •  07-06-2005, 16:58 2550 σε απάντηση της 2482

    Re: CrystalReportViewer & mouse wheel

    Ο σχετικός κωδιχ

            Dim report As rptTest = New rptTest
            report.SetDataSource(C1DataSet1.GetExportDataSet())
            '
            Dim dfdo As New CrystalDecisions.Shared.DiskFileDestinationOptions
            dfdo.DiskFileName = "c:\test.pdf"
            '
            Dim eo As New CrystalDecisions.Shared.ExportOptions
            eo = report.ExportOptions
            eo.DestinationOptions = dfdo
            eo.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
            eo.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat
            '
            report.Export()


    while (!dead) learn();
  •  14-06-2005, 21:03 2801 σε απάντηση της 2550

    Re: CrystalReportViewer & mouse wheel

    Ναι Οκ ...
    Αλλά για το preview στον viewer μίλαγα ...
    Προφανώς εφόσον κάνεις export κατευθείαν by passάρεις το προβληματάκι ...
    Ευχαριστώ πάντως για την απάντηση ...


    Πάνος Αβραμίδης
  •  17-06-2005, 17:00 2901 σε απάντηση της 2801

    Re: CrystalReportViewer & mouse wheel

    Μια μικρή πατέντα για όσους βιάζονται :

    Βαλτε σε ένα class module το παρακάτω :


    Imports System.Windows.Forms

    Public Class SubClassing
    Inherits System.Windows.Forms.NativeWindow
    Public Event CallBackProc(ByRef m As Message)

    Private m_Subclassed As Boolean = False

    Public Sub New(ByVal handle As IntPtr)
    MyBase.AssignHandle(handle)
    End Sub

    Public Property SubClass() As Boolean
    Get
    Return m_Subclassed
    End Get
    Set(ByVal Value As Boolean)
    m_Subclassed = Value
    End Set
    End Property

    Protected Overrides Sub WndProc(ByRef m As Message)
    If m_Subclassed Then
    RaiseEvent CallBackProc(m)
    End If
    MyBase.WndProc(m)
    End Sub

    Protected Overrides Sub Finalize()
    MyBase.Finalize()
    End Sub
    End Class

     
    Προσθέτουμε μια Φορμα Form και ένα Viewer CrystalReportViewer1.

    Declarations στη Φορμα:


    Private Const GW_CHILD = 5
    Private Const WM_VSCROLL = &H115
    Private Const SB_PAGEDOWN = 3
    Private Const SB_PAGEUP = 2
    Private Const WS_VSCROLL = &H200000
    Private Const WM_MOUSEWHEEL = &H20A

    Private Declare Auto Function GetWindow Lib "user32.dll" (ByVal hWnd As System.IntPtr, ByVal wCmd As System.Int32) As System.IntPtr
    Private Declare Auto Function SendMessage Lib "User32" (ByVal hwnd As System.IntPtr, ByVal msg As Int32, ByVal wParams As Int64, ByVal lParams As Int32) As Int32

    Dim WithEvents SubClass As SubClassing
    Dim hnd As System.IntPtr

     
    Sub στη Φόρμα:


    Private Sub SubClass_CallBackProc(ByRef m As System.Windows.Forms.Message) Handles SubClass.CallBackProc

    Select Case m.Msg
    Case WM_MOUSEWHEEL
    SendMessage(hnd, WM_VSCROLL, IIf(m.WParam.ToInt64 < 0, SB_PAGEDOWN, SB_PAGEUP), Nothing)
    End Select

    End Sub

     
    Load Event της Φόρμας:


    SubClass = New SubClassing(CrystalReportViewer1.Handle)
    SubClass.SubClass = True

    hnd = GetWindow(GetWindow(GetWindow(CrystalReportViewer1.Handle, GW_CHILD), GW_CHILD), GW_CHILD)

     
    Βάζουμε και ένα Report και το κάνουμε assign στο Viewer.
    Δέν ειναι 100% σωστο γιατι αυτό που κάνει τώρα ειναι PageUp (SB_UP) και PageDown (SB_PAGEDOWN) ανάλογα με το MouseWheel.
    Κανονικά θα έπρεπε να χρησιμοποιησουμε τα SB_THUMBPOSITION και SB_THUMBTRACK.

    Όσο για τα captions στο ΤΑΒ του Viewer αλλάζουν και αυτά με ανάλογα μηνύματα στο SysTabControl του Viewer.





    Sex is like programing; One mistake, and you will have to support it for the rest of your life…
  •  18-06-2005, 10:02 2916 σε απάντηση της 2018

    Re: CrystalReportViewer & mouse wheel

    Ωραίος!
    Δουλεύει.

    Σε ευχαριστώ

    while (!dead) learn();
  •  21-06-2005, 10:44 2943 σε απάντηση της 2018

    Re: CrystalReportViewer & mouse wheel

    Άψογος ... Εύγε !!!


    Πάνος Αβραμίδης
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems