Ligação com um Formulário para inserir.

Olá, Bom dia.

Eu criei uma consulta de uma view: cns_entrega_vw. Ela me retorna o ID da tabela cns_entrega.

Eu criei um formulário para a tabela: cns_ocorrencia, que tem o id_entrega, relacionado com a tabela cns_entrega.

Eu gostaria de fazer uma tela que: quando selecionar na consulta de entrega, INSERIR uma ocorrencia no formulário. Com isso, eu criei uma variável [id_entrega] e vinculei ao campo no formulário. Quando fiz a ligação da entrega com a ocorrência, selecionei o campo ID > id_entrega e marquei a opção: " Habilitar botão para edição do registro na consulta".

O problema é que essa opção só aceita se o formulário for de update. Quando é insert, o botão Inserir não aparece.

Como resolver?

Obrigado.

Olá não entendi muito bem.
Seria uma consulta ligada ao form, porém você não tem opção de inserir?

Se o dado esta sendo encaminhado para um registro ja existente faz sentido o formulario iniciar como apenas update.
Agora se vc que que o formulario inicie apenas para inserir vc deve colocar o seguinte codigo no evento onaplicationInit

sc_apl_conf(“cadastro_exemplo.php”, “start”, “new”);

Não sei se era isso, espero ter ajudado.

Att Arquimedes

Olá, Bom dia.

Obrigado pelas respostas.

Vou tentar explicar melhor. Tenho uma aplicação do tipo consulta e uma aplicação do tipo Formulário. Na consulta, eu fiz uma ligação com o formulário:

Coloquei para abrir em iframe:

Quando clicar no “lápis”, para editar, eu precisava que o formulário recarregasse com o botão de inserir ativado, pois a consulta de cima, na verdade é um relacionamento, e não uma primary key.

Eu tentei fazer o que o Arquimedes disse, mas ele ativa o botão de “Novo” e não insere.

Obrigado.

Esse registro é para aparecer em todas as linhas?

Está correto, o ID deve ser a chave primária do form porém exibe apenas o campo data.

Assim você atualizará o campo que foi clicado.

Para inserir habilite o botão novo na ligação da consulta.

Altera a ligação para modal, assim ao inserir ou atualizar ele dá um refresh na tela…

Rodrigo, Bom dia.

Primeiramente, obrigado pela resposta. Mas acho que eu ainda fui confuso na explicação.

Na consulta eu trago registros de uma tabela XYZ. No formulário eu quero usar a chave primária dessa tabela XYZ como chave estrangeira, ou seja, o meu formulário é da tabela QWE, que tem um relacionamento com a XYZ. Na consulta eu deixei o “Botões de formulário” ativo na barra de ferramentas. No formulário eu deixei todos os botões de ação ativo. Quando clico no “lápis”, eu botei uma variável [id_xyz] no campo da tabela qwe, com a ligação, ele é preenchido.

Obrigado.

Entendi, faça o seguinte.
crie um campo na consulta que faz lookup na tabela do form e verifica sem tem registro, se tiver guarda o ID e use esse campo para passar de parâmetro ao form, se for vazio será a opção incluir, se existir será a opção atualizar…

Eu fiz isso, mas como estou passando o parâmetro quando ele clica no “lápis”, o scriptcase pensa que está editando, e não habilita o botão de inserir.

No seu lookup onde tem esse campo novo.
Faço um if:

{campo_chave} = (empty({lookup})) ? NULL : {looku[0][0]};

Se não for ternário como acima apenas confirma se tem o else com a condição do campo recebendo NULL