Jump to content
Fivewin Brasil

ORDWILDSEEK do XHARBOUR


viol

Recommended Posts

Jão, sei que vc tem participação nesse fonte, da outra ajuda. gostaria de usar com telas montada no WORKSHOP, como ficaria, não consegui... assinale em vermelho onde coloco as IDs

/*

//-> Id‚ia Original, By S‚rgio Oliveira - Personal -> Muito Boa

//-> Agradecimentos Especiais: Mister Paulo Ara£jo - contato@pleno.com.br

//

//-> Modificado em: 16/12/2006 - JoÆo Santos - SÆo Paulo - Brasil

//-> kapiaba@brfree.com.br - kmt_karinha@pop.com.br

//-> Para Usar o Comando: ORDWILDSEEK, Pegando Uma Palavra Chave, em Qualquer

//-> Parte do Banco de Dados - Exemplo: SABONETE LUX... Digito: LUX.

//-> Rotina Somente Para FiveWin 32 Bits For xHarbour.

//-> Coloquei o botÆo pr¢ximo para ir pegando o proximo registro que contenha a palavra

//-> Digitada. Cleiton 18/12/2006.

*/

#Include "FiveWin.Ch"

#Define CLR_LGREEN nRGB( 190, 215, 190 )

#Define CLR_LGRAY nRGB( 230, 230, 230 )

#Define CLR_VERMELHO nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra

#Define CLR_AMARELO nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo

STATIC lOpcaoRadio := 1

FUNCTION PESQUISA_NOME()

FIELD NOME

LOCAL oDlg, oLbx, oBrush, oFont, oRadio, oRadioMostra

LOCAL XNOMEC

MEMVAR oNome_Busca

MEMVAR oBotao

PRIVATE oBotao[4]

**----------------------------------------**

** Determina RDD de ARQUIVOS **

**----------------------------------------**

REQUEST DBFCDX

RDDSETDEFAULT("DBFCDX")

DBSETDRIVER("DBFCDX")

USE ARQUIVO VIA "DBFCDX"

INDEX ON NOME TAG "NOME" TO ARQUIVO

USE

DbSelectArea(0)

USE ARQUIVO INDEX ARQUIVO VIA "DBFCDX" ALIAS ARQUIVO

XNOMEC := SPACE(40)

DEFINE BRUSH oBrush FILE "COMPAR.BMP"

DEFINE FONT oFont NAME "Courier" SIZE 12, -10 WEIGHT 45 BOLD

//600

DEFINE DIALOG oDlg FROM 0,0 TO 280, 680 PIXEL ;

TITLE "Teste Com o Comando: ORDWILDSEEK do XHARBOUR" //;

* BRUSH oBrush TRANSPARENT

oDlg:lHelpIcon := .F.

Set( _SET_INSERT, ! Set( _SET_INSERT ) )

@ 004, 002 RADIO oRadioMostra VAR lOpcaoRadio ;

PIXEL SIZE 100, 10 OF oDlg

oRadio := TRadio():New( 04, 10, '&Normal ', ;

.T., ; // sempre o primeiro elemento recebe .t.

.T., ; // .t. = selecionado (Checked)

1, oDlg, oRadioMostra, , , , , .F., , ;

50, 10, , .F., .T. )

oRadioMostra:AddRadio( oRadio )

oRadio := TRadio():New( 04, 70, '&Interna ', ;

.F. , ;

.F. , ;

2, oDlg, oRadioMostra, , , , , .F., , ;

50, 10, , .F., .T. )

oRadioMostra:AddRadio( oRadio )

@ 005, 130 SAY "Buscar Por:" OF oDlg PIXEL SIZE 060, 012 ;

FONT oFont ;

COLORS CLR_VERMELHO, CLR_AMARELO

//-> Get Para Fazer a Busca do Que Quero Procurar

@ 005, 194 GET oNome_Busca VAR XNOMEC PICTURE "@K!" OF oDlg ;

PIXEL SIZE 130, 012 ;

FONT oFont ;

COLORS CLR_VERMELHO, CLR_AMARELO ;

ON CHANGE( CONTEUDO( oNome_Busca, nKey, oDlg, oLbx, XNOMEC ) )

@ 020, 010 LISTBOX oLbx FIELDS ARQUIVO->NOME Alias "ARQUIVO" ;

