Current form table
Current form table : Pointer
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultado | Pointer | ← | Ponteiro a tabela do formulário atualmente exibido |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Descrição
O comando Current form table retorna o ponteiro para a tabela do formulário em tela ou impresso no processo atual.
A função retorna Is nil pointer nos seguintes casos:
- Não há formulário mostrado ou impresso no processo atual,
- O formulário atual é um formulário de projeto. Se houver várias janelas abertas no processo atual (significa que a última janela aberta é a janela ativa atual), o comando retorna um ponteiro até a tabela do formulário que aparece na janela ativa.
Se o formulário mostrado atualmente é o formulário detalhado de uma área de subformulário, você se encontra em entrada de dados e fez um duplo clique em um registro ou subregistro em uma área de subformulário de duplo clique. Neste caso, o comando retorna:
- O ponteiro em direção a tabela mostrada no área do subformulário, se o subformulário mostra uma tabela.
- Um ponteiro não significativo, se a área de subformulário mostrar uma subtabela.
Exemplo
Em su aplicação, utiliza a seguinte convenção quando visualiza um registro:
Se a variável vsCurrentRecord estiver presente em um formulário, mostra “Novo registro” se estiver trabalhando com um novo registro. Se estiver trabalhando com o registro 56 de uma seleção composta por 5200 registros, mostra “56 de 5200”.
Para isso, utilize o método de objeto para criar a variável vstRegistroAtual, depois copie-o e cole-o em todos seus formulários:
// Método de objeto da variável não editável vstRegistroAtual
Case of
:(Form event code=On Load)
C_STRING(31;vstRegistroAtual)
var $vpTabelaPai : Pointer
var $vlNumRegistro : Integer
$vpTabelaPai:=Current form table
$vlNumRegistro:=Record number($vpTabelaPai->)
Case of
:($vlNumRegistro=-3)
vstRegistroAtual:="Novo registro"
:($vlNumRegistro=-1)
vstRegistroActual:="Ningún registro"
:($vlNumRegistro>=0)
vstRegistroAtual:=String(Selected record number($vpTabelaPai->))+" de "+
vstRegistroAtual:=vstRegistroAtual+String(Records in selection($vpTabelaPai->))
End case
End case