Page 1 of 1

Busqueda en TSBrowse

PostPosted: Fri Apr 18, 2008 11:14 am
by fergonm
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.

Re: Busqueda en TSBrowse

PostPosted: Fri Apr 18, 2008 3:03 pm
by mmercado
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:
Code: Select all  Expand view
   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

PostPosted: Fri Apr 18, 2008 5:06 pm
by fergonm
Muchas gracias D. Manuel. Lo probaré

Un cordial saludo desde Zaragoza

PostPosted: Mon Apr 21, 2008 3:07 pm
by fergonm
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

PostPosted: Tue Apr 22, 2008 7:46 pm
by fergonm
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.

PostPosted: Tue Apr 22, 2008 8:11 pm
by mmercado
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

PostPosted: Sat May 17, 2008 10:03 am
by fergonm
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.

PostPosted: Mon May 19, 2008 11:34 am
by fergonm
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.