Page 2 of 3

Re: lGetBar

PostPosted: Wed Jan 30, 2019 9:33 pm
by Marcelo Roggeri
Tengo este problema, espero que alguien pueda decirme si se puede hacer y si es posible como es.
Image

Code: Select all  Expand view

       ::BuscarRubro(::oBrw:aCols[5]:uBarGetVal)

       cQry := "SELECT lispre.id_marca, marcas.nombre AS nombreMarca "
       cQry += "FROM lispre "
       cQry += "LEFT JOIN marcas on lispre.id_marca=marcas.id_marca "
       cQry += "WHERE lispre.id_rubro=" + ClipValue2SQL(::nIdRubro) + " "
       cQry += "GROUP BY lispre.id_marca"
       DEFINE QUERY oQry cQry
       ::aMarca := oQry:FillArray(,{"nombremarca"})
       oQry:End()
xbrowse(::aMarca)

       ::oBrw:aCols[3]:uBarGetVal  := Space(20)
       ::oBrw:aCols[3]:aBarGetList := ::aMarca
       ::oBrw:aCols[3]:oBarGet:Refresh()

       ::oBrw:Refresh()
 


Ese es el metodo que actualiza el contenido del array marca, pero no me lo refresca.
Tal vez quiera hacer algo que no se puede.
Saludos

Re: lGetBar

PostPosted: Wed Jan 30, 2019 9:42 pm
by Marcelo Roggeri
En hora buena Jose Luis, si en algo puedo aportar no dudes en hacerlo saber.
Saludos
Marcelo

Re: lGetBar

PostPosted: Wed Jan 30, 2019 10:06 pm
by Marcelo Roggeri
Bueno me contesto lo que pregunte porque recien logre hacerlo andar, gracias a Ariel.

::oBrw:aCols[3]:oBarGet:SetItems(::aMarca)

Saludos
Marcelo

Re: lGetBar

PostPosted: Thu Jan 31, 2019 4:40 am
by nageswaragunupudi
Now it looks to me that all issues are resolved.

Re: lGetBar

PostPosted: Thu Jan 31, 2019 11:06 am
by Marcelo Roggeri
Si Mr. Rao muchas gracias

Re: lGetBar

PostPosted: Mon Feb 04, 2019 1:01 pm
by Marcelo Roggeri
Hola buenos días al foro, siguiendo el hilo se me presento una situación con 3 combos de filtro dentro del xBrowse
Lo que necesito saber es que combo hice click y seleccione una opción

Code: Select all  Expand view
               
                ::oBrw:aCols[3]:uBarGetVal    := Space(20)
                ::oBrw:aCols[3]:aBarGetList   := ::aMarca
                ::oBrw:aCols[3]:bBarGetChange := {|| ::validoMarca() }

                ::oBrw:aCols[5]:uBarGetVal    := Space(30)
                ::oBrw:aCols[5]:aBarGetList   := ::aRubro
                ::oBrw:aCols[5]:bBarGetChange := {|| ::validoRubro() }

                ::oBrw:aCols[6]:uBarGetVal    := Space(25)
                ::oBrw:aCols[6]:aBarGetList   := ::aLinea
                ::oBrw:aCols[6]:bBarGetChange := {|| ::validoLinea()  }
 


De acuerdo a la columna que pertenezca el combo seleccionado solo debo validar en ese solo combo, entones sabiendo en que columna es lo puedo controla sino se me queda en un ciclo infinito y se me sale del sistema.
Espero haberme explicado, Gracias de antemano.
Saludos
Marcelo

Re: lGetBar

PostPosted: Thu Mar 28, 2019 2:30 am
by Marcelo Roggeri
Hola buenas noches, siguiendo el hilo, quisiera saber si hubo algun cambio en la forma de llamar un combo en la barra de busqueda de un browse ya que no me aparecen los items del combo

Code: Select all  Expand view
::oBrw:lGetBar   := .t.
::oBrw:aCols[5]:uBarGetVal    := Space(30)
::oBrw:aCols[5]:aBarGetList   := ::aRubro
 

