Se que he molestado mucho con busqueda Incremental.
Tengo un Xbrowse que posee 2 Columnas con un Array, la Primera es de "Codigo" y la Segunda "Nombre",.
Necesito que cuando ingrese al Xbrowse, al digitar busqueda Incremental, este inicie la busqueda en la Columna 2° (Nombre), lo que hoy esta haciendo, es que muestra indexado por Columna Nombre, pero inicia busqueda por Codigo,.
No logro dar para que la Busqueda Inicial u Original, se realice inmediatamente como Columna 2, y no que tenga que estar Clickeando sobre la Columna 2, para que realice la busqueda sobre esta Columna.
En espera siempre de su ayuda, les saluda muy atte,
Antonio
Dejo el Codigo que uso:
- Code: Select all Expand view
cCod9 := ASort(aArancel,,,{|x,y| x[1]<y[1]}) //orden ascendente por codigo
cNom9 := ASort(aArancel,,,{|x,y| x[2]<y[2]}) // " " " nombre
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
DEFINE FONT oFont1 NAME 'TAHOMA' SIZE 0,24 BOLD
DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0,-12 BOLD
DEFINE FONT oFont7 NAME "TAHOMA" SIZE 0,-14 BOLD
DEFINE DIALOG oDlg33 RESOURCE "#1005" FONT oFont
REDEFINE SAY otitu PROMPT " MAESTRO DE ARANCEL " ID 4004 OF oDlg33 COLORS RGB(12, 135, 27) FONT oFont1
REDEFINE XBROWSE oBrw OF oDlg33 DATASOURCE aArancel ID 4001;
HEADERS 'Código','Nombre de Examen';
COLUMNS 1, 2;
PICTURES "@!","@!" ;
COLSIZES 90,335;
CELL LINES AUTOSORT NOBORDER;
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW
oBrw:nColDividerStyle := LINESTYLE_RAISED
oBrw:nRowDividerStyle := LINESTYLE_RAISED
oBrw:bClrHeader := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }
oBrw:nOpacity := 230
oBrw:nHeaderHeight := 35
oBrw:nFreeze := 2
oBrw:aCols[1]:oHeaderFont:= oFont7
oBrw:aCols[2]:oHeaderFont:= oFont7
oCol := oBrw:aCols[ 2 ]
ocol:cToolTip:="Clique para ordenar por NOMBRE"
oDlg33:bStart:={ || oBrw:Gotop() }
oBrw:lSeekBar:= .f. // Permite Añadir Fila de Busqueda en Xbrowse
oCol := oBrw:aCols[ 1 ]
ocol:cToolTip:="Clique para ordenar por CODIGO"
oBrw:bClrStd := { || If( Eval( oBrw:bKeyNo,,oBrw1) % 2 == 0, { CLR_BLACK, RGB( 198, 255, 198 ) },;
{ CLR_BLACK, RGB( 232, 255, 232 ) } ) } // Efecto Cebra
oBrw:aCols[ 1 ]:oDataFont := oFont7
oBrw:aCols[ 2 ]:oDataFont := oFont7
oBrw:Seek("")
oBrw:bClrStd := {|| { nRGB( 0, 0, 0), nRGB(255,248,220) } }
oBrw:bClrSelFocus := {|| { nRGB( 255, 255, 255), nRGB(102, 178, 255) } }
oBrw:bClrSel := {|| { nRGB( 0, 0,255), nRGB(241,222,088) } } // para barra de linea selecc cuando el control no tiene el foco
oBrw:lAutoSort := .t.
oBrw:lFooter := .f.
oBrw:lHScroll := .f.
oBrw:lIncrFilter := .T.
oBrw:lSeekWild := .T. && .T. Busca Contenido, .F. Que comience con lo que digita
oBrw:SetStyle( 2018)
oBrw:nColorPen := CLR_RED
oBrw:bChange := {|| oBrw:Refresh() }
WITH OBJECT oBrw
:aCols[ 1 ]:cSortOrder := cCod9
:aCols[ 2 ]:cSortOrder := cNom9
:aCols[ 2 ]:SetOrder()
:aCols[1]:bLClickHeader := {|| oBrw:Seek( "" ), oBrw:cFilterFld := "Código", oBrw:nColSel := 1, oBrw:GoTop() }
:aCols[2]:bLClickHeader := {|| oBrw:Seek( "" ), oBrw:cFilterFld := "Nombre de Examen", oBrw:nColSel := 2, oBrw:GoTop() }
:bLDblClick:={|| Agre_Codi(Tip_Ate1,Tip_Pag1,aArancel,aCodigos, oBrw:nArrayAt,@Can_Cod1,@Val_Tot1), oSay3:Refresh(),oSay4:Refresh(), oSay5:Refresh(),oSay6:Refresh(),oBrw2:Refresh()}
:bKeyDown:={|nKey| iif(nKey == VK_RETURN, Eval(oBrw:bLDblClick),)}
:bChange := { || oBrw2:GoTop(), oSay3:Refresh(),oSay4:Refresh(), oBrw2:Refresh()}
END
REDEFINE SAY otitu5 PROMPT "Buscar : " ID 4011 OF oDlg33 COLORS RGB(12, 135, 27) FONT oFont7
REDEFINE SAY oBrw:oSeek VAR oBrw:cSeek ID 4012 OF oDlg33 PICTURE "@X" FONT oFont7 COLOR CLR_HRED,CLR_YELLOW
oDlg33:bInit := {|| oBrw:oCol("Nombre de Examen"):SortArrayData(), Eval(oBrw:aCols[2]:bLClickHeader) }
REDEFINE BTNBMP ID 4010 PROMPT "LIMPIA" OF oDlg33 ADJUST 2007 FONT oFont7 ;
ToolTip "LIMPIAR BUSQUEDA";
ACTION ( oBrw:Seek( "" ), oBrw:GoTop(), oBrw:SetFocus() )
REDEFINE BTNBMP ID 4002 PROMPT "SALIR" OF oDlg33 ADJUST 2007 FONT oFont7 NOBORDER ;
ToolTip "VOLVER A LA PANTALLA ANTERIOR";
ACTION (oDlg33:END())
ACTIVATE DIALOG oDlg33 CENTERED ON INIT ( oBrw:cSeek( "" ), oBrw:SetFocus(), .F. )