Página 1 de 1

gets com pontos

Enviado: 18 Jan 2006 20:34
por Glauco Cruz Costa
Tô precisando saber se é possível colocar nos gets uns pontinhos, mas que não sejam incluidos na hora de gravar os dados.
É mais ou menos assim:
[..................]
Aí, eu digito algo que substitui os pontos, mas esses, caso eu não preencha os campos, devem continuar visíveis, mesmo, após abandonar o get, mas não ser incluído na variável que o get edita.
Já pesquisei no fórum algo sobre o assunto, mas não encontrei. Nem mesmo na internet, em geral.
Acho que, talvez, seja até coisa, simples...
Obrigado.

Enviado: 18 Jan 2006 23:04
por rochinha
Amiguinho

Inicie as variáveis CHARacter com REPLICATE('.', TamanhoDoCampo ) e ao salvar retire os pontos com STRTRAN()

exemplo"

USE CLIENTES

cNome := replicate('.',45) // Caso seu campo NOME tenha 45 caracteres

@ ...GET...cNome PICTURE "@!"
read
IF LASTKEY() <> 27
REPLACE CLIENTES->NOME WITH STRTRAN(cNome,".", "")
ENDIF

O comando GET não aceita mascaras com este artificio.

E só serviria para campcaracteres, nem pense em usar em campos numéricos ou data.

Não me lembro muito bem, mas no Summer eu usava um comando SET mais ou menos assim:

SET DELIMITERS TO []

E todos os GET apareciam cercados com estes caracteres, muito usado por monitores preto e branco para delimitar visualmente os tamanhos dos campos.

Nào me lembro de te-lo visto no Clipper 5.2/5.3

@braços :?)

Enviado: 18 Jan 2006 23:52
por Glauco Cruz Costa
rochinha escreveu:Amiguinho

Inicie as variáveis CHARacter com REPLICATE('.', TamanhoDoCampo ) e ao salvar retire os pontos com STRTRAN()

exemplo"

USE CLIENTES

cNome := replicate('.',45) // Caso seu campo NOME tenha 45 caracteres

@ ...GET...cNome PICTURE "@!"
read
IF LASTKEY() <> 27
REPLACE CLIENTES->NOME WITH STRTRAN(cNome,".", "")
ENDIF

O comando GET não aceita mascaras com este artificio.

E só serviria para campcaracteres, nem pense em usar em campos numéricos ou data.

Não me lembro muito bem, mas no Summer eu usava um comando SET mais ou menos assim:

SET DELIMITERS TO []

E todos os GET apareciam cercados com estes caracteres, muito usado por monitores preto e branco para delimitar visualmente os tamanhos dos campos.

Nào me lembro de te-lo visto no Clipper 5.2/5.3

@braços :?)

Obrigadão, Rochinha. Vou fazer isso.
Quanto ao SET DELIMITERS TO [], eu o uso no Clipper 5.2. E estou com um livro de Clipper 5.0 que já traz esse comando. Ele faz isso mesmo. Só que eu gostaria também de implementar os pontos.
Em meu trabalho, um programa usado para imprimir etiquetas, não mais funciona. Aconteceu algo que não souberam me avisar do que o rapaz do CPD falou. Tipo expirar, não renovar contrato, defeito, algo assim.
O que acontece é que o programa não funciona mais e não mais funcionará. E até que venha outro será uns bons meses aí pela frente.
Então, resolvi criar um programa bem parecido com aquele, com as mesmas teclas de função, e a formatação de tela bem parecida. Por isso, estava em busca desses pontinhos no GET, como no programa antigo. Sem eles, mesmo com os [], fica muito estranho.
Valeu, amigo.
Abraços. :xau

Enviado: 19 Jan 2006 21:23
por Glauco Cruz Costa
rochinha escreveu:Amiguinho

Inicie as variáveis CHARacter com REPLICATE('.', TamanhoDoCampo ) e ao salvar retire os pontos com STRTRAN()

exemplo"

USE CLIENTES

cNome := replicate('.',45) // Caso seu campo NOME tenha 45 caracteres

@ ...GET...cNome PICTURE "@!"
read
IF LASTKEY() <> 27
REPLACE CLIENTES->NOME WITH STRTRAN(cNome,".", "")
ENDIF

O comando GET não aceita mascaras com este artificio.

E só serviria para campcaracteres, nem pense em usar em campos numéricos ou data.

Não me lembro muito bem, mas no Summer eu usava um comando SET mais ou menos assim:

SET DELIMITERS TO []

E todos os GET apareciam cercados com estes caracteres, muito usado por monitores preto e branco para delimitar visualmente os tamanhos dos campos.

Nào me lembro de te-lo visto no Clipper 5.2/5.3

@braços :?)
Amigo, é o seguinte.
Estou precisando que em um dos gets, ao sair, (1)se não tiver completo, remova os pontos que ficaram. (2)No restante dos gets, preciso que, após se ter digitado algo, não preenchendo os campos totalmente, se tenha apagado algum ponto com a tecla delete ou tecla espaço, se recomponha os pontos. Assim:
1) [.........] => como estava o get antes de se digitar
[1546 ] => como deve ficar após sair do get

2) [...............] => como estava o get antes de se digitar
[teste...... ] => de repente, o usuário pressionou delete para apagar algo que digitou errado
[teste........] => como deve ficar o get ao sair

Eu tentei colocar um valid no get chamando uma função assim:
FUNCTION PREENCHE(VAR)
STRTRAN(VAR,"", ".")
RETURN .T.
... para trocar os espaços em branco pelos pontos, mas não deu certo: o programa travou
Também tentei colocar a mesma função com when no get seguinte. Também travou...
O que posso fazer?
Obrigado

Enviado: 21 Jan 2006 13:41
por Glauco Cruz Costa
Glauco Cruz Costa escreveu:
rochinha escreveu:Amiguinho

Inicie as variáveis CHARacter com REPLICATE('.', TamanhoDoCampo ) e ao salvar retire os pontos com STRTRAN()

exemplo"

USE CLIENTES

cNome := replicate('.',45) // Caso seu campo NOME tenha 45 caracteres

@ ...GET...cNome PICTURE "@!"
read
IF LASTKEY() <> 27
REPLACE CLIENTES->NOME WITH STRTRAN(cNome,".", "")
ENDIF

O comando GET não aceita mascaras com este artificio.

E só serviria para campcaracteres, nem pense em usar em campos numéricos ou data.

Não me lembro muito bem, mas no Summer eu usava um comando SET mais ou menos assim:

SET DELIMITERS TO []

E todos os GET apareciam cercados com estes caracteres, muito usado por monitores preto e branco para delimitar visualmente os tamanhos dos campos.

Nào me lembro de te-lo visto no Clipper 5.2/5.3

@braços :?)
Amigo, é o seguinte.
Estou precisando que em um dos gets, ao sair, (1)se não tiver completo, remova os pontos que ficaram. (2)No restante dos gets, preciso que, após se ter digitado algo, não preenchendo os campos totalmente, se tenha apagado algum ponto com a tecla delete ou tecla espaço, se recomponha os pontos. Assim:
1) [.........] => como estava o get antes de se digitar
[1546 ] => como deve ficar após sair do get

2) [...............] => como estava o get antes de se digitar
[teste...... ] => de repente, o usuário pressionou delete para apagar algo que digitou errado
[teste........] => como deve ficar o get ao sair

Eu tentei colocar um valid no get chamando uma função assim:
FUNCTION PREENCHE(VAR)
STRTRAN(VAR,"", ".")
RETURN .T.
... para trocar os espaços em branco pelos pontos, mas não deu certo: o programa travou
Também tentei colocar a mesma função com when no get seguinte. Também travou...
O que posso fazer?
Obrigado
Melhor, ainda, seria se pudesse ficar os pontos nos gets, sem fazer parte dele, ou seja, só como uma falsa aparência, o que facilitaria as rotinas de inclusão, pesquisa, alteração e impressão. Assim, ao invés de eu declarar as variáveis com replicate e incluir os dados com o strtran, eu estaria trabalhando normalmente com os gets padrões e as variáveis somente com seus space...