popupbrowse

Post Reply
User avatar
jose_murugosa
Posts: 1187
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

popupbrowse

Post 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


#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
*/

 
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: popupbrowse

Post by joseluisysturiz »

Creo esta segun lo revisado por mi hasta ahora para funcion con GET en DLG, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
jose_murugosa
Posts: 1187
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: popupbrowse

Post 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?
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
Antonio Linares
Site Admin
Posts: 42595
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 38 times
Been thanked: 86 times
Contact:

Re: popupbrowse

Post 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 )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 42595
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 38 times
Been thanked: 86 times
Contact:

Re: popupbrowse

Post 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

#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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
jose_murugosa
Posts: 1187
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: popupbrowse

Post 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.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
Antonio Linares
Site Admin
Posts: 42595
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 38 times
Been thanked: 86 times
Contact:

Re: popupbrowse

Post 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

#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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 42595
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 38 times
Been thanked: 86 times
Contact:

Re: popupbrowse

Post 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

#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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
jose_murugosa
Posts: 1187
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: popupbrowse

Post 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 :)
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: popupbrowse

Post by joseluisysturiz »

Antonio, algun sample de como usarse en un xBrowse.? gracias, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
Antonio Linares
Site Admin
Posts: 42595
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 38 times
Been thanked: 86 times
Contact:

Re: popupbrowse

Post by Antonio Linares »

Jose Luis,

Code: Select all | Expand

  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

  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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: popupbrowse

Post by joseluisysturiz »

Antonio Linares wrote:Jose Luis,

Code: Select all | Expand

  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:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
Antonio Linares
Site Admin
Posts: 42595
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 38 times
Been thanked: 86 times
Contact:

Re: popupbrowse

Post by Antonio Linares »

Jose Luis,

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

Antonio Linares
www.fivetechsoft.com
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: popupbrowse

Post 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:
Dios no está muerto...

Gracias a mi Dios ante todo!
Post Reply