ADD RECORD
ADD RECORD ( {tabela}{;}{*} )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
tabela | Table | → | Tabela a utilizar para entrada de dados ou Tabela por padrão, se omitida |
* | Operator | → | Ocultar barras de deslocamento |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Compatibilidade
Esse comando foi implementado em 4D em lançamentos anteriores e é ainda útil para desenvolvimento básico ou protótipos. Entretanto, para construir interfaces personalizadas e modernas, agora não é recomendado usar formulários genéricos baseados no comando DIALOG que oferece propriedades avançadas e melhor controle sobre o fluxo de dados
Descrição
O comando ADD RECORD permite ao usuário adicionar um novo registro na tabela tabela ou na tabela por padrão, se omitir o parâmetro tabela.
ADD RECORD cria um novo registro, e faz com que o novo registro se transforme no registro atual para o processo atual e mostra o formulário de entrada atual. No ambiente Menus personalizados, depois de que o usuário aceita o novo registro, o novo registro é o único registro na seleção atual.
A seguinte imagem representa um formulário de entrada de dados típico.
O formulário aparece na janela do primeiro plano do processo. A janela tem barras de rolagem e uma caixa de controle do tamanho. Se passar o parâmetro opcional * a janela aparece sem as barras de rolagem e sem a caixa de controle de tamanho.
ADD RECORD mostra o formulário até que o usuário aceita ou cancela o registro. Se o usuário está adicionando vários registros, o comando deve ser executado uma vez para cada registro.
O registro é guardado (aceito) se o usuário clicar no botão Aceitar ou ao pressionar a tecla Intro (teclado numérico), ou se o comando ACCEPT for executado.
O registro não é guardado (cancelado) se o usuário clicar no botão Cancelar ou ao pressionar a tecla de anulação Esc ou se for executado o comando CANCEL.
Nota: este comando não exibe tabelas para estar em modo leitura/escrita. Pode ser utilizado mesmo se a tabela estiver em modo lectura unicamente (ver Record Locking). Depois de chamar a ADD RECORD, OK toma o valor 1 se for aceito o registro e 0 se for cancelado.
Nota: o registro permanece em memória, inclusive quando é cancelado, e pode ser guardado se é executado [#cmd id="53"] antes de que mude o ponteiro do registro atual.
Exemplo 1
O seguinte exemplo é um loop utilizado geralmente para adicionar novos registros a um banco:
FORM SET INPUT([Clientes];"Entrada") // Designar o formulário de entrada da tabela [Clientes]
Repeat // Loop até que o usuário cancele
ADD RECORD([Clientes];*) // Adicionar um registro a tabela [Clientes]
Until(OK=0) // Até que o usuário cancele
Exemplo 2
O seguinte exemplo procura um cliente no banco. Dependendo dos resultados da busca, acontecerá uma destas coisas. Se não se encontrar um cliente, então é permitido ao usuário adicionar um novo cliente com ADD RECORD. Se encontrar ao menos um cliente, se lhe apresenta ao usuário o primeiro registro encontrado, o qual pode ser modificada com MODIFY RECORD:
READ WRITE([Clientes])
FORM SET INPUT([Clientes];"Entrada") // Decidir o formulario de entrada
vlCustNum:=Num(Request("Introduzir um número de cliente:")) // Obter o número de cliente
If(OK=1)
QUERY([Clientes];[Clientes]CustNo=vlCustNum) // Procurar o cliente
If(Records in selection([Clientes])=0) // se não se encontra nenhum cliente…
ADD RECORD([Clientes]) // Adicionar um novo registro
Else
If(Not(Locked([Clientes])))
MODIFY RECORD([Clientes]) // Modificar o registro
UNLOAD RECORD([Clientes])
Else
ALERT("O registro está sendo utilizado atualmente.")
End if
End if
End if
Variáveis e conjuntos do sistema
A variável sistema OK toma o valor 1 se aceitar o registro e 0 se o cancelar. A variável OK não toma nenhum valor até que o registro tenha sido confirmado ou anulado.