Tempo aproximado para leitura: 00:01:00 min
Dúvida
Há algum exemplo referente a função Modelo2?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - ADVPL - Todas as versões
Solução
A função Recno() não abre nenhuma tabela e nem a torna ela a área dela ativa.
No Protheus, sempre haverá alguma área selecionada como ativa pois diversas tabelas já são abertas automaticamente quando um ambiente de um módulo é aberto, e uma delas já é posicionada como a ativa, seja a abertura feita manualmente no SmartClient, seja por job, seja por função via RpcSetEnv ou PREPARE ENVIRONMENT.
Ou seja, sempre haverá muitas tabelas abertas e sempre uma delas é selecionada pelo próprio Protheus como área ativa.
Desta forma, a função Recno() se comportará sempre de uma das duas maneiras abaixo:
1) Ao usar o alias explícito já foi automaticamente aberta de uma das formas acima citadas, trará o registro atual da tabela indicada:
IF SE1->(Recno())
2) Se não for usado o alias explícito, trará o valor do registro correntemente posicionado da tabela aberta na área atual.
IF Recno()
Recomendamos sempre usar aliás explícito, como inclusive já fez no seu código, por ser uma boa prática de documentação de código e também para evitar trazer dados inesperados de outra tabela caso a tabela do alias explícito não seja a corrente.
Saiba Mais
0 Comentários