inclusao automatica num grid editavel view

Olá pessoal

Eu estava usando um formulario de multiplos registros, mas por causa da dificuldade em calcular o saldo do formulario mestre, eu acabei mudando para o formulario detalhe para grid editavel view.

Pelo menos ele me permite controlar o saldo a cada inclusao. Ao mesmo tempo ele parece ser mais “limpo” quando apresenta apenas uma linha por vez, e nao 10 linhas dos multiplos registros.

O problema agora é o seguinte : O grid editavel nao inclui uma nova linha quando eu chego na ultima coluna. Eu sou obrigado a levar o mouse para o outro lado da tela e clicar no botao de
gravação. Isso nao é nem um pouco produtivo. Acho até que o pessoal da netmake ja deveria ter pensado numa forma de atualizar esse negocio, assim como fazem com o ENTER para tabular.

Enfim, alguem pode me dizer se é possivel adicionar essa funcionalidade, e apresentar um exemplo?

Abraço.

Att Haroldo

Amigo, eu vi um video seu no youtube mostrando como resolver isso.

Entretanto, comigo nao funcionou.

Verifiquei que vc usou o evento onLoadRecord para inicializar o campo {seqline}. Mas esse evento nao existe na versao 9.2. Tive que usar o evento onRecord e funcionou.
Entao, no evento onRecord ficou assim

{seqline} = $sc_seq_vert;
sc_set_focus(‘cd_receita’);

Foi criado o evento Ajax do ultimo campo

No evento onChange do ultimo campo eu coloquei o seguinte

sc_ajax_javascript(‘findPos’,array(‘this’));
sc_ajax_javascript(‘nm_atualiza_line’,array(‘incluir’,{seqline}));

O que acontece depois disso :

Ao clicar no botao “Novo” um registro é adicionado e o foco é levado para a primeira coluna. Até ai tudo bem.

Quando chego no ultimo campo, digito o valor e aperto ENTER, o scriptcase dá a impressao de ter executado alguma coisa, mas nada acontece. Nenhuma linha é adicionada, e o foco continua no ultimo campo.
Se, em vez de ENTER eu apertar o TAB, uma nova linha é inserida. Entretanto o foco não é mudado para a primeira coluna da proxima linha. Eu tenho que clicar com o mouse sobre o campo.

O que há de errado?

Mais um detalhe : No meu caso, especificamente, não tenho interesse em alterar os registros. O usuario poderá apenas incluir ou excluir. Por isso nao usei aquela variavel $_act

Esse vídeo é antigo.

Acredito que a NM trocou os nomes internos de alguns métodos, precisa inspecionar o botão salvar da linha e pegar o nome do método para ver se ainda é o mesmo.

Codigo vinculado ao botao NOVO
Novo

Codigo vinculado ao botao de gravar

o método do botão gravar se manteve o mesmo. A princípio deve funcionar.

tem que criar o campo virtua {seqline} e escondê-lo.

1 Curtida

Eu fiz exatamente isso, conforme informado na postagem inicial.

Scriptcase 9.4.003, testado e funcionando precisei fazer isso hoje para um cliente. :laughing:

Grid View Editável:

Criar o campo Novo Virtual: {seqline} e esconder ele.

Colocar no OnLoadRecord:

// Usando no Evento Ajax onBlur do último Campo para Inserir automaticamente.
{seqline} = $sc_seq_vert;

Evento Ajax OnBlur último Campo do Grid:

/* Aqui vamos inserir o registro automaticamente assim que o usuário der TAB
   no último campo.
*/
sc_ajax_javascript('findPos',array('this'));
sc_ajax_javascript('nm_atualiza_line',array('incluir',{seqline}));

:hugs::hugs::hugs:

1 Curtida

Jailton, boa noite. Vc conseguiu fazer com que o foco do cursor caia no primeiro campo do form grid editavel quando é inserida uma nova linha de forma automática? O meu funcionou ok, porém o usuário continua tendo q usar o mouse.

Sim funcionou na época tem que marcar também qual o campo de foco inicial da app grid.

1 Curtida

O pior q já está marcado. Rapaz. Muito obrigado Jailton

Além de marcado, forcei com a macro sc_set_focus, como fez o Haroldo! kkk eita vida sofrida de programador.