HEADERS "Nome" ;

PIXEL SIZE 320, 100 ;

FIELDSIZES 320 OF oDlg ;

FONT oFont

oLbx:nClrBackHead := CLR_LGREEN // Cor do Fundo do Cabe‡alho

oLbx:nClrBackFocus := CLR_HRED // Cor do Cursor Em Cima do Ötem

oLbx:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa

oLbx:nClrForeHead := CLR_HRED // Cor nos Headers - Cabe‡alhos

// Cor no Pano de Fundo da Browse() Listbox-Legal - abaixo o comando

oLbx:nClrPane := { || IIF( ARQUIVO->(OrdKeyNo()) % 2 == 0, ;

CLR_LGREEN, CLR_LGRAY ) } // cor do fundo

oLbx:aJustify := { .F. }

oLbx:nLineStyle := 3

oLbx:lCellStyle := .T. // S¢ Pinta a celula que o cursor est 

oLbx:lMChange := .F. // Desabilita Mousemove

oLbx:SetFocus() // Refocus on The Browse

oLbx:Refresh() // Estabiliza o Browse/Listbo

//-> Botäes

@ 123, 010 BUTTON oBotao[1] PROMPT "&A - Z" OF oDlg PIXEL ;

SIZE 050, 012 ;

ACTION( ARQUIVO->( OrdDescend(,, .F. ) ), ;

ARQUIVO->( DbGoTop() ), oLbx:Refresh(), ;

xFocus( oNome_Busca ) )

@ 123, 063 BUTTON oBotao[2] PROMPT "&Z - A" OF oDlg PIXEL ;

SIZE 050, 012 ;

ACTION( ARQUIVO->( OrdDescend(,, .T. ) ), ;

ARQUIVO->( DbGoTop()), oLbx:Refresh(), ;

xFocus( oNome_Busca ) )

@ 123, 116 BUTTON oBotao[3] PROMPT "&Saida " OF oDlg PIXEL ;

SIZE 050, 012 ;

ACTION( oDlg:End() ) CANCEL

@ 123, 176 BUTTON oBotao[4] PROMPT "&Pr¢ximo " OF oDlg PIXEL ;

SIZE 050, 012 ;

ACTION( PROXIMO_REGISTRO("ARQUIVO", XNOMEC, oLbx), xFocus(oNome_Busca) )

*CONTEUDO( oNome_Busca, nKey, oDlg, oLbx, XNOMEC ) )

*PROXIMO_REGISTRO( Arquivo, xNomec, oLbx )

//-> Fonte nos Botäes

SET FONT OF oBotao[1] TO oFont

SET FONT OF oBotao[2] TO oFont

SET FONT OF oBotao[3] TO oFont

ACTIVATE DIALOG oDlg CENTERED //RESIZE16

Set( _SET_INSERT, ! Set( _SET_INSERT ) )

oFont:End()

oBrush:End()

DbCloseAll()

RETURN NIL

// Busca o Conteudo do GET no Banco de Dados---------------------------------//

STATIC FUNCTION CONTEUDO( oGetBusca, cKey, oDlg, oLbx, XNOMEC )

LOCAL RetornaBusca := ""

MEMVAR oNome_Busca

MontaChaveBuscaArquivo( oGetBusca, cKey, oDlg, @RetornaBusca, oLbx )

//-> Original Antigo

//->ARQUIVO->( DBSEEK( ALLTRIM( RetornaBusca ) ) )

IF lOpcaoRadio=1 //-> Busca da Op‡Æo 1 do Radio Button

ARQUIVO->( DBSEEK( ALLTRIM( RetornaBusca ) ) )

ELSE //-> Busca da Op‡Æo 2 do Radio Button

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( RetornaBusca ) + "*", .F. ) )

ENDIF

oLbx:Refresh()

RETURN( .T. )

//-> Chave da Busca do GET do Nome do Cliente/Fornecedor---------------------//

STATIC FUNCTION MontaChaveBuscaArquivo( oGetBusca, cKey, oDlg, RetornaBusca )

Local cChaveBusca := ( oGetBusca:oGet:Buffer ), nPosAnt := Recno()

IF ( cKey != 7 .And. cKey != 8 )

