FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Busqueda en TSBrowse
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Busqueda en TSBrowse
Posted: Fri Apr 18, 2008 11:14 AM

Saludos a los componentes del foro.

Intento algo usando TSBrowse de D. Manuel Mercado. Se trata de buscar en cuarquier columna aunque no esté indexada. No se si es posible.

Un saludo.

Saludos. Fernando
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: Busqueda en TSBrowse
Posted: Fri Apr 18, 2008 03:03 PM
fergonm wrote:Intento algo usando TSBrowse de D. Manuel Mercado. Se trata de buscar en cuarquier columna aunque no esté indexada. No se si es posible.

Hola, yo uso lo siguiente en alguna de mis aplicaciones:
   DEFINE SBUTTON OF oBar GROUP ;
          RESOURCE "MULTI Buscam" ;
          ACTION ( cSearch := Space( 40 ), ;
                   If( MsgGet( "Nombres en los registros", "Buscar", @cSearch ) .and. ! Empty( cSearch ), ;
                   oBrw:ExpLocate( '"' + Upper( AllTrim( cSearch ) ) + ;
                                   '"$Trim(MGTRAB->NOMBRE)+Trim(MGTRAB->APEPAT)+Trim(MGTRAB->APEMAT)' ), Nil ) )  ;
          TOOLTIP "Búsqueda de nombres" ;
          MESSAGE "Buscar un registro cuyo nombre contenga la(s) palabra(s) que escribas."

Adáptalo a tus necesidades, saludos.

Manuel Mercado
manuelmercado at prodigy dot net dot mx
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Busqueda en TSBrowse
Posted: Fri Apr 18, 2008 05:06 PM

Muchas gracias D. Manuel. Lo probaré

Un cordial saludo desde Zaragoza

Saludos. Fernando
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Busqueda en TSBrowse
Posted: Mon Apr 21, 2008 03:07 PM
Estimado Manuel

He intentado usar el código como me indica y he logrado compilar y enlazar tas varios intentos y tras descubrir la ayuda de los dos métodos.

Al correr el programa, es decir en tiempo de ejecución, me da error e indica lo siguiente:

Application
===========
Path and name: c:\Personal\FWH\ts\TSBROWSE\SAMPLES\sbtest.exe (32 bits)
Size: 1,815,552 bytes
Time from start: 0 hours 0 mins 13 secs
Error occurred at: 04/21/08, 16:51:49
Error description: Error BASE/1004 No exported method: EXPSEEK
Args:
[ 1] = A { ... }
[ 2] = C ali

Stack Calls
===========
Called from: => EXPSEEK(0)
Called from: .\sbtest.prg => (b)FWINDOW(1397)
Called from: => TSBUTTON:CLICK(790)
Called from: => TCONTROL:HANDLEEVENT(0)
Called from: => TSBUTTON:HANDLEEVENT(1288)
Called from: .\source\classes\WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: => TMDIFRAME:ACTIVATE(0)
Called from: .\sbtest.prg => MAIN(163)



He modificado el programa SBTest.PRG, añadiendo la siguietes lineas.



Static Function fWindow( nSample )

Local oDlg, oBar, oFld, oBmp, oBrw[ 7 ], oCol, aRect, nEle, nBrwHeight, nMarried, nSingle, nTotSal, nAgeTot, ;
nOldAge, nOldSal, aStates, bBlock, cFer, cSearch:=SPACE(40)

Field First, Last, Married, Age, Salary, State

IF aWChild[ nSample ] == Nil

nMarried := 0
nSingle := 0
nTotSal := 0
nAgeTot := 0
nOldAge := 0
nOldSal := 0
aStates := {}

DEFINE BITMAP oBmp RESOURCE "Head"

