Page 1 of 1

xbrowse bLDblClick y edición de columnas [solucionado]

Posted: Sat May 26, 2018 10:58 am
by manuelcalerosolis
Trabajando con xBrowse trato de conseguir el siguiente comportamiento.

Al hacer doble click sobre ciertas columnas quiero q se lance la edición del registro en un dialogo, pero si hago doble-click sobre una columna editable, edite el valor de esa columna.

Esto lo consigo, pero cuando termino la edición de esa columna con la tecla RETURN, después lanza el evento bLDblClick, de xBrowse, y eso no me interesa.

¿ Como puedo evitar que se propague y me lance el evento bLDblClick ?

Muchas gracias.

Re: xbrowse bLDblClick y edición de columnas

Posted: Sat May 26, 2018 3:51 pm
by FranciscoA
Manuel, intenta con cualquiera de las siguientes lineas:
WITH OBJECT oBrw
:bLDblClick := {|| if(oBrw:SelectedCol:cHeader $ "DESCRIP;TOTAL;VDESC", MsgInfo("Tu Function-Dialog"),) }
:bLDblClick := {|| if(oBrw:SelectedCol:nEditType = 0, MsgInfo("Tu Function-Dialog"),) }
Saludos

Re: xbrowse bLDblClick y edición de columnas

Posted: Sun May 27, 2018 10:08 am
by nageswaragunupudi

Code: Select all

#include "fivewin.ch"

function Main()

   local oDlg, oBrw

   USE CUSTOMER NEW
   DEFINE DIALOG oDlg SIZE 700,400 PIXEL TRUEPIXEL
   @ 20,20 XBROWSE oBrw SIZE -20,-20 PIXEL OF oDlg DATASOURCE "CUSTOMER" ;
      AUTOCOLS CELL LINES NOBORDER

   WITH OBJECT oBrw
      :nEditTypes    := EDIT_GET
      :bLDClickDatas := { || oBrw:EditSource() } // or { || youreditfunction() }
      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED

return nil
 

Re: xbrowse bLDblClick y edición de columnas

Posted: Sun May 27, 2018 10:09 pm
by manuelcalerosolis
Intento usar la variable blDClickDatas pero lo que obtengo es un error, he mirado en la clase TXBrowse y esa variable no existe.

Message not found: TXBROWSE:BLDCLICKDATAS

I try to use the blDClickDatas variable but what I get is an error, I looked in the TXBrowse class and that variable does not exist.

Message not found: TXBROWSE:BLDCLICKDATAS

Thanks.

FW version 17.0.5

Re: xbrowse bLDblClick y edición de columnas

Posted: Sun May 27, 2018 11:45 pm
by cnavarro
Manuel, es :bLDClickData, busca la información sobre el XBrowse en el wiki

http://wiki.fivetechsoft.com/doku.php?i ... xbrwcolumn

Re: xbrowse bLDblClick y edición de columnas

Posted: Mon May 28, 2018 12:10 am
by nageswaragunupudi
My sample works with FWH 17.05 also.

"nEditType" and "bLDClickData" are DATAS of TXBrwColumn.
When we suffix "s" to any column DATA and use it with XBrowse, it is translated and applied to all columns of the browse.

oBrw:nEditTypes := <n> is equivalent to AEval( oBrw:aCols, { |o| o:nEditType := <n> } )
Sameway,
oBrw:bLDClickDatas := <b> is equivalent to AEval( oBrw:aCols, { |o| o:bLDClickData := <b> } )

If you copied and code from the forum and pasted in your editor, please make sure that the <space> after the character ":" is removed. Normally this causes errors.

Re: xbrowse bLDblClick y edición de columnas

Posted: Mon May 28, 2018 1:00 am
by cnavarro
nageswaragunupudi wrote:My sample works with FWH 17.05 also.

"nEditType" and "bLDClickData" are DATAS of TXBrwColumn.
When we suffix "s" to any column DATA and use it with XBrowse, it is translated and applied to all columns of the browse.

oBrw:nEditTypes := <n> is equivalent to AEval( oBrw:aCols, { |o| o:nEditType := <n> } )
Sameway,
oBrw:bLDClickDatas := <b> is equivalent to AEval( oBrw:aCols, { |o| o:bLDClickData := <b> } )

If you copied and code from the forum and pasted in your editor, please make sure that the <space> after the character ":" is removed. Normally this causes errors.
Mr Rao, you are right
( s ) in datas it is a fantastic functionality, but I do not remember her usually

Re: xbrowse bLDblClick y edición de columnas

Posted: Mon May 28, 2018 7:43 am
by manuelcalerosolis
Siguiendo con este problema, descubro q no es tema de bLDblClick, sino de KeyDown(), yo tengo asignada a la tecla VK_RETURN una acción.

Esta acción se lanza cuando termino la edición sobre una columna con la tecla VK_RETURN, pero no se como detener esta propagación hacia el método KeyDown(), si la edición es realmente en una sola columna.

case nKey == VK_RETURN
if( !empty( ::oController ), ::oController:Edit(), )

Saludos