cChaveBusca := Stuff( cChaveBusca, oGetBusca:nPos, ;

If( Set(_SET_INSERT), 0, 1 ), ;

Upper( Chr( cKey ) ) )

ENDIF

RetornaBusca := cChaveBusca

RETURN( RetornaBusca )

//-> Para Pegar o Proximo Registro no Banco de Dados-------------------------//

STATIC FUNCTION PROXIMO_REGISTRO( Arquivo, xNomec, oLbx )

SELECT( ARQUIVO )

IF lOpcaoRadio=1

ARQUIVO->( DBSEEK( ALLTRIM( XNOMEC ) ) )

IF EOF()

MsgInfo( "Fim do Arquivo dos Registros", "Aviso" )

DBGOTOP()

ENDIF

ELSE

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( XNOMEC ) + "*", .T. ) )

IF EOF()

MsgInfo( "Fim do Arquivo dos Registros", "Aviso" )

DBGOTOP()

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( XNOMEC ) + "*", .F. ) )

IF EOF()

DBGOTOP()

ENDIF

ENDIF

ENDIF

oLbx:Refresh()

RETURN( .T. )

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

// As vezes simples SetFocus( oObj ) nao faz um objeto ganhar foco

// neste caso pode apelar para estas duas funcoes a seguir

// For‡ar foco para um objeto especifico - Ednaldo Rolim...

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

STATIC FUNCTION xSetFocus( oObj )

LOCAL _oWnd := oObj:oWnd, _oTempo := ""

DEFINE Timer _oTempo Interval 10 of _oWnd ;

Action ( oObj:SetFocus(), _oTempo:End() )

ACTIVATE Timer _oTempo

RETURN( .T. )

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

STATIC FUNCTION xFocus( oObj )

xSetFocus( oObj )

xSetFocus( oObj )

RETURN( .T. )

// Fim do Programa-----------------------------------------------------------//

Viol

fivewin.jpg

Link to comment
Share on other sites

Jão, sei que vc tem participação nesse fonte, da outra ajuda. gostaria de usar com telas montada no WORKSHOP, como ficaria, não consegui... assinale em vermelho onde coloco as IDs

/*

//-> Id‚ia Original, By S‚rgio Oliveira - Personal -> Muito Boa

//-> Agradecimentos Especiais: Mister Paulo Ara£jo - contato@pleno.com.br

//

//-> Modificado em: 16/12/2006 - JoÆo Santos - SÆo Paulo - Brasil

//-> kapiaba@brfree.com.br - kmt_karinha@pop.com.br

//-> Para Usar o Comando: ORDWILDSEEK, Pegando Uma Palavra Chave, em Qualquer

//-> Parte do Banco de Dados - Exemplo: SABONETE LUX... Digito: LUX.

//-> Rotina Somente Para FiveWin 32 Bits For xHarbour.

//-> Coloquei o botÆo pr¢ximo para ir pegando o proximo registro que contenha a palavra

//-> Digitada. Cleiton 18/12/2006.

*/

#Include "FiveWin.Ch"

#Define CLR_LGREEN nRGB( 190, 215, 190 )

#Define CLR_LGRAY nRGB( 230, 230, 230 )

#Define CLR_VERMELHO nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra

#Define CLR_AMARELO nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo

STATIC lOpcaoRadio := 1

FUNCTION PESQUISA_NOME()

FIELD NOME

LOCAL oDlg, oLbx, oBrush, oFont, oRadio, oRadioMostra

LOCAL XNOMEC

MEMVAR oNome_Busca

MEMVAR oBotao

PRIVATE oBotao[4]

**----------------------------------------**

** Determina RDD de ARQUIVOS **

**----------------------------------------**

REQUEST DBFCDX

RDDSETDEFAULT("DBFCDX")

DBSETDRIVER("DBFCDX")

USE ARQUIVO VIA "DBFCDX"

INDEX ON NOME TAG "NOME" TO ARQUIVO

USE

DbSelectArea(0)

USE ARQUIVO INDEX ARQUIVO VIA "DBFCDX" ALIAS ARQUIVO

XNOMEC := SPACE(40)

DEFINE BRUSH oBrush FILE "COMPAR.BMP"

DEFINE FONT oFont NAME "Courier" SIZE 12, -10 WEIGHT 45 BOLD

