Mauro,
Nunca vi uma explicação para esses termos, vou tentar explicar com as minhas palavras o que entendo para cada um.
Alias - É o apelido que você dá a tabela aberta, as tabelas são abertas via função dbUseArea e essa solicita uma alias, esse alias será utilizado na camada ADVPL, você vai usar esse alias para fazer um dbSeek por exemplo.
Area - É literalmente a área que a tabela está aberta, você tem um limite de áreas abertas e somente uma área corrente, para saber a área corrente, você pode usar a função Alias e para setar um alias como área corrente, você usa a função dbSelectArea, as áreas são enumeradas, por conta disso a função Alias também pode receber um parâmetro numérico.
A função getNextAlias
retorna uma string, que pode ser usada como alias e assim ser alocada uma área para isso, mas ela retorna uma string, só isso.
Então se você fizer o seguinte código:
cAlias := getNextAlias()
DBUseArea(.T., "TOPCONN", "SA1990", cAlias, .T., .F.)
Você pegou uma string gerado pela função getNextAlias
e abriu ele em uma nova área, área gerada pela função DBUseArea
que tem a tabela SA1990 do banco de dados aberta, logo sua string agora é também um alias.
Quando você faz o seguinte trecho de código:
if dbSeek("XISTO")
endif
Você está fazendo uma pesquisa de existência de registro da área de trabalho corrente.
Agora se você fizer isso, da seguinte forma:
if SA1->(dbSeek("XISTO")
endif
Você está trocando a área de trabalho corrente para o dbSeek
, forçando que seja usada a SA1.