Page 2 of 3
Re: lGetBar
Posted: 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.

Code: Select all | Expand
::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
Posted: 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
Posted: 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
Posted: Thu Jan 31, 2019 4:40 am
by nageswaragunupudi
Now it looks to me that all issues are resolved.
Re: lGetBar
Posted: Thu Jan 31, 2019 11:06 am
by Marcelo Roggeri
Si Mr. Rao muchas gracias
Re: lGetBar
Posted: 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
::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
Posted: 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
::oBrw:lGetBar := .t.
::oBrw:aCols[5]:uBarGetVal := Space(30)
::oBrw:aCols[5]:aBarGetList := ::aRubro
Re: lGetBar
Posted: 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
::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
Posted: 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

Re: lGetBar
Posted: 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
Posted: 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
Posted: Fri Mar 29, 2019 5:16 pm
by nageswaragunupudi
I mean, ::aRubro is assigned with the array before executing the statement
not after.
For the purpose of testing, please try
Code: Select all | Expand
::oBrw:aCols[5]:aBarGetList := { "one", "two", "three" }
Re: lGetBar
Posted: 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
Posted: Sat Mar 30, 2019 2:14 am
by nageswaragunupudi
This test code is working correctly
Code: Select all | Expand
XBROWSER "STATES.DBF" SETUP ( ;
oBrw:lGetBar := .t., ;
oBrw:Name:uBarGetVal := Space( 20 ), ;
oBrw:Name:aBarGetList := { " ", "One", "Two", "Three" } ;
)

Please check for any differences with your code.
Re: lGetBar
Posted: 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
*-----------------------------------------------------------
@ 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