[RESOLVIDO] BUG Atualização do lookup do campo com evento ajax

Olá!!!

Após a atualização, feita hoje 23/04/2021, versão 9.6.008

o procedimento reportado neste tópico parou de funcionar, Atualização do lookup do campo com evento ajax, e passou a apresentar uma mensagem de erro. Até entendo, pois possivelmente se tratava de um bug.

Acontece que os campos não atualizam mais, de nenhuma forma:

1 - Mesmo removendo 1 WHERE ( como mostrado no tópico acima, estava utilizando 2 WHERE e fazendo com que o campo não viesse preenchido com o o primeiro registro do filtro)

2 - Criando um evento ajax no campo ‘grupo’ e colocando apenas sc_field_readonly({subgrupo_id}, ‘off’), ele atualizava o campo {subgrupo}, também parou de funcionar.

3 - Marcar a opção de processamento ajax no campo {grupo}, para atualizar o {subgrupo}, também não funciona.

Assim o campo {subgrupo} fica estático, impossibilitando cadastramento um novo produto.

Havia feito a publicação da aplicação ontem e já verifiquei, que está funcionando.

Testei com outra aplicação, fiz uma cópia e após gerar fontes parou de funcionar, mas de quando executo a aplicação original, que foi gerada, ontem está funcionando perfeitamente.

PS.: os campos são do tipo select2, testei com campo apenas select não resolveu.

Aguardo retorno.

URGENTE!!!

Campos com Select2 marcado não funcionam ao receber o valor via código.
Isso desde sempre.

No changelog da uma release liberada não vi nada sobre correção do select2.

Olá, Haroldo

Agradeço a atenção.

Nas aplicações geradas até a data de ontem, o procedimento está funcionando!

Processamento Ajax, pode ser.
Mas vc mover um valor via código para um campo tipo autocomplete ou select com opção select2, que eu saiba não foi corrigido.

Mas vou testar novamente por via das dúvidas.

Eu estou utilizando com o ajax onchange no campo grupo
sc_field_readonly({subgrupo_id},‘off’);
assim ele atualiza o campo subgrupo, onde o subgrupo tem um select tem o grupo na where,
antes de atualizar para a v 9.6.008 funciona e ainda funciona em todas, desde que eu não tenha gerado fontes com a atualização atual. Utilizo este formato em varias aplicações.

Se você já atualizou, acredito que não deve funcionar.

Agradeço se postar seu resultado!

Subrupo está marcado como Select2?
qual o código da sua onchange?



select do campo subgrupo:
SELECT idsubgrupo, nome
FROM grupos_subgrupos
WHERE grupo_id = {grupo_id}
AND ativo = ‘S’
ORDER BY nome

onChange campo grupo:
sc_field_readonly({subgrupo_id}, ‘off’);
/*
sc_lookup(ds,“SELECT idsubgrupo, nome
FROM grupos_subgrupos
WHERE grupo_id = {grupo_id}
AND ativo = ‘S’
ORDER BY nome”);

if (isset({ds[0][0]})) {
	
	{subgrupo_id} = {ds[0][0]};
	
}

*/

Apenas com a macro sc_field_readonly({subgrupo_id},‘off’); o campo subgrupo_id é atualizado, automaticamente

Dá uma olhada nesse vídeo

Apenas com a macro sc_field_readonly,

Essa aplicação não foi gerada os fontes após atualização do Scriptcase

Esse bug do select2, para o campo não ficar “encolhido”, defini a largura do campo e do objeto input e resolveu

Outro exemplo utilizando Grid editável (view)

Aplicação controle com campo Select2, utilizando a macro sc_lookup para preencher o campo após inserir registro no banco

Fiz testes e o bug persiste e para ajudar sc_field_readonly({campo},‘off’); com off deixa o campo apenas leitura.

os campos não são atualizados.

oautocomplete com select2 tem seu sql alterado mas o campo não exibe a descrição recebida por cõdigo manual.

o campo select com select2 não nem o Sql é alterado.

onchange docampo area:

