Page 1 of 1

xBrowse, editar columna con boton

Posted: Thu Nov 01, 2012 10:19 pm
by ralph
Amigos del foro:

Estoy pasando algunos programas de Tsbrowse a xBrowse y encuentro una dificultad.
Necesito crear una columna que sea editable y que pueda (opcionalmente si el usuario presiona el boton) seleccionar datos de una tabla.
En mi caso, en esta columna escribo el codigo del producto, si el usuario no se acuerda o quiere consultar la lista, presiona el boton para mostrar la lista de productos.

Antes con Tsbrowse, mi codigo era:

Code: Select all

    ADD COLUMN TO BROWSE oBrwDeta DATA FieldWBlock("CODPRD",Select("TMPD")) ;
       HEAD "Codigo" 

    oBrwDeta:SetBtnGet( 1, "Pick", { | oGet, cVar | ;
          aRect := GetCoors( oGet:hWnd ), cVar := oGet:Value(), ;
          cVar := PickPrd( cVar ), ;
          oGet:cText( cVar ), oGet:Refresh() }, 16 )

 
Mi codigo usando xBrowse es este:

Code: Select all

    ADD COLUMN TO oBrwDeta DATA TMPD->CODPRD HEAD "Codigo" 

    nx := len(oBrwDeta:aCols)
    oBrwDeta:aCols[ nx ]:nEditType   := EDIT_BUTTON
    oBrwDeta:aCols[ nx ]:bEditBlock   := { | r, c, o | o:Value := PickPrd( o:Value ) }
 
Pero, cuando uso el modo de edicion EDIT_BUTTON no me permite escribir el codigo de producto, apenas entro a editar la columna se ejecuta :bEditBlock y me muestra la lista de productos.
Alguna idea de solucion? Uso FW1202

Gracias por su ayuda

Re: xBrowse, editar columna con boton

Posted: Tue Nov 06, 2012 1:52 am
by nageswaragunupudi
Please try this:

Code: Select all

ADD COLUMN TO oBrwDeta DATA TMPD->CODPRD HEAD "Codigo" 

    nx := len(oBrwDeta:aCols)
    oBrwDeta:aCols[ nx ]:nEditType   := EDIT_BUTTON
    oBrwDeta:aCols[ nx ]:bEditBlock   := { || PickPrd( o:Value ) }
 

Re: xBrowse, editar columna con boton

Posted: Tue Nov 13, 2012 3:20 pm
by ralph
Dear Mr. Rao.
I see the behavior much more alike to what i need is using the mode: EDIT_GET_BUTTON that has little documentation.
- I can call my function PickPrd(...) clicking in the small button of the cell, but how can capture the value returned by my function to the field bein edited?
- Is there a way to call this function using also a key?: by example F2

I would apreciate much if you send a small sample

Thanks for your reply

Ralph