Page 1 of 1

popupbrowse

PostPosted: Fri Sep 09, 2016 1:56 pm
by jose_murugosa
Es una interesante posibilidad utilizar el popupbrowse, pero he notado que en mi caso tengo dificultades para que funcione debidamente en una ventana y no en una dialog, quizá porque haya algo que no esté tomando en cuenta.
Podrían por favor chequear este código?

Son dos ejemplos uno con dialog y otro con ventana no ha sido modificado mas que lo estrictamente necesario en el código, verán que (o al menos a mi me pasa) en el caso de la ventana, no se abre el browse y en el caso de la dialog funciona perfectamente.

Pueden probar estos dos ejemplos simplemente comentando y descomentándo, deje comentado el que no funciona, es decir el de la ventana.


Otra pregunta....

Como hago para seleccionar el dato de que columna del browse quiero que coloque en el get?

Gracias desde ya por vuestra ayuda.

Code: Select all  Expand view

#include "fivewin.ch"

function maindialog()
    local oDlg, oGet, cVar, aItems

    aItems:={ {"Vaca", "Va", "Hereford", 2}, ;
            {"Novillo", "Nov", "Angus", 2}, ;
            {"Vaquillona", "Vaq", "Holando", 2}, ;
            {"Toro", "To", "Cruza", 2}  }

    DEFINE DIALOG oDlg FROM 0,0 to 40, 70
        @ 50, 50 GET oGet VAR cVar SIZE 200, 22 OF oDlg ACTION PopupBrowse( aItems, oGet, { || .t. } ) Pixel
        oGet:bKeyDown := { | nKey | If( nKey == VK_F4, PopupBrowse( aItems, oGet, { || .t. } ), ) }
    ACTIVATE DIALOG oDlg Center
   
return nil

/*
function mainwindow()
    local oWnd, oGet, cVar, aItems

    aItems:={ {"Vaca", "Va", "Hereford", 2}, ;
            {"Novillo", "Nov", "Angus", 2}, ;
            {"Vaquillona", "Vaq", "Holando", 2}, ;
            {"Toro", "To", "Cruza", 2}  }

    DEFINE WINDOW oWnd FROM 0,0 to 200, 200
        @ 50, 50 GET oGet VAR cVar SIZE 200, 22 OF oWnd ACTION PopupBrowse( aItems, oGet, { || .t. } ) Pixel
        oGet:bKeyDown := { | nKey | If( nKey == VK_F4, PopupBrowse( aItems, oGet, { || .t. } ), ) }
    ACTIVATE WINDOW oWnd Center
   
return nil
*/

 

Re: popupbrowse

PostPosted: Sat Sep 10, 2016 12:35 am
by joseluisysturiz
Creo esta segun lo revisado por mi hasta ahora para funcion con GET en DLG, saludos... :shock:

Re: popupbrowse

PostPosted: Sat Sep 10, 2016 1:32 am
by jose_murugosa
Muchas gracias por tu comentario, José Luis, sip, parece que si, me pregunto si funcionarían gets de estas características en controles como la ribbon....
Como podría hacer que devuelva el valor de una celda específica de la fila?

Re: popupbrowse

PostPosted: Sat Sep 10, 2016 7:39 am
by Antonio Linares
José,

Esta nueva función PopupBrowse() ha sido probada por el momento en GETs en diálogos y en XBrowses en diálogos.
Aún no había sido probada en ventanas.

En la próxima versión de FWH 16.08, se incluye un ejemplo completo de facturación en samples\yunus.prg que usa
la función PopupBrowse() desde GETs y desde el xbrowse.

Hemos modificado la función para que admita un nuevo parámetro que indica la columna del browse de la cual
queremos el valor. Por defecto se toma el valor 1. Tu ejemplo queda asi:

... ACTION PopupBrowse( aItems, oGet,, 2 )

Re: popupbrowse

PostPosted: Sat Sep 10, 2016 8:28 am
by Antonio Linares
La función PopupBrowse() funciona tambien con el alias seleccionado, por lo que es
idónea para seleccionar un campo de una DBF ó recordset con SQL:

Code: Select all  Expand view
#include "fivewin.ch"

function main()
    local oDlg, oGet, cVar

    USE Customer

    DEFINE DIALOG oDlg FROM 0,0 to 40, 70
        @ 50, 50 GET oGet VAR cVar SIZE 100, 12 OF oDlg ACTION Customer->( PopupBrowse( nil, oGet ) ) Pixel
        oGet:bKeyDown := { | nKey | If( nKey == VK_F4, Customer->( PopupBrowse( nil, oGet ) ), ) }
    ACTIVATE DIALOG oDlg Center
   
return nil


Image

Re: popupbrowse

