UPDATE

Alterar dados de uma tabela ou variável. Move dado do buffer de registro para buffer de tela. Usuário digita os dados que são movidos de volta para o buffer de registro.


FIND FIRST customer. /* precisa ter um registro lido para executar este comando */

/* exemplo 1 - alterar todos os campos de um registro da tabela customer */
UPDATE customer.

/* exemplo 2 - alterar apenas o campo name */
UPDATE customer.name.

/* exemplo 3 - alterar uma variável */
UPDATE codigo.

ENABLE

Solicitar digitação de dados em tabela ou variável. Usuário digita dados no buffer de tela. Este comando é uma alternativa mais moderna ao UPDATE.


/* exemplo 1 - solicitar todos campos da tabela customer para digitação */
ENABLE customer.

/* exemplo 2 - solicitar apenas o campo custnum */
ENABLE customer.custnum.

/* exemplo 3 - solicitar uma variábel */
ENABLE codigo.

LOCK

Definir lock a ser utilizado (NO-LOCK, SHARE-LOCK, EXCLUSIVE-LOCK)


/* exemplo 1 - procurar um registro apenas para consultar */
FIND FIRST customer NO-LOCK.
MESSAGE customer.custnum.

/* exemplo2 - procurar um registro para consultar e alterar */
FIND LAST customer EXCLUSIVE-LOCK.
UPDATE customer.custnum.

VALIDATE

Definir validação de dados num FRAME.


DEF VAR idade AS INT NO-UNDO.

FORM idade VALIDATE(idade > 0 AND idade < 100, 'Idade invalida)
     WITH FRAME tela1.

UPDATE idade WITH FRAME tela1.

AUTO-RETURN

Aplica enter automaticamente ao preencher variável.


DEF VAR wi AS INT.

UPDATE wi AUTO-RETURN.

APPLY

Aplicar a última tecla lida. Usar com KEYFUNCTION(LASTKEY) no caso de UPDATE ou READKEY.


MESSAGE 'Digite uma tecla'.

READKEY.

APPLY KEYFUNCTION(LASTKEY).

FRAME-FIELD

Retorna o nome do campo ativo do frame


UPDATE w1 AS CHAR. /* definir e fazer update na variável com o mesmo comando */

MESSAGE FRAME-FIELD. /* mostra o nome do campo com foco no frame */

EDITING

Editar digitação de campos com UPDATE.


/* exemplo 1 - menor código possível */
UPDATE teste AS CHAR
EDITING:
    READKEY.
    APPLY KEYFUNCTION(LASTKEY).
END.

/* exemplo 2 - editing completo */
DEF VAR campo AS CHAR.

UPDATE campo
EDITING:
    READKEY.

    IF FRAME-FIELD = 'campo'
    THEN DO:
        IF KEYFUNCTION(LASTKEY) = 'return'
        THEN DO:
            ASSIGN campo.
            MESSAGE 'Digitou' campo
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
            APPLY KEYFUNCTION(LASTKEY).
        END.
        ELSE APPLY KEYFUNCTION(LASTKEY).
    END.
    ELSE APPLY KEYFUNCTION(LASTKEY).
END.

QUESTION

Mensagem informativa, mostra traz opções para escolha: sim/não/cancela e salva numa variável lógica.


MESSAGE 'Escolha uma opção'
    VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO-CANCEL
    TITLE 'Selecionar' UPDATE variavel_escolha AS LOG.