If nSample == 7
DEFINE WINDOW aWChild[ nSample ] OF oWnd BORDER NONE NOMINIMIZE NOMAXIMIZE ;
TITLE "Sample " + LTrim( Str( nSample ) ) BRUSH aBrush[ 8 ] ;
FROM 0,0 TO oWnd:nBottom, oWnd:nRight PIXEL ;
ICON oIco ;
MDICHILD
Else
DEFINE WINDOW aWChild[ nSample ] OF oWnd BORDER NONE NOMINIMIZE NOMAXIMIZE ;
TITLE "Sample " + LTrim( Str( nSample ) ) ;
FROM 0,0 TO oWnd:nBottom, oWnd:nRight PIXEL ;
ICON oIco ;
MDICHILD
EndIf

DEFINE BUTTONBAR oBar OF aWChild[ nSample ] SIZE 36, 36
//2007

DEFINE BUTTON OF oBar NOBORDER
DEFINE BUTTON OF oBar RESOURCE "Print16" NOBORDER;
ACTION oBrw[ nSample ]:Report() ;
TOOLTIP "Print"

DEFINE BUTTON OF oBar RESOURCE "Exitb16" NOBORDER;
ACTION ( aWChild[ nSample ]:End(), aWChild[ nSample ] := Nil ) ;
TOOLTIP "Exit"

DEFINE SBUTTON OF oBar GROUP RESOURCE "Point" NOBORDER;
ACTION (MsgGet("Nombres","Buscar", @cSearch),;
If(!oBrw:ExpSeek(AllTrim(cSearch)),;
MsgStop("No hay ningún registro con los datos de busqueda",cSearch),nil));
TOOLTIP "Busqueda";
MESSAGE "Buscar nombres"

DEFINE SBUTTON OF oBar GROUP RESOURCE "Search" NOBORDER;
ACTION (MsgGet("Nombres","Buscar", @cSearch),;
cExp:=upper(AllTrim(cSearch))+"$Trim(EMPLOYEE->FIRST)+Trim(EMPLOYEE->LAST)"+;
"Trim(EMPLOYEE->STREET)",;
If(!oBrw:ExpLocate(cSearch),;
MsgStop("No hay ningún registro con los datos de busqueda",cSearch),nil));
TOOLTIP "Busqueda";
MESSAGE "Buscar nombres"


agradezco su ayuda de antemano.

Un saludo. Fernando González
Saludos. Fernando
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Busqueda en TSBrowse
Posted: Tue Apr 22, 2008 07:46 PM

Para D. Manuel MERCADO.

Mis problemas no se solucionan no soy capaza de que funcione el botón de búsqueda.

¿Podría ayudarme?

Un saludo.

Saludos. Fernando
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Busqueda en TSBrowse
Posted: Tue Apr 22, 2008 08:11 PM
fergonm wrote:Mis problemas no se solucionan no soy capaza de que funcione el botón de búsqueda.¿Podría ayudarme?


Hola Fernando, disculpa la tardanza, ando medio carrereado. Estoy tratando de preperarte un pequeño ejemplo para enviártelo.

Saludos.

Manuel Mercado
manuelmercado at prodigy dot net dot mx
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Busqueda en TSBrowse
Posted: Sat May 17, 2008 10:03 AM

Estimado Manuel.

He solucionado el problema con el método ExpSeek. Funciona correctamente.

El método ExpLocate he logrado un funcionamiento "Parcial", ya que busca y localiza en parte de las columnas, no en todas.

Utilizo dos tablas, Siniestro (padre) y Pólizas (Hija) relacionadas con SET RELATION y me temo que ese sea el posible error. Pero por otra parte en una columna de Siniestro no puedo buscar.

Otro tema, no encuentro la ayuda del método Proper, que lo utilizo para declarar las columnas de la tabla hija, ya que no se hacerlo con el método FieldWBlock.

Un saludo muy cordial.

Saludos. Fernando
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Busqueda en TSBrowse
Posted: Mon May 19, 2008 11:34 AM

Estimado Manuel:

Ya está solucionado el tema de la búsqueda y localizado el método Proper al final de la ayuda (eso pasa por no llegar la final). Todo el problema era creer que el funcionamiento era complicado. Al simplificar, salió.

Muchas gracias por la magnifica herramienta.

Un saludo.

Saludos. Fernando

Continue the discussion