viol Posted August 20, 2008 Report Share Posted August 20, 2008 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 Quote Link to comment Share on other sites More sharing options...
viol Posted August 20, 2008 Author Report Share Posted August 20, 2008 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 20, 2008 Report Share Posted August 20, 2008 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.