Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
8 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 7 Visitantes :: 2 Motores de busca

Jorge Pinguim

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 3

Impressora Ticket

15/11/2016, 09:20 por clima238

Bom dia,
Por favor alguém me explique porque o código abaixo imprime no ecrã em vez do printer: …

Comentários: 2

Visite meu canal no Youtube

20/1/2017, 00:45 por ImRicoh

VFP Unlimited


Comentários: 0

Bloquear edição do ListBox

17/6/2010, 15:13 por Julio

Pessoal

Boa Tarde!

Tnho uma listbox apenas para exibir o resultado.
Preciso bloquear a listbox …

Comentários: 17

automação do mozilla e chrome

15/1/2017, 12:16 por Handerson Mildroz

Boa tarde a todos!

Sou iniciante no VFP. Preciso de ajuda, pois tenho um código que usa o …

Comentários: 0

Estatísticas
Temos 6992 usuários registrados
O último usuário registrado atende pelo nome de BrenoTayne

Os nossos membros postaram um total de 10 mensagens em 4 assuntos

LIMPAR TODOS TEXBOX EM UM FORMULARIO

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

LIMPAR TODOS TEXBOX EM UM FORMULARIO

Mensagem por AJC em 27/6/2016, 13:49

Pessoal tem como dentro de um formulário efetuar a limpeza do campo value de todos os textbox?
Antonio

AJC
Participante Regular
Participante Regular


Voltar ao Topo Ir em baixo

Re: LIMPAR TODOS TEXBOX EM UM FORMULARIO

Mensagem por Julio em 28/6/2016, 09:01

Bom dia

Não testei mas veja se assim da certo, não sei como vai se comportar no caso de textbox for numerico.

Thisform.SetAll("Value"," ")

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Re: LIMPAR TODOS TEXBOX EM UM FORMULARIO

Mensagem por lardecristo em 29/6/2016, 10:16

Esta rotina está em um método do meu form base, o nome do método é LimpaObjeto.

Ele é um método que varre todos os objetos do form e aqueles que tem a propriedade lPossoLimpar como verdadeiro (.T.) o mesmo é limpo, faço desta forma por causa das minhas necessidades, mas você pode retirar esta propriedade e sua comparação da rotina.

A propriedade lPossoLimpar está nos meus objetos bases. (cbTextBox, cbListBox... eu criei todos os objetos nativos, como uma classe base, porque isso me facilita colocar funcionalidades e a mesma refletir em todos os objetos, sem precisar escrever em todos.)

O método abaixo ele é recursivo, ou seja, ele chama a si mesmo para poder varrer todos os objetos dentro do form, isto é necessário porque o comando que o Julio mostrou só faz na primeira "camada" do form, vamos imaginar que o seu TextBox, esteja dentro de um container ou pageframe, o mesmo não é alcançado, seria necessário, fazer outro SetAll (THISFORM.PageFrame.Page1.SetAll("Value"," ")), com a recursividade não é necessário, porque ela vai varrer tudo.

Para usá-lo é só chamar THISFORM.LimpaObjeto().

Qualquer dúvida é só postar, espero que ajude.

Código:
LPARAMETERS loControl as Object
LOCAL lnCountControl as Integer, lnAux as Integer, lsTipoValor as String, aMems(1) as Array
LOCAL lsNomeTabela as String, lsBaseClass as String
WITH loControl
   IF TYPE("loControl.lPossoLimpar") = "L" THEN
      IF loControl.lPossoLimpar THEN
         lsBaseClass = UPPER(loControl.BaseClass)
         IF lsBaseClass = "TEXTBOX" .OR. lsBaseClass = "EDITBOX" THEN
            lsTipoValor = VARTYPE(loControl.Value)
            DO CASE
               CASE lsTipoValor = "C"
                  loControl.Value = ""
               CASE lsTipoValor = "N" .OR. lsTipoValor = "Y"
                  loControl.Value = 0
               CASE lsTipoValor = "D" .OR. lsTipoValor = "T"
                  loControl.Value = {//}
            ENDCASE
         ENDIF
         IF lsBaseClass = "COMBOBOX" THEN
            loControl.DisplayValue = ""
            loControl.Clear
         ENDIF
         IF lsBaseClass = "GRID" THEN
            lsNomeTabela = loControl.RecordSource
            loControl.RecordSource = ""
            USE IN SELECT(lsNomeTabela)
         ENDIF
         IF lsBaseClass = "SPINNER" THEN
            loControl.Value = loControl.KeyboardLowValue
         ENDIF
         IF lsBaseClass = "OPTIONGROUP" THEN
            loControl.Value = 0
         ENDIF
         IF lsBaseClass = "CHECKBOX" THEN
            loControl.Value = 0
         ENDIF
      ENDIF
   ENDIF
   lnCountControl = AMEMBERS(aMems,loControl,2)
   IF m.lnCountControl > 0
      FOR lnAux = 1 TO m.lnCountControl
         loControl = EVAL("."+aMems[m.lnAux])
         IF TYPE("."+aMems[m.lnAux]) = "O"
            THIS.LimpaObjeto(loControl)
         ENDIF
      ENDFOR
   ENDIF
ENDWITH

lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Re: LIMPAR TODOS TEXBOX EM UM FORMULARIO

Mensagem por Julio em 30/6/2016, 09:19

Bom dia

Na verdade não uso o comando para limpa os campos utilizo uma outra forma.

Peço licença ao LardeCristo, vou testar e implementar esta rotina ao meu sistema.

Da um trabalhão mesmo quando tem container ou pageframe para limpas campos.

Valeu!!


Julio

Julio
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Re: LIMPAR TODOS TEXBOX EM UM FORMULARIO

Mensagem por lardecristo em 30/6/2016, 12:53

Olá Julio, a rotina tem mais um detalhe, ela também pode ser usada para só um objeto seja ele um Pageframe ou Container ou até mesmo um objeto especifico, não expliquei isso anteriormente, porque a priori é para todo o form, mas você pode chamá-la passando o nome do objeto desejado.

Mais um detalhe eu faço com esta rotina leve em consideração o tipo de dado que está no objeto, para assim limpá-lo com o valor correto, ou seja, se é data ele coloca uma data vazia, se é um número ele coloca 0, e assim vai.

lardecristo
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum