Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

ACHOICE()

Propósito

Criar um menu de opções a partir de um vetor.

Sintaxe

ACHOICE (<exp.N1>, <exp.N2>, <exp.N3>, <exp.N4>, <vet.C>)

Argumentos

<exp.N1>,<exp.N2>

representam as coordenadas do canto superior esquerdo da janela.

<exp.N3>,<exp.N4>

representam as coordenadas do canto inferior direito da janela.

<vet.C>

vetor-cadeia contendo em seus elementos os títulos das opções que serão exibidas como um menu.

Utilização

Retorna um valor numérico correspondente ao item de <vet.C> escolhido. O valor retornado é uma unidade menor do que o número da linha selecionada. Útil na criação de menus instantâneos para a escolha de opções através da tecla {RETURN}. Acionando-se a tecla {ESC} ou interrompendo-se a operação por qualquer outro modo, será devolvido ao controle do programa o valor -1 (menos 1)..

Também é possível a escolha através da digitação do primeiro caracter da opção desejada.

Quando a quantidade de elementos do vetor for maior que os limites da janela, serão apresentados somente os primeiros elementos.

Para acessar o restante dos elementos, basta pressionar o conjunto de setas do teclado. Quando a quantidade de elementos do vetor for menor que os limites da janela, estes são apresentados deixando um espaço entre o último elemento e a linha final da janela.

Quando a barra luminosa chega ao último item do menu, o próximo item exibido é o primeiro e vice-versa. O rolamento é do menu e não da barra. Para desligar esta característica utilizar o comando SET SCROLL OFF.

Exemplos

O exemplo a seguir mostra-nos como utilizar a função ACHOICE() criando um menu com o nome de todos os funcionários.

DECLARE vet_nom[RECCOUNT()] = SPACE (30)

DECLARE vet_key[RECCOUNT()] = NTOF (0)

LOCATE

var_num = 1

DO WHILE FOUND ()

  vet_nom[var_num] = fun_nom

  vet_key[var_num] = id_fun

  INCR var_num

  CONTINUE

ENDDO

FIND FTON (vet_key[ACHOICE(01,01,10,32,vet_nom)+1])

Consulte

$NOBOX, @ ... PROMPT, DECLARE, MENU TO, ACOPY(), ADEL() e ASCAN().

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!