popupbrowse

popupbrowse

Postby jose_murugosa » Fri Sep 09, 2016 1:56 pm

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

 
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1173
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: popupbrowse

Postby joseluisysturiz » Sat Sep 10, 2016 12:35 am

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
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: popupbrowse

Postby jose_murugosa » Sat Sep 10, 2016 1:32 am

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
jose_murugosa
 
Posts: 1173
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: popupbrowse

Postby Antonio Linares » Sat Sep 10, 2016 7:39 am

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: 42068
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: popupbrowse

Postby Antonio Linares » Sat Sep 10, 2016 8:28 am

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42068
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: popupbrowse

Postby jose_murugosa » Sat Sep 10, 2016 3:27 pm

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
jose_murugosa
 
Posts: 1173
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: popupbrowse

Postby Antonio Linares » Mon Sep 12, 2016 3:58 pm

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42068
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: popupbrowse

Postby Antonio Linares » Mon Sep 12, 2016 4:10 pm

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42068
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: popupbrowse

Postby jose_murugosa » Mon Sep 12, 2016 4:26 pm

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
jose_murugosa
 
Posts: 1173
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: popupbrowse

Postby joseluisysturiz » Mon Sep 12, 2016 4:33 pm

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

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: popupbrowse

Postby Antonio Linares » Mon Sep 12, 2016 4:36 pm

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42068
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: popupbrowse

Postby joseluisysturiz » Mon Sep 12, 2016 4:41 pm

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

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: popupbrowse

Postby Antonio Linares » Mon Sep 12, 2016 4:43 pm

Jose Luis,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42068
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: popupbrowse

Postby joseluisysturiz » Mon Sep 12, 2016 5:28 pm

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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 17 guests

cron