//600

DEFINE DIALOG oDlg FROM 0,0 TO 280, 680 PIXEL ;

TITLE "Teste Com o Comando: ORDWILDSEEK do XHARBOUR" //;

* BRUSH oBrush TRANSPARENT

oDlg:lHelpIcon := .F.

Set( _SET_INSERT, ! Set( _SET_INSERT ) )

@ 004, 002 RADIO oRadioMostra VAR lOpcaoRadio ;

PIXEL SIZE 100, 10 OF oDlg

oRadio := TRadio():New( 04, 10, '&Normal ', ;

.T., ; // sempre o primeiro elemento recebe .t.

.T., ; // .t. = selecionado (Checked)

1, oDlg, oRadioMostra, , , , , .F., , ;

50, 10, , .F., .T. )

oRadioMostra:AddRadio( oRadio )

oRadio := TRadio():New( 04, 70, '&Interna ', ;

.F. , ;

.F. , ;

2, oDlg, oRadioMostra, , , , , .F., , ;

50, 10, , .F., .T. )

oRadioMostra:AddRadio( oRadio )

@ 005, 130 SAY "Buscar Por:" OF oDlg PIXEL SIZE 060, 012 ;

FONT oFont ;

COLORS CLR_VERMELHO, CLR_AMARELO

//-> Get Para Fazer a Busca do Que Quero Procurar

@ 005, 194 GET oNome_Busca VAR XNOMEC PICTURE "@K!" OF oDlg ;

PIXEL SIZE 130, 012 ;

FONT oFont ;

COLORS CLR_VERMELHO, CLR_AMARELO ;

ON CHANGE( CONTEUDO( oNome_Busca, nKey, oDlg, oLbx, XNOMEC ) )

@ 020, 010 LISTBOX oLbx FIELDS ARQUIVO->NOME Alias "ARQUIVO" ;

HEADERS "Nome" ;

PIXEL SIZE 320, 100 ;

FIELDSIZES 320 OF oDlg ;

FONT oFont

oLbx:nClrBackHead := CLR_LGREEN // Cor do Fundo do Cabe‡alho

oLbx:nClrBackFocus := CLR_HRED // Cor do Cursor Em Cima do Ötem

oLbx:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa

oLbx:nClrForeHead := CLR_HRED // Cor nos Headers - Cabe‡alhos

// Cor no Pano de Fundo da Browse() Listbox-Legal - abaixo o comando

oLbx:nClrPane := { || IIF( ARQUIVO->(OrdKeyNo()) % 2 == 0, ;

CLR_LGREEN, CLR_LGRAY ) } // cor do fundo

oLbx:aJustify := { .F. }

oLbx:nLineStyle := 3

oLbx:lCellStyle := .T. // S¢ Pinta a celula que o cursor est 

oLbx:lMChange := .F. // Desabilita Mousemove

oLbx:SetFocus() // Refocus on The Browse

oLbx:Refresh() // Estabiliza o Browse/Listbo

//-> Botäes

@ 123, 010 BUTTON oBotao[1] PROMPT "&A - Z" OF oDlg PIXEL ;

SIZE 050, 012 ;

ACTION( ARQUIVO->( OrdDescend(,, .F. ) ), ;

ARQUIVO->( DbGoTop() ), oLbx:Refresh(), ;

xFocus( oNome_Busca ) )

@ 123, 063 BUTTON oBotao[2] PROMPT "&Z - A" OF oDlg PIXEL ;

SIZE 050, 012 ;

ACTION( ARQUIVO->( OrdDescend(,, .T. ) ), ;

ARQUIVO->( DbGoTop()), oLbx:Refresh(), ;

xFocus( oNome_Busca ) )

@ 123, 116 BUTTON oBotao[3] PROMPT "&Saida " OF oDlg PIXEL ;

SIZE 050, 012 ;

ACTION( oDlg:End() ) CANCEL

@ 123, 176 BUTTON oBotao[4] PROMPT "&Pr¢ximo " OF oDlg PIXEL ;

SIZE 050, 012 ;

ACTION( PROXIMO_REGISTRO("ARQUIVO", XNOMEC, oLbx), xFocus(oNome_Busca) )

*CONTEUDO( oNome_Busca, nKey, oDlg, oLbx, XNOMEC ) )