Re: lGetBar

PostPosted: Thu Mar 28, 2019 4:59 am
by nageswaragunupudi
Marcelo Roggeri wrote:Hola buenas noches, siguiendo el hilo, quisiera saber si hubo algun cambio en la forma de llamar un combo en la barra de busqueda de un browse ya que no me aparecen los items del combo

Code: Select all  Expand view
::oBrw:lGetBar   := .t.
::oBrw:aCols[5]:uBarGetVal    := Space(30)
::oBrw:aCols[5]:aBarGetList   := ::aRubro
 

This is correct.
Please make sure that ::aRubro really contains an array before the assignment is made.

Re: lGetBar

PostPosted: Thu Mar 28, 2019 11:27 am
by Marcelo Roggeri
Hola buenos dias, Mr Rao si es lo primero que hice asegurarme de que el arrary tenga data, y efectivamente lo tiene.
Como no vi nada extraño es por eso que envie mi consulta.
Adjunto imagen del array de rubros
Image

Re: lGetBar

PostPosted: Thu Mar 28, 2019 1:53 pm
by Marc Venken
Maybe you think it is empty because your first item in the array is empty and so the combo shows the first empty field.
Is it also empty when you hit the arrow ?

Re: lGetBar

PostPosted: Thu Mar 28, 2019 1:59 pm
by Marcelo Roggeri
Buen razonamiento, pero antes funcionaba y le puse un elemento en blanco porque al inicio no tiene ningun filtro por defecto.
Se entiende?
Gracias por responder
Saludos
Marcelo

Re: lGetBar

PostPosted: Fri Mar 29, 2019 5:16 pm
by nageswaragunupudi
I mean, ::aRubro is assigned with the array before executing the statement
Code: Select all  Expand view

::oBrw:aCols[5]:aBarGetList   := ::aRubro
 

not after.

For the purpose of testing, please try
Code: Select all  Expand view

::oBrw:aCols[5]:aBarGetList   := { "one", "two", "three" }
 

Re: lGetBar

PostPosted: Fri Mar 29, 2019 10:40 pm
by Marcelo Roggeri
Hola Mr. Rao
probe eso que me sugieres, y todo igual solo veo el combo y no se abre
Saludos

Re: lGetBar

PostPosted: Sat Mar 30, 2019 2:14 am
by nageswaragunupudi
This test code is working correctly
Code: Select all  Expand view
  XBROWSER "STATES.DBF" SETUP ( ;
      oBrw:lGetBar := .t., ;
      oBrw:Name:uBarGetVal := Space( 20 ), ;
      oBrw:Name:aBarGetList := { "   ", "One", "Two", "Three" } ;
      )
 


Image

Please check for any differences with your code.

Re: lGetBar

PostPosted: Sat Mar 30, 2019 2:11 pm
by Marcelo Roggeri
Bueno días, el ejemplo tuyo lo compile y anda.
A continuación comparto el código a lo mejor logran ver mi error
Code: Select all  Expand view
               *-----------------------------------------------------------
                @ 0,0 XBROWSE ::oBrw OF hLays["H3"]:aVLayout[1]
                *-----------------------------------------------------------
                oCol := ::oBrw:AddCol()//1
                   oCol:bStrData      := {|| ::oQry:id_articulo }
                   oCol:nDataStrAlign := AL_RIGHT
                   oCol:nWidth        := 130
                   oCol:cHeader       := "ID"
                   oCol:nHeadStrAlign := AL_CENTER
                   oCol:lHide         := .T.
                *-----------------------------------------------------------
                oCol := ::oBrw:AddCol()//2
                   oCol:bStrData      := {|| ::oQry:codigo_articulo }
                   oCol:nDataStrAlign := AL_LEFT
                   oCol:nWidth        := 220
                   oCol:cHeader       := "Código"
                   oCol:nHeadStrAlign := AL_LEFT
                   oCol:Cargo         := "articulos.codigo_articulo"
                *-----------------------------------------------------------
                oCol := ::oBrw:AddCol()//3
                   oCol:bStrData      := {|| ::oQry:nombreMarca }
                   oCol:nDataStrAlign := AL_LEFT
                   oCol:nWidth        := 250
                   oCol:cHeader       := "Marca"
                   oCol:nHeadStrAlign := AL_LEFT
                   oCol:Cargo         := "articulos.id_marca"
                *-----------------------------------------------------------
                oCol := ::oBrw:AddCol()//4
                   oCol:bStrData      := {|| ::oQry:descripcion }
                   oCol:nDataStrAlign := AL_LEFT
                   oCol:nWidth        := 400
                   oCol:cHeader       := "Descripción Artículo"
                   oCol:nHeadStrAlign := AL_LEFT
                   oCol:Cargo         := "articulos.descripcion"
                *-----------------------------------------------------------
                oCol := ::oBrw:AddCol()//5
                   oCol:bStrData      := {|| ::oQry:nombreRubro }
                   oCol:nDataStrAlign := AL_LEFT
                   oCol:nWidth        := 251
                   oCol:cHeader       := "Rubro"
                   oCol:nHeadStrAlign := AL_LEFT
                   oCol:Cargo         := "articulos.id_rubro"
                *-----------------------------------------------------------
                oCol := ::oBrw:AddCol()//6
                   oCol:bStrData      := {|| ::oQry:nombreLinea }
                   oCol:nDataStrAlign := AL_LEFT
                   oCol:nWidth        := 252
                   oCol:cHeader       := "Linea"
                   oCol:nHeadStrAlign := AL_LEFT
                   oCol:Cargo         := "articulos.id_linea"
                *-----------------------------------------------------------
                oCol := ::oBrw:AddCol()//7
                   oCol:bStrData      := {|| ::oQry:porcentaje_iva }
                   oCol:nDataStrAlign := AL_RIGHT
                   oCol:nWidth        := 100
                   oCol:cHeader       := "Iva"
                   oCol:nHeadStrAlign := AL_CENTER
                   oCol:lHide         := .T.
                *-----------------------------------------------------------
                oCol := ::oBrw:AddCol()//8
                   oCol:bStrData      := {|| ::oQry:precio_publico_sugerido }
                   oCol:nDataStrAlign := AL_RIGHT
                   oCol:nWidth        := 150
                   oCol:cHeader       := "Pre. Público"
                   oCol:nHeadStrAlign := AL_CENTER
                *-----------------------------------------------------------
                AEval( ::oBrw:aCols, {| o | o:oDataFont   := oSistema:oFntBrw } )
                AEval( ::oBrw:aCols, {| o | o:oHeaderFont := oSistema:oFntCab } )

                //::oBrw:oRecSelFont      := oFont // Valor predeterminado en oBrw: oFont
                ::oBrw:nRecSelHeadBmpNo := "Counter"
                ::oBrw:bRecSelData      := { || ::oQry:nRecNo }
                ::oBrw:bRecSelHeader    := { |brw| "Nr." }
                ::oBrw:bRecSelFooter    := { |brw| brw:nLen }
                ::oBrw:nRecSelWidth     := 60
                ::oBrw:nRecSelColor     := 16762251
                *-----------------------------------------------------------

                ::oBrw:nHeaderHeight       := 40    // Altura cabeceras de columna

                ::oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLROW // Estilo marquesina (fila seleccionada) 0 No 1 Marquesina punteada celular 2 Solid celular 3 Resalte la celda 4 fila resaltada y Levante teléfono 5
                ::oBrw:nRowDividerStyle    := LINESTYLE_LIGHTGRAY
                ::oBrw:nColDividerStyle    := LINESTYLE_LIGHTGRAY
                ::oBrw:bClrSel             := {||{nRGB(255,255,255),nRGB(000,128,255)}}// para barra de linea selecc cuando el control no tiene el foco

                ::oBrw:nStretchCol         := STRETCHCOL_WIDEST

                ::oBrw:l2007               := (.F.)
                ::oBrw:lAllowColHiding     := .F. // Anulo el menu contextual al hacer click sobre el Header del browse
                ::oBrw:nRowHeight          := 40
                ::oBrw:bClrStd             := { || { CLR_BLACK, If(::oBrw:KeyNo % 2 == 0, RGB(193,221,255), RGB(221,245,255) ) } } // colores para lineas normales

                ::oBrw:lHScroll            := .T.
                ::oBrw:lVScroll            := .T.
                ::oBrw:lColDividerComplete := .T. //completa pintado hasta el footer cuando lineas no llenan todo el browse
                ::oBrw:lFastEdit           := .F.

                ::oBrw:lFooter              := .T.
                ::oBrw:nFooterLines         := 1    //Lineas del footer
                ::oBrw:nFooterHeight        := 40   //Altura del  Footer
                ::oBrw:bClrFooter           := {|| { nRGB(255,255,255), 16762251 } }

                ::oBrw:SetColor( CLR_BLACK, RGB(193,221,255) )

                *-----------------------------------------------------------
                // BARRA DE BUSQUEDA
                ::oBrw:lGetBar       := .T.
                ::oBrw:nGetBarHeight := 33

                ::oBrw:aCols[2]:uBarGetVal    := Space(15)

                ::oBrw:aCols[2]:cBarGetBmp    := "BB_SEARCH(30x30)"
                ::oBrw:aCols[2]:bBarGetAction := {|| ::SetFilterRegistro() }
                ::oBrw:aCols[2]:bBarGetValid  := {|x| ::SetFilterRegistro(), .T.}


                ::oBrw:aCols[3]:uBarGetVal    := Space(20)
                ::oBrw:aCols[3]:aBarGetList   := ::aMarca
                //::oBrw:aCols[3]:bBarGetChange := {|| ( ::validoMarca() ) }
                //::oBrw:aCols[3]:bBarGetChange := {|| msginfo(::oBrw:aCols[ nPos ]) }


                //::oBrw:aCols[4]:lBarGetOnKey  := .T.
                ::oBrw:aCols[4]:uBarGetVal    := Space(40)
                ::oBrw:aCols[4]:cBarGetBmp    := "BB_SEARCH(30x30)"
                ::oBrw:aCols[4]:bBarGetAction := {|| ::SetFilterRegistro() } //::oBrw:aCols[4]:cBarGetPic   := "@!"   // MASCARA
                ::oBrw:aCols[4]:bBarGetValid  := {|x| ::SetFilterRegistro(), .T.}

                ::oBrw:aCols[5]:uBarGetVal    := Space(30)
                ::oBrw:aCols[5]:aBarGetList   := ::aRubro
                ::oBrw:aCols[5]:bBarGetChange := {|| ::validoRubro() }
                //::oBrw:aCols[5]:aBarGetList   := { "one", "two", "three" }

                ::oBrw:aCols[6]:uBarGetVal    := Space(25)
                ::oBrw:aCols[6]:aBarGetList   := ::aLinea
                //::oBrw:aCols[6]:bBarGetChange := {|| ::validoLinea()  }
                //::oBrw:aCols[6]:bBarGetChange := {|| msginfo(::oBrw:aCols[ ::oBrw:nColSel ]:nWidth) }


                ::oBrw:bClrEdits := { || { CLR_BLACK,rgb(255,250,240) } }

                /*
                oCol:aBarGetList:   If you assign an array combobox will be displayed
                oCol:bBarGetValid:  You can take action when the user completes the entry
                oCol:cBarGetBmp:    bmp file name to show button on the get
                oCol:bBarGetAction: Button action
                oCol:bBarGetChange: as it means
                */


                // BARRA DE BUSQUEDA
                *-----------------------------------------------------------

                ::oBrw:SetDolphin( ::oQry,.F.,.T.)
                ::oBrw:CreateFromCode()

                ::oBrw:MakeTotals()
                ::oBrw:Refreshfooters()
                ::oBrw:Refresh()

                hLays["H3"]:aVLayout[1]:oClient := ::oBrw
 

Saludos y gracias