Page 1 of 1

TSBROWSE 8 - Para Manuel Mercado

PostPosted: Sat Apr 12, 2008 6:08 pm
by Sdo
Olá, Sr. Manuel Mercado !

Através do codigo que me passou da pesquisa incremental estou tentando mostrar o registro pesquisado através de um SAY, porém quando apresento este registro ele sempre mostra o anterior ao posicionado no Browse. Como eu poderia apresenta-lo corretamente?
Mais uma vez obrigado e desculpe pelas perguntas. Segue abaixo a rotina.
//----------------------------------------------------------------------------//
#include "TSBrowse.ch"
#include "FiveWin.ch"
#include "\TSBUTTON\INCLUDE\TSButton.ch"
#define CLR_PINK nRGB( 255, 128, 128)

REQUEST DBFCDX

//----------------------------------------------------------------------------//

Function Main()

Local oBrw , otecla
PRIVATE cChav:="",oChar,cChar:=SPACE(25),cres:="",nsk:=1
Field First, Last

USE Employee SHARED NEW
Index On Trim( First ) + Space( 1 ) + Last Tag Name
Index On State Tag estado // CDX
DEFINE DIALOG oDlg RESOURCE "DIALOG_1"

REDEFINE BROWSE oBrw GRID ALIAS "Employee" ;
COLORS CLR_BLACK,CLR_PINK ID 110 OF oDlg

ADD COLUMN TO oBrw ;
HEADER "Name" SIZE 230 ;
ORDER "NAME";
DATA Trim( EMPLOYEE->FIRST ) + Space( 1 ) + EMPLOYEE->LAST
//
oBrw:SetIndexCols( 1 )
oBrw:lNoResetPos := .F.
oBrw:bKeyDown:={|nkey|VerTecla(nkey,oBrw)}
//
REDEFINE BUTTON ID 210 OF oDlg ACTION oDlg:End()
//
REDEFINE STSAY oChar VAR cChar ID 100 OF oDlg //;
REDEFINE STSAY oRes VAR cRes ID 4001 OF oDlg //;

ACTIVATE DIALOG oDlg CENTERED ;
ON PAINT oMsg := TMsgBar():New( oDlg, "TSBrowse El poder de las columnas." )

Return Nil
//----------------------------------------------------------------------------//
Function VerTecla(nkey,oBrw)
//----------------------------------------------------------------------------//
IF nKey==VK_BACK
IF LEN(cChav) > 0
cChav:=LEFT(cChav,LEN(cChav)-1)
cChar:=cChav
ELSE
cChar:=SPACE(25)
RETURN(.F.)
END
END
IF (nKey>=32 .AND. nKey<=255) .OR. nKey=VK_BACK
IF nKey!=VK_BACK
cChav+=CHR(nKey)
END
cres:=""
(*)-> cres:=ALLTRIM(SUBS(employee->first,LEN(ALLTRIM(cChav))-1))+ Space( 1 ) + EMPLOYEE->LAST //SUBS(first,LEN(ALLTRIM(cChav)))
(*)-> pega registro anterior a pesquisa.

END
IF nKey#VK_BACK
cChar:=IF(LEN(cChav)#0,cChav,SPACE(25))
END
oChar:Refresh()
oRes:Refresh()
RETURN(.T.)

Abraços !

Sergio....

PostPosted: Sat Apr 12, 2008 7:33 pm
by Sdo
EM TEMPO:

Como fazer para alterar a cor da header que esta o indice, ou seja, trocar a cor padrao ??

Grato !!!
Sergio

PostPosted: Sat Apr 12, 2008 10:10 pm
by mmercado
Hola Sergio:
Sdo wrote:Como fazer para alterar a cor da header que esta o indice, ou seja, trocar a cor padrao ??


Puedes hacerlo así:
Code: Select all  Expand view
oBrw:SetColor( { CLR_ORDF, CLR_ORDB }, { CLR_WHITE, CLR_GRAY } )


Saludos.

Manuel Mercado

PostPosted: Sun Apr 13, 2008 12:46 am
by Sdo
Sr.Manuel Mercado,

Puedes hacerlo así:
Code: Select all  Expand view
oBrw:SetColor( { CLR_ORDF, CLR_ORDB }, { CLR_WHITE, CLR_GRAY } )

perfeito, como sempre muito atencioso.

- Desculpe a insistencia, mas e quanto apresentar o registro corrente através de um SAY na pesquisa incremental, é possível ?

Mais uma vez obrigado e um grande abraço.

Sergio