Exemplo de código mostra como gerenciar os botões de navegação

Traduções deste artigo Traduções deste artigo
ID do artigo: 123967 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Ao criar uma tela, a maioria dos desenvolvedores precisará adicionar botões de navegação para percorrer o banco de dados. Facilmente você pode colocar um botão de ação em uma tela para encaminhar um registro, mas você também precisa controlar o comportamento do botão quando atingir o início ou fim de um banco de dados.

Por exemplo, se o usuário navegar através de uma tabela e atingir o final da tabela, você pode desejar ter próximo e inferior botões desativado. Da mesma forma, quando o usuário atingir parte superior da tabela, deseja ter a parte superior e anterior botões desativado. Este artigo mostra pelo exemplo de como fazer isso.

Mais Informações

O exemplo de código neste artigo move o ponteiro antes ou após o registro seguinte ou anterior, que você realmente deseja exibir, assim, permitindo que você testar condições BOF() e EOF() e ter seu programa responda adequadamente por desativando ou ativando os botões apropriados.

Amostra de código

Observação: Embora esse código pode servir como uma base sólida para uso em seu próprio trabalho, é não necessariamente a somente ou melhor forma de tratamento de botões. Em sua forma presente, o código não verifica o status de um registro para ver se ele é excluído. Se excluído é OFF (padrão), esse código tem o potencial de misbehave, portanto, você precisará procurar e lidar com registros excluídos e outros tipos de exceções.

Convém adicione código para o trecho de código de cláusula "Quando", ou "Na tela Entry" porque "Top" e "Anterior" não são válidas no início de um banco de dados. Talvez você precise adicionar este código:
   && Disable Top and Prior buttons on startup.
   SHOW GET Buttnvar,1 DISABLE   && Disable "Top"
   SHOW GET Buttnvar,2 DISABLE   && Disable "Prior"
				
colocar o código a seguir na cláusula válida de seu botão matriz e altere o nome da variável "Buttnvar" para o nome da variável, na verdade, você está usando:
DO CASE
  CASE Buttnvar = 1         && 'TOP' button
    GO TOP
    SCATTER MEMVAR
    SHOW GET Buttnvar,1 DISABLE   && Disable "Top"
    SHOW GET Buttnvar,2 DISABLE   && Disable "Prior"

    IF (RECCOUNT() > 1)
      SHOW GET Buttnvar,3 ENABLE  && Enable  "Next"
      SHOW GET Buttnvar,4 ENABLE  && Enable  "Bottom"
    ELSE
      SHOW GET Buttnvar,3 DISABLE   && Disable "Next"
      SHOW GET Buttnvar,4 DISABLE   && Disable "Bottom"
    ENDIF
    SHOW GETS
    WAIT WINDOW "At first record" TIMEOUT 1
    _CUROBJ = OBJNUM(Buttnvar)+3  && Transfer focus to "Next" button

  CASE Buttnvar = 2         && 'PRIOR' button
    SKIP - 1
    IF NOT BOF()
      SCATTER MEMVAR
    ELSE
      WAIT WINDOW "At first record" TIMEOUT 1
      SHOW GET Buttnvar,1 DISABLE   && Disable "Top"
      SHOW GET Buttnvar,2 DISABLE   && Disable "Prior"
    ENDIF

    IF (RECCOUNT() > 1)
      SHOW GET Buttnvar,3 ENABLE  && Enable  "Next"
      SHOW GET Buttnvar,4 ENABLE  && Enable  "Bottom"
    ELSE
      SHOW GET Buttnvar,3 DISABLE   && Disable "Next"
      SHOW GET Buttnvar,4 DISABLE   && Disable "Bottom"
    ENDIF
    SHOW GETS

  CASE Buttnvar = 3         && 'NEXT' button
    IF  NOT EOF()
      SKIP 1
    ENDIF

     IF  EOF()
      SKIP - 1
      WAIT WINDOW "At last record" TIMEOUT 1
      SHOW GET Buttnvar,3 DISABLE   && Disable "Next"
      SHOW GET Buttnvar,4 DISABLE   && Disable "Bottom"
    ELSE
      SHOW GET Buttnvar,1 ENABLE  && Enable  "Top"
      SHOW GET Buttnvar,2 ENABLE  && Enable  "Prior"
      SCATTER MEMVAR
    ENDIF
    SHOW GETS

  CASE Buttnvar = 4         && 'BOTTOM' button
    GO BOTTOM
    SCATTER MEMVAR
    SHOW GET Buttnvar,3 DISABLE   && Disable "Next"
    SHOW GET Buttnvar,4 DISABLE   && Disable "Bottom"

    IF (RECCOUNT() > 1)
      SHOW GET Buttnvar,1 ENABLE  && Enable  "Top"
      SHOW GET Buttnvar,2 ENABLE  && Enable  "Prior"
    ELSE
      SHOW GET Buttnvar,1 DISABLE   && Disable "Top"
      SHOW GET Buttnvar,2 DISABLE   && Disable "Prior"
    ENDIF
    _CUROBJ = OBJNUM(Buttnvar)+1  && Transfer focus to "Prior" button
    SHOW GETS
    WAIT WINDOW "At last record" TIMEOUT 1

  CASE Buttnvar = 5      && 'QUIT' button
    CLEAR READ
ENDCASE
				
você pode colocar o comando "Show obtém" no final da instrução CASE. No entanto, às vezes, ele fornece uma resposta snappier quando colocados no final de uma determinada instrução.

Propriedades

ID do artigo: 123967 - Última revisão: sexta-feira, 21 de fevereiro de 2014 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.5a
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.6 Standard Edition
  • Microsoft FoxPro 2.6a Standard Edition
  • Microsoft FoxPro 2.0
  • Microsoft FoxPro 2.5b for MS-DOS
  • Microsoft FoxPro 2.5a
  • Microsoft FoxPro 2.5b for MS-DOS
  • Microsoft FoxPro 2.6 for MS-DOS
  • Microsoft FoxPro 2.6a Standard Edition
  • Microsoft Visual FoxPro 2.5b para Macintosh
  • Microsoft Visual FoxPro 2.5c para Macintosh
  • Microsoft FoxPro 2.6a Professional Edition para Macintosh
Palavras-chave: 
kbnosurvey kbarchive kbmt kbcode KB123967 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 123967

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com