PostPosted: Sat Sep 10, 2016 3:27 pm
by jose_murugosa
Excelente Antonio!! sería bueno agregar esta funcionalidad para usar en controles como ribbon y en ventanas :)

Me parece excelente esta mejora, ya que descubrí esta funcionalidad a través de este post pues no había notado que estaba en mi versión, y me parece excelente.

Re: popupbrowse

PostPosted: Mon Sep 12, 2016 3:58 pm
by Antonio Linares
la función PopupBrowse() ya funciona correctamente en ventanas:

Esta versión mejorada se incluye en FWH 16.08

Code: Select all  Expand view
#include "fivewin.ch"

function main()

   local oGet, c := space(10)
   local oWnd

   USE STATES

   DEFINE WINDOW oWnd

   @ 20,20 GET oGet VAR c SIZE 100,24 PIXEL OF oWnd ;
      ACTION PopupBrowse( Alias(), oGet )

   @ 60,20 BUTTON "OK" SIZE 100,40 PIXEL OF oWnd

   ACTIVATE WINDOW oWnd CENTERED

return nil


Image

Re: popupbrowse

PostPosted: Mon Sep 12, 2016 4:10 pm
by Antonio Linares
Esta es la forma de usar la función PopupBrowse() con un GET que use una cierta claúsula VALID:

This is the way to combine the use of function PopupBrowse() with the VALID of a GET:

Code: Select all  Expand view
#include "fivewin.ch"

function Main()

   local oGet, c := Space(10)
   local oDlg

   USE STATES

   DEFINE DIALOG oDlg TRUEPIXEL

   @ 20,20 GET oGet VAR c SIZE 100, 24 PIXEL OF oDlg ;
      ACTION PopupBrowse( Alias(), oGet ) ;
      VALID If( oGet:Cargo == nil, ( MsgInfo( "Valid" ), .T. ), .F. )

   @ 60,20 BUTTON "OK" SIZE 100, 40 PIXEL OF oDlg

   ACTIVATE DIALOG oDlg CENTERED

return nil

Re: popupbrowse

PostPosted: Mon Sep 12, 2016 4:26 pm
by jose_murugosa
Antonio Linares wrote:la función PopupBrowse() ya funciona correctamente en ventanas:

Esta versión mejorada se incluye en FWH 16.08



Espléndido Antonio, estaré pendiente de su lanzamiento :)

Re: popupbrowse

PostPosted: Mon Sep 12, 2016 4:33 pm
by joseluisysturiz
Antonio, algun sample de como usarse en un xBrowse.? gracias, saludos... :shock:

Re: popupbrowse

PostPosted: Mon Sep 12, 2016 4:36 pm
by Antonio Linares
Jose Luis,

Code: Select all  Expand view
  oBrw:aCols[ 1 ]:nEditType = EDIT_BUTTON
   oBrw:aCols[ 1 ]:bEditBlock = ;
      { | nRow, nCol, oCol, nKey | Items->( PopupBrowse( nil, oCol:oBtnElip, bInit ) ) }


bInit se define asi:
Code: Select all  Expand view
  bInit = { | oBrwItems | oBrwItems:oWnd:bValid := ;
      { || oBrw:Code:Value  := oWndItems:oClient:Code:Value,;
           oBrw:Name:Value  := oWndItems:oClient:Name:Value,;
           oBrw:Units:Value := 1,;
           oBrw:Price:Value := oWndItems:oClient:Price:Value, .T. } }


Tenemos planes de soportar un parámetro extra que seria el browse entero a usar, por lo que
se podria configurar totalmente a gusto del programador.

Image

En FWH 16.08 proporcionamos una completa aplicación de facturación (samples\yunus.prg) que usa este código

Re: popupbrowse

PostPosted: Mon Sep 12, 2016 4:41 pm
by joseluisysturiz
Antonio Linares wrote:Jose Luis,

Code: Select all  Expand view
  oBrw:aCols[ 1 ]:nEditType = EDIT_BUTTON
   oBrw:aCols[ 1 ]:bEditBlock = ;
      { | nRow, nCol, oCol, nKey | Items->( PopupBrowse( nil, oCol:oBtnElip, bInit ) ) }


Image

En FWH 16.08 proporcionamos una completa aplicación de facturación (samples\yunus.prg) que usa este código

Muchas gracias Antonio por tu rapida respuesta, saludos... :shock:

Re: popupbrowse

PostPosted: Mon Sep 12, 2016 4:43 pm
by Antonio Linares
Jose Luis,

Revisa mi respuesta porque la he editado después de escribirla :-)

Re: popupbrowse

PostPosted: Mon Sep 12, 2016 5:28 pm
by joseluisysturiz
Antonio Linares wrote:Jose Luis,

Revisa mi respuesta porque la he editado después de escribirla :-)


Listo Antonio, revisada de nuevo tu respuesta. gracias, saludos... :shock: