Widget com form abrindo em modo de inclusão

Percebi que a aplicação container não permite que se use a macro sc_apl_conf para abrir form em modo inclusão no campo ligação de seus widgets.
Como não sou lá grandes coisas com php, resolvi dar uma olhada no código gerado pelo sc e achei um modo de configurar o form desejado para abrir sempre em modo de inclusão, sem depender da macro sc_apl_conf.

Já havia tentado abrir uma apl blank no widget, que chamaria o form via sc_apl_conf, mas não funcionou. Inclusive na documentação do SC a macro sc_apl_conf está no escopo do evento onExecute da apl tipo blank, mas pelo jeito não está. Parabéns!!!

O jeito que consegui foi o segunte:
Dentro do meu form desejado (form_proposta_dados), no evento onApplicationInit coloquei o código

$_SESSION['scriptcase']['sc_apl_conf']['form_proposta_dados']['start'] = 'new';

Liguei o widget normalmente a esse form e a partir de agora ele sempre abrirá em modo inclusão.
Talvez eu tenha reinventado a roda, mas funcionou pra mim.

Espero que seja útil a alguém.
Obrigado a todos.
Rodrigo

Rodrigo,

Vc pode, nas configurações do SQL do formulário, fazer o WHERE retornar um resutado vazio.

Ex.:
Vc tem uma tabela de cliente. Coloque IDCliente = 0

Como o resultado não existe, o SC sempre vai abrir este formulário em modo de inclusão. E ainda tem o benefício de não carregar todos os registros e abrir em novo.

Opa, valeu a dica! Sabai que tava reinventando a roda, mas como tinha funcionado pra mim resolvi compatilhar.
Valeu!
Rodrigo

Na verdade eu fiz isso pelo mesmo motivo que você. Precisava fazer um formulário abrir sempre em modo novo. Ai precisava reutilizar o mesmo formulário para editar registros. Então fiz “o gato do zero”.

Consiste em vc usar a WHERE para retorna vazio, assim o SC já abre o formulário em modo novo e podemos utilizar o mesmo formulário para edição. Então eu faço assim:

Na SQL do formulário:

campo_pk = [par_controle]

No onExecute do menu faço:

[par_controle] = 0;

Sempre que executar uma aplicação par_controle recebe 0

Numa ligação de consulta com uma aplicação de formulário, a ligação vai pedir valor para a global e para o campo pk. Informo o identificador para os dois.

Assim este formulário sempre abre em modo novo para cadastro e na edição busca apenas o registro escolhido na grid da consulta.
Nunca busca todos os registros, o que eu acho que prejudica a performance das aplicações de formulário. Quando quero buscar registros uso sempre aplicação consulta. Não vejo muita vantagem e navegar pelos botões de navagação dos formulários.

Obrigado Cleyton Euler, o seu “gato do zero” vou usar em todas as minhas aplicações do SC! Muito útil sua dica…