Jump to content
Fivewin Brasil

Orlando FMC

Membros
  • Posts

    208
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Orlando FMC

  1. karinh A rotina ê esta que está no forum. Tenho usado muito, e me atende perfeitamente e com precisao. Como disse, já a uzava a anos no clipper. Se nao conseguir faze-la funcionar, me retorne. Em breve estarei transformando-a em função, para ser usada com parametros. Orlando orlandofmc@bol.com.br
  2. /* PESQUISA INCREMENTAL - por Orlando Felipe Martins da Costa orlandofmc@bol.com.br Nova Era - MG - Brasil - Original do Clipper, adaptado para o FiveWin em 02/01/2003 - Criticas serao sempre bem vindas. Ajude-nos a melhorar esta rotina. - Nao aceita caracteres acentuados e cedilhas. Podemos melhorar isto? - Copie para a mesma pasta o arquivo de dados CUSTOMER.DBF do samples, ou adapte a rotina para seus arquivos. */ #include "FiveWin.ch" #include "TCBrowse.ch" *#include "TSBrowse.ch" //=========================================================================== FUNCTION MAIN() USE CUSTOMER ALIAS "CUSTOMER" SET FILTER TO !EMPTY(FIRST) If !FILE("CUSTOMER.NTX") INDEX ON UPPER(FIRST) TO CUSTOMER ENDIF SET INDEX TO CUSTOMER.NTX DEFINE WINDOW oWnd FROM 0, 0 TO 29, 78 TITLE FWVERSION + " - Browse Para Busca Incremental - orlandofmc@bol.com.br" MENU BuildMenu() SET MESSAGE OF oWnd TO "orlandofmc@bol.com.br" CLOCK DATE KEYBOARD CENTERED @ 03,10 SAY oS1 PROMPT FIRST SIZE 400,16 COLOR "B/W+" OF oWnd UPDATE ACTIVATE WINDOW oWnd MAXIMIZED // ON INIT PESQUISA(oWnd) CLOSE DATABASES RETURN NIL //=========================================================================== FUNCTION BUILDMENU() LOCAL oMenu MENU oMenu MENUITEM "&PESQUISA - Alt+F5" ; ACCELERATOR ACC_ALT, VK_F5 ; ACTION PESQUISA(oWnd),oWnd:UPDATE() ; MESSAGE "Executa o Browse da Pesquisa Incremental" MENUITEM "&Registro" ; ACTION MsgInfo(FIRST) ; MESSAGE "Mostra o registro atual" MENUITEM "&Fim" ; ACTION oWnd:End() ; MESSAGE "Sai do Programa" ENDMENU RETURN oMenu //=========================================================================== FUNCTION PESQUISA(oWnd) LOCAL oBrw, oFont1 PUBLIC cPesq:="" PRIVATE oDlg, OldRecno:=RECNO() DEFINE FONT oFont1 NAME "Courier New" SIZE 0,16 BOLD DEFINE DIALOG oDlg FROM 5,5 TO 350, 620 OF oWnd ; TITLE "Pesquisa Incremental - Por OrlandoFMC" PIXEL ODLG:LHELPICON := .F. // Desliga a "?" da Caixa de Dialogo. cPesq="" ; cPos="|" DEFINE FONT oFntTimes NAME "Times New Roman" SIZE 0,-12 @ 165,40 SAY "Para localizar, digite as letras iniciais. - [backSpace] para corrigir." PIXEL FONT oFntTimes; COLOR RGB(000,000,255) // AZUL @ 21 , 32.5 SAY oSay3 PROMPT cPOS SIZE 180,07 COLOR "r+/W" UPDATE PIXEL @ 18 , 33.9 SAY oSay1 PROMPT cPesq SIZE 180,08 COLOR "N+/W*" UPDATE PIXEL @ 28 , 01 COLUMN BROWSE oBrw OF oDlg ; SIZE 300, 135 ; ON DBLCLICK oDlg:End(); MESSAGE "Para localizar, digite as letras iniciais. - [backSpace] para corrigir." ; Alias "CUSTOMER" COLOR "N/W" PIXEL obrw:bKeyDown :={|nKey,nFlags| Incremental(nKey,"CUSTOMER",oBrw,oSay1,oSay3,oDlg)} oBrw:cOrderType:= "C" oBrw:aJustify := {.T., .T.} // Justifica os Cabe‡alhos Esq. .T. =Centro oBrw:nFreeze := 1 ADD COLUMN TO BROWSE oBrw DATA Recno() SIZE 60 NOBAR CENTER ; HEADER "Registro" ADD COLUMN TO BROWSE oBrw DATA CUSTOMER->FIRST SIZE 100 ; HEADER "Nome " @ 03, 33 BUTTON oBtn1 PROMPT "&OK = [ENTER]" OF oDlg SIZE 150,11 ACTION oDlg:End() ; MESSAGE "C o n f i r m a a p e s q u i s a" PIXEL oBtn1:ctooltip:=OemToAnsi("Confirma a pesquisa") @ 03,210 BUTTON oBtn2 PROMPT "&Cancela = [ESC]" OF oDlg SIZE 58,09 ACTION {||DBGOTO(OldRecno), oDlg:End()} ; MESSAGE "C a n c e l a a p e s q u i s a" PIXEL oBtn2:ctooltip:=OemToAnsi("Cancela a pesquisa") @ 03,275 BUTTON oBtn3 PROMPT "&Help" OF oDlg SIZE 22,09 ; MESSAGE "A j u d a p a r a a p e s q u i s a" PIXEL ; ACTION {||MSGINFO(; OemToAnsi('- OP€åES para localizar:')+CRLF+CRLF+; OemToAnsi(' 1¦) PESQUISA INCREMENTAL:')+CRLF+; OemToAnsi(' A cada letra digitada, o cursor, em azul, ir se aproximando do nome procurado.')+CRLF+; OemToAnsi(' Em geral, bastam 3 ou 4 letras, e o nome estar vis¡vel na janela.')+CRLF+; OemToAnsi(' Enquanto se digita, o texto vai sendo visualizado na etiqueta branca. Um pequeno')+CRLF+; OemToAnsi(' tra‡o vermelho sob a mesma indica a posi‡Æo do cursor na digita‡Æo.')+CRLF+; OemToAnsi(' Use BackSpace para corrigir erros ao digitar.')+CRLF+CRLF+; OemToAnsi(' 2¦) SETAS ACIMA e ABAIXO, PgUp e PgDw.')+CRLF+CRLF+; OemToAnsi(' 3¦) Usando o mouse sobre a BARRA DE ROLAGEM VERTICAL … direita.')+CRLF+CRLF+; OemToAnsi('- Ap¢s logalizado o nome, pressione o botÆo "OK" ou a tecla "ENTER" ou "Alt+O",')+CRLF+; OemToAnsi(' ou dˆ um DUPLO-CLIQUE sobre o nome selecionado.')+CRLF+CRLF+; OemToAnsi('- Se desistir da pesquisa, pressione o botÆo "CANCELA" ou a tecla "ESC" ou "Alt+C".')+CRLF+CRLF; ,OemToAnsi('Como pesquisar:')),; oBrw:SetFocus } oBtn3:ctooltip:=OemToAnsi("Ajuda a pesquisa") SET FONT OF oBrw TO oFont1 SET FONT OF oDlg TO oFont1 ACTIVATE DIALOG oDlg CENTERED oWnd:UPDATE() RETURN NIL //=========================================================================== FUNCTION INCREMENTAL(nKey, Alias, oBrw, oSay1, oSay3, oDlg) DO CASE CASE nKey = VK_ESCAPE GO OldRecno ; oWnd:UPDATE() ; oDlg:End() ; RETURN .T. CASE nKey = 13 oWnd:UPDATE() ; oDlg:End() ; RETURN .T. CASE nKey=8 // backspace If Len(cPesq) > 0 cPesq:=Left(cPesq,Len(cPesq)-1) Endif * CASE (nKey>=32 .and. nKey<=150) CASE (nKey>=48 .and. nKey<=122) .OR. nKey=32 * CASE (nKey>=48 .and. nKey<=150) .OR. nKey=32 .OR. nKey=199 .OR. nKey=135 cPesq+=(CHR(nKey)) OTHERWISE ; RETURN .T. ENDCASE cPesq=LEFT(cPesq,LEN(FIRST)) cPOS=SPACE(LEN(cPesq))+"|" SEEK cPesq SOFTSEEK oBrw:REFRESH() odlg:UPDATE() oSay3:cTitle(cPos) oSay1:cTitle(cPesq) RETURN .T. //===========================================================================
  3. Caros Colegas, Como ficaria o codigo abaixo em FiveWin? Preciso identificar os gets atuais nas funcoes ENTRADA e SAIDA, ao entrar e ao sair de cada GET. No clipper isto era resolvido facilmente com o READVAR, mas no FiveWin nao funciona. .... NOME=SPACE(45) ENDERECO=SPACE(50) .... ALTERA() RETURN .T. FUNCTION ALTERA() @ 02,10 GET NOME WHEN ENTRADA() VALID SAIDA() @ 03,10 GET ENDERECO WHEN ENTRADA() VALID SAIDA() RETURN .T. FUNCTION ENTRADA() DO CASE CASE READVAR()="NOME" @ 00,00 SAY .... ... CASE READVAR()="ENDERECO" @ 00,00 SAY .... ... ENDCASE RETURN .T.
  4. Como faço para abrir arquivos com a extensao .DAT? São arquivos binários? Como abrir os binários?
  5. Caros colegas, Sou calouro no FiveWin. Como fazer para evitar a mensagem da versao demo solicitando a versao comercial? Nao consigo entrar no site www.sp-editores.es/fivewin. Obrigado orlandofmc@bol.com.br
×
×
  • Create New...