Página 1 de 1

Como mostrar Instrução ao usuário em um Get?

Enviado: 22 Dez 2004 16:35
por Marcos
Olá a todos, estou com um problema, preciso mostrar uma dica, instrução ou sugestão ao usuário de acordo com a movimentação sobre os GET'S, ou seja, conforme o usuário vai preenchendo o Cadastro, em cada get mostre a forma correta de preencher o GET, já vi algumas funções (DICATST), mas o problema é que muitas vezes a dica dará mais do que 1 linha.
Grato pela atenção, e pelas ajudas que vocês puderem fornecer.
Abraços,
Marcos.

Enviado: 22 Dez 2004 18:02
por Clipper
Prezado Colega

Você poderia usar a claúsula WHEN para isso, exemplo :

Código: Selecionar todos

WPROD=SPACE(40)
@ 02,00 SAY "Produto : " GET WPROD WHEN DICA()
READ
RETURN

FUNCTION DICA()
IF READVAR()=="WPROD"
    @ 24,00 say "Digite neste campo o nome do produto !"
ENDIF
RETURN
Até logo.

Marcelo

como colocar mensagem ao usuário em um get.

Enviado: 22 Dez 2004 21:05
por Dorival
Marcos, eu uso da maneira abaixo, se te ajudar, inclua em seus programas.

Na abertura da tela onde vão ocorrer os gets, salvo a área das mensagens com

TelaMens:=savescreen(22,0,24,79)
Crie uma procedure chamada MensGet()

entro na rotina de gets,e em cada get faço da seguinte forma:

@ 10,20 get npedido pict '9999' valid(npedido>0) when MensGet('Digite o número do pedido, campo de 4 dígitos')

@ 11,20 get codprod pict '999999' valid(codprod>0) when MensGet('Digite o código do produto, campo de 6 dígitos')

@ 12,20 get prod pict '@!' valid(! empty(prod)) when MensGet('Digite a descrição do produto, campo com 30 caracteres')

read
restscreen(22,0,24,79,TelaMens)
sempre após um read restaure a tela

e assim vai até o final dos gets.

procedure MensGet(texto)
restscreen(22,0,24,79,TelaMens)
setcolor(cores) //->Salva as cores em uso
texto1:=len(texto)
ci:=(80-texto1)/2-1
cf:=ci+texto1+1
set color to w+/rb,n/w //->Escreve branco intenso sobre magenta, e preto sobre branco para video realçado.
@ 22,ci clear to 24,cf
@ 22,ci to 24,cf double
@ 23,ci+1 say texto
setcolor(cores) //->restaura as cores padrão.

Dorival

Enviado: 22 Dez 2004 21:26
por Poka
outro exemplo :

vcodigo:=0
vnome:=spac(40)
@ 10,10 say "Codigo: " get vcodigo pict"999";
when limpa() .and. msg(" Digite o codigo do cliente",maxrow())

@ 12,10 say "Nome : " get vnome pict"@!x";
when limpa() .and. msg("Digite o nome do cliente",maxrow()-1);
.and. msg("por favor nao acentue",maxrow())

read

retu nil
//////////////
func msg(mensagem,linha)
@ linha,00 say padc(mensagem,maxcol())
retu .t.
///////////////
funct limpa
@ maxrow()-1,00 clear to maxrow()
retu .t.

Enviado: 22 Dez 2004 22:44
por Poka
//corrigindo a funcao limpa

func limpa
@ maxrow()-1,00 clear to maxrow(),maxcol()
retu .t.

Funcionou.

Enviado: 23 Dez 2004 12:05
por Marcos
Obrigado a todos que me ajudaram com as sugestões, pois meu problema foi resolvido com estas.
Abraços
Marcos.