FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour xbrowse dblclick
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
xbrowse dblclick
Posted: Tue Jul 21, 2009 04:14 PM
To All

I have a FWH 9.04 version of an xbrowse that when you use on dblclick from xbrowse.. the mouse double click was trapped and ran _Recalc() .. in FWH 9.06 .. the xbrowse dblclick does not trapped .. and _Recalc() does not fire ..

Is there a fix or am I trapping the wrong codeblock .. what I want to happen is when the checkbox is 'double clicked' to trap that event and fire Recalc() .. which then updates the nTotal ..

What am I missing here ??

Rick Lipkin

Code (fw): Select all Collapse
DEFINE DIALOG oDlg1 RESOURCE "PCASIMPT"  ;
       COLOR "N/W"                       ;
       TITLE cTITLE                      ;

   REDEFINE xBROWSE oLbx1 ;
      ID 111 of oDlg1     ;
      RECORDSET oRsImport ;
      COLUMNS 'load_row',           ;
              'name',               ;
              'pcas_date',          ;
              'clinic',             ;
              'location',           ;
              'program',            ;
              'activity',           ;
              'starttime',          ;
              'endtime',            ;
              'hours',              ;
              'service_type',       ;
              'rectype',            ;
              'unitid',             ;
              'system'              ;
      COLSIZES 30,125,75,90,47,47,47,40,40,40,70,70,70,70 ;
      HEADERS 'Load_row',           ;
              'Name',               ;
              'Service Date',       ;
              'Clinic',             ;
              'Location',           ;
              'Program',            ;
              'Activity',           ;
              'Start',              ;
              'End  ',              ;
              'Hours',              ;
              'Service Type',       ;
              'Record Type',        ;
              'Unit Type',          ;
              'System'              ;
      ON dblclick( _Recalc(oRsImport, oLbx1) ) ;   // <-- double click trap for browse refresh
      AUTOSORT AUTOCOLS FOOTERS LINES CELL

   oLbx1:oCol("Hours"):nTOTAL    := nHOURS
   oLbx1:oCol("Hours"):lTOTAL    := .t.

   if .not. Empty( oCol := oLbx1:oCol( "Load_row" ) )
      oCol:SetCheck( { "CHECKON", "CHECKOFF" } )
      oCol:cSortOrder  := nil
      oCol:nEditType := EDIT_GET
      // oCol:lBmpStretch = .T.
   endif

   REDEFINE BUTTON oBTN1 ID 112 of oDLG1     ;
       ACTION ( _Loadum( oRsImport, oDlg1, oBtn3, cMODE ) ) ;
       DEFAULT

   REDEFINE BUTTON oBTN2 ID 118 of oDLG1     ;
       ACTION ( oDlg1:End() )

   ACTIVATE DIALOG oDlg1 ;
     ON INIT( oLbx1:SetFocus(), .F. )

//----------------------------
Static Func _Recalc( oRsImport,oLbx1 )

LOCAL umb, SAYING

MsgInfo( "In recalc" )

nHOURS   := 0
nMINUTES := 0

IF oRsImport:RecordCount() > 0
   umb := oRsImport:BookMark

   oRsImport:MoveFirst()
   DO WHILE .not. oRsImport:eof

      IF oRsImport:Fields("load_row"):Value = .T.
          nHOURS   := nHOURS+oRsImport:Fields("hours"):Value
          nMINUTES := nMINUTES+oRsImport:Fields("minutes"):Value
      ENDIF
      oRsImport:MoveNext()

   ENDDO

   oRsImport:BookMark := umb

   oLbx1:oCol("Hours"):nTOTAL    := nHOURS
   oLbx1:oCol("Hours"):lTOTAL    := .t.
   oLbx1:ReFresh()
   SysReFresh()

ENDIF

if oRsImport:Fields("process_flag"):Value = 'Y' .and. ;
    oRsImport:Fields("Load_row"):Value = .T.

    SAYING := "WARNING .. this record was previously loaded on"+chr(10)
    SAYING += "Date   "+DTOC(oRsImport:Fields("date_processed"):Value)+chr(10)
    MsgInfo( SAYING )

endif

RETURN(NIL)
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse dblclick
Posted: Tue Jul 21, 2009 05:21 PM
Mr Rick

I tested with the following sample and the double click is working.
Code (fw): Select all Collapse
#include "FiveWin.Ch"
#include "xbrowse.ch"

//------------------------------------------------------------------//

function Main()

   local oWnd, oBrw

   use customer
   define window oWnd
   @ 0,0 xbrowse oBrw of oWnd alias 'customer' autocols ;
      on dblclick msginfo( 'ok' )
   oBrw:CreateFromCode()
   oWnd:oClient := oBrw
   activate window ownd

return nil

Please try this sample.
Regards



G. N. Rao.

Hyderabad, India
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: xbrowse dblclick
Posted: Tue Jul 21, 2009 05:37 PM
Rao

In previous builds .. the 'on dblclick' trapped the mouse for the Check on and Check off .. for some reason now .. if you double click in that column .. the double click is not trapped by "ON DOUBLECLICK"

Code (fw): Select all Collapse
if .not. Empty( oCol := oLbx1:oCol( "Load_row" ) )
      oCol:SetCheck( { "CHECKON", "CHECKOFF" } )
      oCol:cSortOrder  := nil
      oCol:nEditType := EDIT_GET
      // oCol:lBmpStretch = .T.
   endif


I need to trap that event to fire the _Recalc()

Rick
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: xbrowse dblclick
Posted: Tue Jul 21, 2009 06:58 PM

To All

If you use a previous version of xbrowse the on double click works in the checkon, checkoff column .. something has changed in 9.06 to ignore this behavoir ..

Rick

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse dblclick
Posted: Wed Jul 22, 2009 04:26 AM
Mr Rick

Can you please try this modification ?
Code (fw): Select all Collapse
   if .not. Empty( oCol := oLbx1:oCol( "Load_row" ) )
      oCol:SetCheck( { "CHECKON", "CHECKOFF" } )
      oCol:cSortOrder  := nil
      oCol:nEditType := EDIT_GET
      oCol:bOnChange := { || _ReCalc( oRsImport, oLbx1 ) } // NEW LINE TO INSERT
   endif
Regards



G. N. Rao.

Hyderabad, India
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: xbrowse dblclick
Posted: Wed Jul 22, 2009 08:55 PM

Rao

That worked .. thank you !!

Rick

Continue the discussion