*PROXIMO_REGISTRO( Arquivo, xNomec, oLbx )

//-> Fonte nos Botäes

SET FONT OF oBotao[1] TO oFont

SET FONT OF oBotao[2] TO oFont

SET FONT OF oBotao[3] TO oFont

ACTIVATE DIALOG oDlg CENTERED //RESIZE16

Set( _SET_INSERT, ! Set( _SET_INSERT ) )

oFont:End()

oBrush:End()

DbCloseAll()

RETURN NIL

// Busca o Conteudo do GET no Banco de Dados---------------------------------//

STATIC FUNCTION CONTEUDO( oGetBusca, cKey, oDlg, oLbx, XNOMEC )

LOCAL RetornaBusca := ""

MEMVAR oNome_Busca

MontaChaveBuscaArquivo( oGetBusca, cKey, oDlg, @RetornaBusca, oLbx )

//-> Original Antigo

//->ARQUIVO->( DBSEEK( ALLTRIM( RetornaBusca ) ) )

IF lOpcaoRadio=1 //-> Busca da Op‡Æo 1 do Radio Button

ARQUIVO->( DBSEEK( ALLTRIM( RetornaBusca ) ) )

ELSE //-> Busca da Op‡Æo 2 do Radio Button

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( RetornaBusca ) + "*", .F. ) )

ENDIF

oLbx:Refresh()

RETURN( .T. )

//-> Chave da Busca do GET do Nome do Cliente/Fornecedor---------------------//

STATIC FUNCTION MontaChaveBuscaArquivo( oGetBusca, cKey, oDlg, RetornaBusca )

Local cChaveBusca := ( oGetBusca:oGet:Buffer ), nPosAnt := Recno()

IF ( cKey != 7 .And. cKey != 8 )

cChaveBusca := Stuff( cChaveBusca, oGetBusca:nPos, ;

If( Set(_SET_INSERT), 0, 1 ), ;

Upper( Chr( cKey ) ) )

ENDIF

RetornaBusca := cChaveBusca

RETURN( RetornaBusca )

//-> Para Pegar o Proximo Registro no Banco de Dados-------------------------//

STATIC FUNCTION PROXIMO_REGISTRO( Arquivo, xNomec, oLbx )

SELECT( ARQUIVO )

IF lOpcaoRadio=1

ARQUIVO->( DBSEEK( ALLTRIM( XNOMEC ) ) )

IF EOF()

MsgInfo( "Fim do Arquivo dos Registros", "Aviso" )

DBGOTOP()

ENDIF

ELSE

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( XNOMEC ) + "*", .T. ) )

IF EOF()

MsgInfo( "Fim do Arquivo dos Registros", "Aviso" )

DBGOTOP()

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( XNOMEC ) + "*", .F. ) )

IF EOF()

DBGOTOP()

ENDIF

ENDIF

ENDIF

oLbx:Refresh()

RETURN( .T. )

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

// As vezes simples SetFocus( oObj ) nao faz um objeto ganhar foco

// neste caso pode apelar para estas duas funcoes a seguir

// For‡ar foco para um objeto especifico - Ednaldo Rolim...

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

STATIC FUNCTION xSetFocus( oObj )

LOCAL _oWnd := oObj:oWnd, _oTempo := ""

DEFINE Timer _oTempo Interval 10 of _oWnd ;

Action ( oObj:SetFocus(), _oTempo:End() )

ACTIVATE Timer _oTempo

RETURN( .T. )

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

STATIC FUNCTION xFocus( oObj )

xSetFocus( oObj )

xSetFocus( oObj )

RETURN( .T. )

// Fim do Programa-----------------------------------------------------------//

Viol

fivewin.jpg

Link to comment
Share on other sites

Simples,


#Include "FiveWin.Ch"

#Define CLR_LGREEN nRGB( 190, 215, 190 )

#Define CLR_LGRAY nRGB( 230, 230, 230 )

#Define CLR_VERMELHO nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra

#Define CLR_AMARELO nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo

STATIC lOpcaoRadio := 1

FUNCTION PESQUISA_NOME()

FIELD NOME

LOCAL oDlg, oLbx, oBrush, oFont, oRadio, oRadioMostra, oSay

