Botão UpDate num Form Single Record

(Herberto Silva) #1

Criei um form_XXX (Orientation: SingleRecord) que é contrololado por uma chave unica de um campo que se chama NIF.
Quando o utilizador digita um NIF existente o programa avisa que já existe esse NIF.
Utilizando a rotina em AjaxEvents , nif_onchange:

sc_lookup(c,“SELECT nif, nome, morada, freguesia, codpostal, telefone, email
FROM municipes WHERE nif = ‘{nif}’”);
if(!empty({c})){
{nome} = {c[0][1]};
{morada} = {c[0][2]};
{freguesia} = {c[0][3]};
{codpostal} = {c[0][4]};
{telefone} = {c[0][5]};
{email} = {c[0][6]};

//sc_set_focus(“Endereço”);
}
procura o registo correspondente a esse NIF e apresenta na ficha os dados preenchidos.
Até aqui funciona bem.
Mas o que pretendo e se me puderem indicar como se faz, é que o SC apresente o butão Update, e que haja possibilidade de o utilizador poder alterar algum campo e gravar essas alterações, com o UPDATE.

(George Carvalho) #2

Você pode criar um campo tipo Radio “com recarga” perguntando se quer atualizar o registro, no evento Onload testar se no campo Radio foi marcada a opção “Sim”, se afirmativo processar as atualizações necessária.

O campo Radio deve iniciar com a opção display = off e quando ocorrer o evento nif_onchange e já existir o NIF torná-lo onn.

Acho que assim funciona.

George Carvalho

(Herberto Silva) #3

Não estou a ver como o executar.
Será possivel colocar 1 exemplo. Obrigada…

(George Carvalho) #4

Crie um campo tipo Radio com o Label “Atualizar cadastro xxxxxxxxx” e com as opções Sim(S) e Não(N).

No evento onLoad use a macro sc_field_display para tornar o campo off.

Na rotina
sc_lookup(c,“SELECT nif, nome, morada, freguesia, codpostal, telefone, email
FROM municipes WHERE nif = ‘{nif}’”);
if(!empty({c})){
{nome} = {c[0][1]};
{morada} = {c[0][2]};
{freguesia} = {c[0][3]};
{codpostal} = {c[0][4]};
{telefone} = {c[0][5]};
{email} = {c[0][6]};
sc_field_display ({Seu campo Radio}, on);
//sc_set_focus(“Endereço”);
}
No evento onLoad
Se seu campo Radio = ‘S’ inclua a rotina para atualizar o registro desejado.

(Herberto Silva) #5

Obrigada pela explicação.
Até aqui tudo bem.
Mas como posso agora reutilizar o botão INSER para actualizar o registo? ou Terei de colocar outro botão?

(George Carvalho) #6

Você não precisa de botão, ao atualizar o campo Radio o form vai ser recarregado, no envento onLoad do form inclua um if testando se a resposta selecionada foi ‘S’, se afirmativo inclua os comando necessários para o update do registro.