Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css

...

Pagetitle
IndexKey
IndexKey

Função: IndexKey

Determina a expressão da chave de um índice especificado na área de trabalho corrente, e o retorna na forma de uma string.  Para avaliar a expressão chave, especifique IndexKey() como uma expressão macro: &(INDEXKEY(<nOrdem>)).O padrão é que a função IndexKey() opere na área de trabalho correntemente selecionada.  Pode-se fazê-la operar em uma área de trabalho não selecionada, incluindo o alias no início.

IndexKey ( [ nOrdem] ) --> cRet

Identifica a expressão da chave de índice especificado na área de trabalho corrente, e o retorna na forma de uma string.

Sintaxe

Bloco de código
collapsefalse
IndexKey( [ nOrdem ] )

Parâmetros

...

Nome

Tipo

Descrição

Obrigatório

Referência

nOrdem

...

numérico

Indica a ordem do índice na lista de índices abertos

...

na área de trabalho corrente.
O valor padrão 0 (zero) especifica o índice corrente,

...

independente de sua posição real na lista.



Retorno

Nome

Tipo

Descrição

cRet

...

caractere

Retorna a expressão da chave do índice especificado na forma de uma string.
Caso não haja um índice correspondente, a função IndexKey() retorna uma string

...

vazia ("").

Observações

  • Por padrão, a função IndexKey() opera na área de trabalho selecionada. Contudo, é possível fazê-la operar em uma área de trabalho não selecionada, através de expressão aliasada.
  • Caso a pesquisa por uma ordem de índice falhe, seu retorno será uma string vazia ("").
cExpr:= SA1->(IndexKey())

...

  • Caso a pesquisa por uma ordem de índice falhe para uma área não aberta, seu retorno será uma string vazia ("") e ocorrerá a mensagem de erro Work area not in use.

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
user function test()
  local cT1 := "T1"
  
  TCLink()
  if TcCanOpen(cT1)
    TCDelFile(cT1)
  endif
  
  DBCreate(cT1,  {{"T1_COD" , "C",  2, 0}, ;
                  {"T1_NAME", "C", 10, 0}}, "TOPCONN")
                  
  DBUseArea(.T., "TOPCONN", cT1, (cT1), .F., .F.)
    
  DBCreateIndex("T1INDEX1", "T1_COD"         , {|| T1_COD         })
  DBCreateIndex("T1INDEX2", "T1_COD+T1_NAME" , {|| T1_COD+T1_NAME })
  (cT1)->( DBClearIndex() ) //Força o fechamento dos indices abertos

  dbSetIndex("T1INDEX1") //acrescenta a ordem de indice para a área aberta
  dbSetIndex("T1INDEX2") //acrescenta a ordem de indice para a área aberta
  
  dbSetOrder(2)
  msgInfo("Chave de índice ativo: " + IndexKey(IndexOrd()))
  dbSetOrder(1)
  msgInfo("Chave de índice ativo: " + IndexKey(IndexOrd()))
   
  DBCloseArea()
  tcUnLink()

return

Veja também