LOCAL XNOMEC

MEMVAR oNome_Busca

MEMVAR oBotao

oBotao := ARRAY(6)

**----------------------------------------**

** Determina RDD de ARQUIVOS **

**----------------------------------------**

REQUEST DBFCDX

RDDSETDEFAULT("DBFCDX")

DBSETDRIVER("DBFCDX")

USE ARQUIVO VIA "DBFCDX"

INDEX ON NOME TAG "NOME" TO ARQUIVO

USE

DbSelectArea(0)

USE ARQUIVO INDEX ARQUIVO VIA "DBFCDX" ALIAS ARQUIVO

XNOMEC := SPACE(40)

DEFINE BRUSH oBrush FILE "COMPAR.BMP"

DEFINE FONT oFont NAME "Courier" SIZE 12, -10 WEIGHT 45 BOLD

DEFINE DIALOG oDlg RESOURCE "ORDWILDSEEK" ;

TITLE "Teste Com o Comando: ORDWILDSEEK do XHARBOUR"

oDlg:lHelpIcon := .F.

REDEFINE RADIO oRadioMostra VAR lOpcaoRadio ID 201, 202 OF oDlg ;

COLOR CLR_BROWN, CLR_LGREEN /* ;

ON CHANGE( TROCA_INDICE( nOpcaoRadio, DbClientes, oLbx ), ;

oLbx:GoTop(), oLbx:SetFocus(), oLbx:Refresh(), ;

XNOMEC := SPACE(40), xFocus( oNome_Busca ), ;

oNome_Busca:bGotFocus := { || oNome_Busca:SetPos( 1 ), Nil } )

*/

REDEFINE SAY oSay PROMPT OemToAnsi( "Buscar Por:" ) OF oDlg ID 401 ;

FONT oFont COLORS CLR_VERMELHO, CLR_AMARELO

Set( _SET_INSERT, ! Set( _SET_INSERT ) )

//-> Get Para Fazer a Busca do Que Quero Procurar

REDEFINE GET oNome_Busca VAR XNOMEC PICTURE "@K!" OF oDlg ;

ID 20 FONT oFont COLORS CLR_VERMELHO, CLR_AMARELO ;

ON CHANGE( CONTEUDO( oNome_Busca, nKey, oDlg, oLbx, XNOMEC ) )

REDEFINE LISTBOX oLbx FIELDS ARQUIVO->NOME Alias "ARQUIVO" ;

HEADERS "Nome" ;

FIELDSIZES 320 OF oDlg ID 101 ;

FONT oFont

oLbx:nClrBackHead := CLR_LGREEN // Cor do Fundo do Cabe‡alho

oLbx:nClrBackFocus := CLR_HRED // Cor do Cursor Em Cima do Ötem

oLbx:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa

oLbx:nClrForeHead := CLR_HRED // Cor nos Headers - Cabe‡alhos

// Cor no Pano de Fundo da Browse() Listbox-Legal - abaixo o comando

oLbx:nClrPane := { || IIF( ARQUIVO->(OrdKeyNo()) % 2 == 0, ;

CLR_LGREEN, CLR_LGRAY ) } // cor do fundo

oLbx:aJustify := { .F. }

oLbx:nLineStyle := 3

oLbx:lCellStyle := .T. // S¢ Pinta a celula que o cursor est

oLbx:lMChange := .F. // Desabilita Mousemove

oLbx:SetFocus() // Refocus on The Browse

oLbx:Refresh() // Estabiliza o Browse/Listbo

//-> Botäes

REDEFINE BUTTON oBotao[1] PROMPT "&A - Z" OF oDlg ;

ID 301 ;

ACTION( ARQUIVO->( OrdDescend(,, .F. ) ), ;

ARQUIVO->( DbGoTop() ), oLbx:Refresh(), ;

xFocus( oNome_Busca ) )

REDEFINE BUTTON oBotao[2] PROMPT "&Z - A" OF oDlg ;

ID 302 ;

ACTION( ARQUIVO->( OrdDescend(,, .T. ) ), ;

ARQUIVO->( DbGoTop()), oLbx:Refresh(), ;

xFocus( oNome_Busca ) )

REDEFINE BUTTON oBotao[3] PROMPT "&Saida " OF oDlg ;

ID 303 ;

ACTION( oDlg:End() ) CANCEL

REDEFINE BUTTON oBotao[4] PROMPT "&Anterior" OF oDlg ;

ID 304 ;

ACTION( ANTERIOR_REGISTRO("ARQUIVO", XNOMEC, oLbx), ;

xFocus(oNome_Busca) )

REDEFINE BUTTON oBotao[5] PROMPT "&Pr¢ximo " OF oDlg ;

ID 305 ;

ACTION( PROXIMO_REGISTRO("ARQUIVO", XNOMEC, oLbx), ;

xFocus(oNome_Busca) )

//-> Fonte nos Botäes

SET FONT OF oBotao[1] TO oFont

SET FONT OF oBotao[2] TO oFont

SET FONT OF oBotao[3] TO oFont

ACTIVATE DIALOG oDlg CENTERED

Set( _SET_INSERT, ! Set( _SET_INSERT ) )

oFont:End()

oBrush:End()

DbCloseAll()

Release All

RETURN NIL

// Busca o Conteudo do GET no Banco de Dados---------------------------------//

STATIC FUNCTION CONTEUDO( oGetBusca, cKey, oDlg, oLbx, XNOMEC )

LOCAL RetornaBusca := ""

MEMVAR oNome_Busca

MontaChaveBuscaArquivo( oGetBusca, cKey, oDlg, @RetornaBusca, oLbx )

//-> Original Antigo

//->ARQUIVO->( DBSEEK( ALLTRIM( RetornaBusca ) ) )

IF lOpcaoRadio=1 //-> Busca da Op‡Æo 1 do Radio Button

ARQUIVO->( DBSEEK( ALLTRIM( RetornaBusca ) ) )

ELSE //-> Busca da Op‡Æo 2 do Radio Button

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( RetornaBusca ) + "*", .F. ) )

ENDIF

oLbx:Refresh()

RETURN( .T. )

//-> Chave da Busca do GET do Nome do Cliente/Fornecedor---------------------//

STATIC FUNCTION MontaChaveBuscaArquivo( oGetBusca, cKey, oDlg, RetornaBusca )

Local cChaveBusca := ( oGetBusca:oGet:Buffer ), nPosAnt := Recno()

IF ( cKey != 7 .And. cKey != 8 )

cChaveBusca := Stuff( cChaveBusca, oGetBusca:nPos, ;

If( Set(_SET_INSERT), 0, 1 ), ;

Upper( Chr( cKey ) ) )

ENDIF

RetornaBusca := cChaveBusca

RETURN( RetornaBusca )

//-> Para Pegar o Proximo Registro no Banco de Dados-------------------------//

STATIC FUNCTION PROXIMO_REGISTRO( Arquivo, xNomec, oLbx )

SELECT( ARQUIVO )

IF lOpcaoRadio=1

ARQUIVO->( DBSEEK( ALLTRIM( XNOMEC ) ) )

IF EOF()

MsgInfo( "Fim do Arquivo dos Registros", "Aviso" )

DBGOTOP()

ENDIF

ELSE

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( XNOMEC ) + "*", .T. ) )

IF EOF()

MsgInfo( "Fim do Arquivo dos Registros", "Aviso" )

DBGOTOP()

ARQUIVO->( ORDWILDSEEK( "*" + ALLTRIM( XNOMEC ) + "*", .F. ) )

IF EOF()

DBGOTOP()

ENDIF

ENDIF

ENDIF

oLbx:Refresh()

RETURN( .T. )

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

// As vezes simples SetFocus( oObj ) nao faz um objeto ganhar foco

// neste caso pode apelar para estas duas funcoes a seguir

// For‡ar foco para um objeto especifico - Ednaldo Rolim...

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

STATIC FUNCTION xSetFocus( oObj )

LOCAL _oWnd := oObj:oWnd, _oTempo := ""

DEFINE Timer _oTempo Interval 10 of _oWnd ;

Action ( oObj:SetFocus(), _oTempo:End() )

ACTIVATE Timer _oTempo

RETURN( .T. )

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

STATIC FUNCTION xFocus( oObj )

xSetFocus( oObj )

xSetFocus( oObj )

RETURN( .T. )

// Fim do Programa-----------------------------------------------------------//

id=code>id=code>

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...