Hola buenos días, siguiendo el hilo del tema lGetBar, me encontré con la siguiente situación
Estoy haciendo un registro de cheques, el cual tiene que tener la opcion de buscar un cliente, no lo hago con EDIT_LISTBOX porque no puedo buscar o filtrar.
Entonces puse un browse dentro y no me aparece la lGetBar. Voy a compartir el codigo y una imagen para que sea mas claro de entender.
Code: Select all | Expand
.
.
.
*----------------------------------------------------------
WITH OBJECT oBrw:aCols[2]
//:nEditType := EDIT_LISTBOX
//:aEditListTxt := ArrTranspose( aQRcliente )[2]
//:bOnChange := { | oGet, oCol | ( ValidaCliente(oQry,oGet:value,aQRcliente),;
// lNewRec:=.T.,;
// IF(oQry:id_cliente<>0 .AND. Empty(oQry:opcion),oQry:opcion:="U",) ) }
:bStrData := {|| oQry:nombre_fantasia }
:nEditType := EDIT_BUTTON
:bEditBlock := {|nRow,nCol| buscoClientesCheque(oBrw,oQry,nRow,nCol,@hVar) }
:bOnPostEdit := {|oCol,xVal,nKey| IIF(nKey!=VK_ESCAPE, ( lNewRec:=.T.,;
oQry:id_cliente := hVar["idCliente"],;
oQry:nombre_fantasia := hVar["NombreCli"],;
oQry:opcion:="U",;
oBrw:Refresh() ),)}
END
*----------------------------------------------------------
.
.
.
****************************************************************************
*
FUNCTION buscoClientesCheque(oBrwCont,oQry,nRow,nCol,hVar)
LOCAL oDlg, oBrw, oCol, oNomCli, nCurrent
LOCAL oQryCli, cQryCli
LOCAL nAnchoDlg:=oBrwCont:aCols[2]:nWidth
//-----------------------------------------------------------------
cQryCli := "SELECT id_cliente,"
cQryCli += "nombre_fantasia "
cQryCli += "FROM cliente "
cQryCli += "ORDER BY nombre_fantasia"
DEFINE QUERY oQryCli cQryCli
//-----------------------------------------------------------------
// nAnchoDlg := 750
DEFINE DIALOG oDlg PIXEL TRUEPIXEL SIZE nAnchoDlg-3,250 STYLE WS_POPUP FONT hFnt["Brw"]
@ 0,0 XBROWSE oBrw OF oDlg FONT hFnt["Brw"] UPDATE //OBJECT oQryCli //PIXEL //SIZE nAnchoDlg-3,310
*-----------------------------------------------------------
oCol := oBrw:AddCol()
oCol:cHeader := "Cliente"
oCol:bStrData := { || oQryCli:nombre_fantasia }
oCol:nDataStrAlign := AL_LEFT
oCol:nWidth := nAnchoDlg-3
*-----------------------------------------------------------
*-----------------------------------------------------------
// BARRA DE BUSQUEDA
oBrw:lGetBar := .T.
oBrw:nGetBarHeight := 35
//oBrw:aCols[1]:lBarGetOnKey := .T.
//oBrw:aCols[1]:cBarGetPic := "@15"
oBrw:aCols[1]:uBarGetVal := Space(15)
oBrw:aCols[1]:cBarGetBmp := "BB_SEARCH(30x30)"
oBrw:aCols[1]:bBarGetAction := {|| SetFilterRegistroCli(oBrw,oQryCli) }
oBrw:aCols[1]:bBarGetValid := {|x| SetFilterRegistroCli(oBrw,oQryCli), .T.}
oBrw:bClrEdits := {|| { CLR_BLACK,rgb(255,250,240) } }
// BARRA DE BUSQUEDA
*-----------------------------------------------------------
WITH OBJECT oBrw
:nHeight := 250
:lHeader := .F.
:nHeaderLines := 0 // número de líneas de la cabecera
:nHeaderHeight := 0 // Altura cabeceras de columna
//:lSeekWild := .T.
//:lSeekBar := .t.
//:lIncrFilter := .F.
:cFilterFld := "Cliente"
//:bChange := {|| oBrw:Refresh() }
//:bSeekChange := {|| oBrw:Refresh() }
:nRowHeight := 35
: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
:nRowDividerStyle := LINESTYLE_LIGHTGRAY
:nColDividerStyle := LINESTYLE_LIGHTGRAY
:bClrSel := {||{nRGB(255,255,255),nRGB(000,128,255)}}// para barra de linea selecc cuando el control no tiene el foco
:l2007 := .F.
:lAllowColHiding := .T. // Anulo el menu contextual al hacer click sobre el Header del browse
:lRecordSelector := .F. //poner o no, COL de la flechita de la izq
:lHScroll := .F.
:lVScroll := .T.
:lColDividerComplete := .T. //completa pintado hasta el footer cuando lineas no llenan todo el browse
:lFastEdit := .F.
:SetColor( CLR_BLACK, RGB(255,255,255) )
:bKeyDown := {|nKey| If( nKey==VK_SPACE,( hVar["idCliente"]:=oQryCli:id_cliente,;
hVar["NombreCli"]:=oQryCli:nombre_fantasia,;
oDlg:End() ),) }//IF( nKey==VK_ESCAPE,oDlg:End(),)
//:blDblClick := {|nRow, nCol, nFlags| ( nNroCli := oQryCli:id_cliente,;
// oDlg:End() ) }
:blDblClick := {|| eval(:bKeyDown,VK_SPACE) }
END WITH
oBrw:SetDolphin( oQryCli,.F.,.T.)
oBrw:CreateFromCode()
ACTIVATE DIALOG oDlg ON INIT oDlg:Move(nRow+215,nCol)
