Olá a todos do fórum, uma vez em uma loja eu vi um programa em clipper que tinha Auto Completes, ou seja, o operador iniciava a digitação e o sistema completava, isto é possivel em Clipper? Como fazer?
Pois eu acredito que facilita muito a vida do digitador, pense em preenchimentos de Cadastros (Clientes, fornecedores nome de ruas e endereçamento e etc).
Abraços,
Marcos.
Auto Completes.
Moderador: Moderadores
-
evolver
- Membro Master

- Mensagens: 189
- Registrado em: 28 Ago 2004 01:02
- Localização: Cruz Alta - RS
- Contato:
Favor evitar flood desnecessário, aqui todas as mensagens são lidas por muita gente, se ninguem respondeu é porque até agora ninguem viu ou desenvolveu algo do gênero. Outros podem até estar fazendo pesquisas com amigos pra ver se sabem de algo.
Agora ficar postando seguidamente não ajuda nem um pouco alem de botar pressão em cima de um pessoal que colabora de bom grado.
Eu mesmo em meus muitos anos de clipper nunca vi nada assim.
Agora ficar postando seguidamente não ajuda nem um pouco alem de botar pressão em cima de um pessoal que colabora de bom grado.
Eu mesmo em meus muitos anos de clipper nunca vi nada assim.
Sergio "Evolver" Fagundes
CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Bom Dia.
Provavelmente vc viu alguma função com uma rotina parecida com uma pesquisa pesquisa incremental só que mostrava o valor mais próximo na mesma linha do get.
Provavelmente vc viu alguma função com uma rotina parecida com uma pesquisa pesquisa incremental só que mostrava o valor mais próximo na mesma linha do get.
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
Tente assim, vc só vai precisar indicar a posição do get e cores.
@ 14,10 SAY "Descrição:" GET cDESCRICAO PICT "@!@K" WHEN BUSCANOME()
FUNCTION BUSCANOME
LOCAL tam, buf, get, pos, lin, col, tec
DBSETORDER( seu indice )
get := GETACTIVE()
lin := get:row
col := get:col
buf := get:VarGet()
tam := LEN(buf)
pos := 1
SETCOLOR( cores para limpar o get )
@ lin,col CLEAR TO lin,col // posição do seu get na tela
DO WHILE .T.
@ lin,col CLEAR TO lin,col // posição do seu get na tela
SETPOS(lin, col)
DISPOUT(buf)
SETCOLOR( cores do seu get )
SETPOS(lin, col - 1 + pos)
tec := INKEY(0)
IF tec >= 32 .AND. tec <= 255
TEC := ASC( UPPER( CHR( TEC )))
buf := LEFT(buf, pos - 1) + CHR(tec) + SUBS(buf, pos + 1)
IF DBSEEK(LEFT(buf, pos), .T.)
buf := LEFT(&(INDEXKEY(0)), tam)
ELSE
buf := LEFT(buf, pos) + SPACE( TAM - POS)
ENDIF
pos := MIN(tam, pos + 1)
ELSEIF tec == K_LEFT
pos := MAX(1, pos - 1)
ELSEIF tec == K_RIGHT
pos := MIN(tam, pos + 1)
ELSEIF tec == K_HOME
pos := 1
ELSEIF tec == K_END
pos := MIN(tam, LEN(TRIM(buf)) + 1)
ELSEIF tec == K_BS
IF pos > 1
pos --
buf := LEFT(buf, pos - 1) + SUBS(buf, pos + 1) + " "
ENDIF
ELSE
KEYB CHR(tec)
get:VarPut(buf)
get:UpdateBuffer()
DBSETORDER()
RETURN .T.
ENDIF
ENDDO
@ 14,10 SAY "Descrição:" GET cDESCRICAO PICT "@!@K" WHEN BUSCANOME()
FUNCTION BUSCANOME
LOCAL tam, buf, get, pos, lin, col, tec
DBSETORDER( seu indice )
get := GETACTIVE()
lin := get:row
col := get:col
buf := get:VarGet()
tam := LEN(buf)
pos := 1
SETCOLOR( cores para limpar o get )
@ lin,col CLEAR TO lin,col // posição do seu get na tela
DO WHILE .T.
@ lin,col CLEAR TO lin,col // posição do seu get na tela
SETPOS(lin, col)
DISPOUT(buf)
SETCOLOR( cores do seu get )
SETPOS(lin, col - 1 + pos)
tec := INKEY(0)
IF tec >= 32 .AND. tec <= 255
TEC := ASC( UPPER( CHR( TEC )))
buf := LEFT(buf, pos - 1) + CHR(tec) + SUBS(buf, pos + 1)
IF DBSEEK(LEFT(buf, pos), .T.)
buf := LEFT(&(INDEXKEY(0)), tam)
ELSE
buf := LEFT(buf, pos) + SPACE( TAM - POS)
ENDIF
pos := MIN(tam, pos + 1)
ELSEIF tec == K_LEFT
pos := MAX(1, pos - 1)
ELSEIF tec == K_RIGHT
pos := MIN(tam, pos + 1)
ELSEIF tec == K_HOME
pos := 1
ELSEIF tec == K_END
pos := MIN(tam, LEN(TRIM(buf)) + 1)
ELSEIF tec == K_BS
IF pos > 1
pos --
buf := LEFT(buf, pos - 1) + SUBS(buf, pos + 1) + " "
ENDIF
ELSE
KEYB CHR(tec)
get:VarPut(buf)
get:UpdateBuffer()
DBSETORDER()
RETURN .T.
ENDIF
ENDDO