if ({area}==1) {
	{select_Area_Setor} = 6;
{AutoComplete_Area_Setor} = 6;
}

if ({area}==2) {
	{select_Area_Setor} = '';
	{AutoComplete_Area_Setor} = '';
}

if ({area}==3) {
	{select_Area_Setor} = 4;
	{AutoComplete_Area_Setor} = 4;
}

sc_field_readonly({select_Area_Setor}, ‘off’);
sc_field_readonly({AutoComplete_Area_Setor}, ‘off’);


Acredito que encontrei o bug, quando coloquei uma variável global no evento voltou a funcionar

onchange do campo grupo_id:
[n]=""; // sem lógica, mas após a ultima atualização se remover para de funcionar
sc_field_readonly({subgrupo_id}, ‘off’); // recarrega o campo (‘on’, deixaria o campo somente leitura)

onde o lookup do do subgrupo_id é:
SELECT idsubgrupo, nome
FROM grupos_subgrupos
WHERE grupo_id = {grupo_id}
AND ativo = ‘S’
ORDER BY nome

onchange do campo tipo:
Não atualiza apenas atualiza o lookup, como também define o valor dos campos

Outro problema. Se vc assistir o vídeo vai ver que tem o conteudo do lookup no onchange do campo grupo_id
/*
sc_lookup(ds,“SELECT idsubgrupo, nome
FROM grupos_subgrupos
WHERE grupo_id = {grupo_id}
AND ativo = ‘S’
ORDER BY nome”);

if (isset({ds[0][0]})) {
{subgrupo_id} = {ds[0][0]};
}
*/

está comentado, mas se remover para de funcionar!!!

Olá!!!

Após o Rafael Herculano, da equipe de teste e qualidade da Netmake,
entrar em contato comigo, foram detectadas as seguintes situações:

É possível atualizar o campo Select/Select2, através no onChange, das seguintes maneiras:

// VARIAVEL GLOBAL
[n];// BUG, NÃO É NECESSÁRIO NAS VERSÕES ANTERIOES A 9.6.008.
// CONFIGURADA COMO VARIÁVEL DE SAÍDA

NO EXEMPLO GRUPO / SUBGRUPO

1 - NECESSÁRIO LER/CHAMAR/REFERENCIAR O CAMPO GRUPO NO SEU PRÓPRIO ONCHANGE, POIS O GRUPO FAZ PARTE DO SELECT DO SUBGRUPO
DESSA MANEIRA O CAMPO VIRÁ, SEM TÍTULO/NEGAÇÃO

{grupo_id} = {grupo_id}; //REFERENCIA
sc_field_readonly({subgrupo_id}, off); //RECARREGA O CAMPO

2 - NÃO É NECESSÁRIO LER/CHAMAR/REFERENCIAR O CAMPO GRUPO.
DESSA MANEIRA O CAMPO VIRÁ, SEMPRE MOSTRANDO O PRIMEIRO REGISTRO

sc_lookup(ds,"SELECT idsubgrupo, nome
			  FROM grupos_subgrupos
			  WHERE grupo_id = {grupo_id}
			  AND ativo = 'S'
			  ORDER BY nome");

if (isset({ds[0][0]})) {

	{subgrupo_id} = {ds[0][0]};

}

3 - É POSSÍVEL DEFINIR O VALOR INCIAL DO CAMPO SELECT, TRAZENDO O SC_LOOKUP ATUALIZADO:
DESSA MANEIRA O CAMPO VIRÁ SEMPRE COM O REGISTRO ESPECIFICADO NO CAMPO (IDSUBGRUPO = 1)

sc_lookup(ds,"SELECT idsubgrupo, nome
			  FROM grupos_subgrupos
			  WHERE grupo_id = {grupo_id}
			  AND idsubgrupo_id = 1
			  AND ativo = 'S'
			  ORDER BY nome");

if (isset({ds[0][0]})) {

	{subgrupo_id} = {ds[0][0]};

}

Todas as opções foram testadas, junto com o Rafael que confirmou o BUG e o funcionamento.

Abraço!!!