Bueno d铆as, el ejemplo tuyo lo compile y anda.
A continuaci贸n comparto el c贸digo a lo mejor logran ver mi error
聽 聽 聽 聽 聽 聽 聽 聽*-----------------------------------------------------------
聽 聽 聽 聽 聽 聽 聽 聽 @ 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 } )
聽 聽 聽 聽 聽 聽 聽 聽 //::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
聽 聽 聽 聽 聽 聽 聽 聽 //::aCols[3]:bBarGetChange := {|| ( ::validoMarca() ) }
聽 聽 聽 聽 聽 聽 聽 聽 //::aCols[3]:bBarGetChange := {|| msginfo(::aCols[ nPos ]) }
聽 聽 聽 聽 聽 聽 聽 聽 //::aCols[4]:lBarGetOnKey 聽:= .T.
聽 聽 聽 聽 聽 聽 聽 聽 ::oBrw:aCols[4]:uBarGetVal 聽 聽:= Space(40)
聽 聽 聽 聽 聽 聽 聽 聽 ::oBrw:aCols[4]:cBarGetBmp 聽 聽:= "BB_SEARCH(30x30)"
聽 聽 聽 聽 聽 聽 聽 聽 ::oBrw:aCols[4]:bBarGetAction := {|| ::SetFilterRegistro() } //::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() }
聽 聽 聽 聽 聽 聽 聽 聽 //::aCols[5]:aBarGetList 聽 := { "one", "two", "three" }
聽 聽 聽 聽 聽 聽 聽 聽 ::oBrw:aCols[6]:uBarGetVal 聽 聽:= Space(25)
聽 聽 聽 聽 聽 聽 聽 聽 ::oBrw:aCols[6]:aBarGetList 聽 := ::aLinea
聽 聽 聽 聽 聽 聽 聽 聽 //::aCols[6]:bBarGetChange := {|| ::validoLinea() 聽}
聽 聽 聽 聽 聽 聽 聽 聽 //::aCols[6]:bBarGetChange := {|| msginfo(::aCols[ ::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