Results 1 to 2 of 2

Thread: Multiselect über alle Spalten in dynamischem cDbCJGrid

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Jul 2009
    Location
    Wiesbaden, Germany
    Posts
    245

    Default Multiselect über alle Spalten in dynamischem cDbCJGrid

    Zur cDbCJGridSelectColumn von Allan Kim Eriksen (Post) habe ich hier eine cDbCJGrid erweitert, damit diese die Mausklicks in eine beliebige Spalte der Zeile an die SelectColumn weiter gibt.
    Mir hatte es nicht so sehr gefallen, dass man immer direkt auf die Checkboxen klicken musste, anstatt einfach in die Zeile zu klicken oder über die Leertaste das Häkchen zu setzen.

    cMultiSelectdbCJGrid.pkg
    Code:
    Use cDbCJGrid.pkg
    
    Class cMultiSelectdbCJGrid is a cDbCJGrid
        
       Procedure Construct_Object
          Forward Send Construct_Object
          //piGridSelectColumn wird auf die Spalte (von 0 beginnend) gesetzt, 
          //die eine cDbCJGridSelectColumn ist. Über OnComMouseUp wird dafr gesorgt,
          //das jeder Mausklick in eine Spalte diese Multiselectspalte ausl”st
          { Visibility = Private}
          Property Integer piGridSelectColum (-1)
       End_Procedure
       
       { MethodType=Property InitialValue=-1 }
       { Category=Behavior PropertyType=Integer }
       Procedure Set piGridSelectColumnNumber Integer iColumn
          //piGridSelectColumn wird auf die Spalte (von 0 beginnend) gesetzt, 
          //die eine cDbCJGridSelectColumn ist. Über OnComMouseUp wird dafür gesorgt,
          //das jeder Mausklick in eine Spalte diese Multiselectspalte auslöst
          Set piGridSelectColum to iColumn
       End_Procedure
    
       Procedure End_Construct_Object
    		//Verschieben oder Entfernen von Spalten darf nicht möglich sein,
    		//da die Property über die cDbCJGridSelectColumn nicht mit aktualisiert würde
          Integer iGridSelectColumnNumber
          Get piGridSelectColum to iGridSelectColumnNumber
          If (iGridSelectColumnNumber=(-1)) Begin
             Set pbAllowColumnRemove  to False
    			Set pbAllowColumnReorder to False
          End
          Forward Send End_Construct_Object
       End_Procedure
       
       {Visibility = Private}
       Procedure OnComMouseUp Short llButton Short llShift Integer llx Integer lly
          Integer iSelectedRow iGridSelectColumnNumber
          Handle hoDataSource
          
          Forward Send OnComMouseUp llButton llShift llx lly
          
          Get piGridSelectColum to iGridSelectColumnNumber
          If (iGridSelectColumnNumber<>(-1)) Begin
             Get phoDataSource to hoDataSource
             Get SelectedRow of hoDataSource to iSelectedRow
             
             Send NotifyItemChecked iSelectedRow iGridSelectColumnNumber
             Send ComRedraw
          End
       End_Procedure
       
       {Visibility = Private}
       Procedure Key Integer iKeyValue Returns Integer
          Boolean bReadonly bEditable
          Integer iGridSelectColumnNumber iRet iSelectedRow
          Handle hoDataSource
          Get pbReadOnly to bReadonly
          Get pbAllowEdit to bEditable
          Get piGridSelectColum to iGridSelectColumnNumber
          If (iGridSelectColumnNumber<>(-1) and (bReadonly or not(bEditable))) Begin
             If (iKeyValue=KEY_SPACE) Begin
                Get phoDataSource to hoDataSource
                Get SelectedRow of hoDataSource to iSelectedRow
                
                Send NotifyItemChecked iSelectedRow iGridSelectColumnNumber
                Send ComRedraw
             End
          End
          Else Begin
             Forward Send Key iKeyValue
          End
       End_Procedure
    
    End_Class
    Ich hoffe mal, das sie jemand gebrauchen kann

  2. #2
    Join Date
    Feb 2009
    Location
    Maasland, The Netherlands
    Posts
    2,605

    Default Re: Multiselect über alle Spalten in dynamischem cDbCJGrid

    Vielleicht ist es ein bisschen spät, aber ich finde es eine große Verbesserung gegenüber dem ursprünglichen Multi Select cDbCJGrid. Danke dafür.
    Best regards,

    Peter van Mil
    Appvantage b.v.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •