BOTÃO ATUALIZAR EM APLICAÇÃO EM ABAS PAROU DE FUNCIONAR

(Agostinho) #1

Tenho uma aplicação em abas, na primeira aba, aonde possuo a tabela que seria a principal(mestre), tenho o botão atualizar(padrão do SC5), ele simplesmente parou de atualizar do nada, sem mais nem menos, vi algumas dicas aqui no forum, mas nenhuma resolveu, e justamente hoje to no cliente implantando o sistema. Alguma dica do que poderia ser?

(Cleyton Euler) #2

Isso acontece comigo quando tem alguns bug em código em eventos. Só funciona a primeira ação, dá o erro e o botão para, mas percebi que para todos os botões da aplicação.

(Agostinho) #3

Acabei de ver que o problema ocorre porque setei o formulario para usar AJAX, antes não tinha, se tiro o uso do AJAX ele funciona, se coloco o uso do AJAX ele para, e o codigo do evento ajax ta certo cfe orienta o manual.

sc_lookup(dataset, “select id from pessoa where id = {cliente}”);
if ({dataset} === false){
echo “Erro de acesso. Mensagem = {meus_dados_erro}”;
}else{
if (empty({dataset})){
echo "Comando select não retornou dados ";
}else{
{cliente} = {dataset[0][0]};
$SES_PESSOA = {cliente};
sc_set_global($SES_PESSOA);
}
}

(Diogo Toscano) #4

Acredito que nao seja isso. Para o botão não funcionar, o erro esta na ponta(cliente) … abra como mozilla firefox, abra o console de erros … deve estar dando algum erro de javascript.

(Agostinho) #5

Erro: document.F1.elements[sFieldName].value is undefined
Arquivo-fonte: http://192.1.1.20/scriptcase/app/Despachante/form_ordem_servicos/form_ordem_servicos.php#bloco_0
Linha: 1583

Apareceu esta mensagem, no programa esta assim:

1579| function ajax_form_ordem_servicos_validate_veiculo($veiculo, $script_case_init)
1580| {
1581| global $inicial_form_ordem_servicos;
1582| //register_shutdown_function(“form_ordem_servicos_pack_ajax_response”);
1583| $inicial_form_ordem_servicos->contr_form_ordem_servicos->NM_ajax_flag = true;
1584| $inicial_form_ordem_servicos->contr_form_ordem_servicos->NM_ajax_opcao = ‘validate_veiculo’;
1585| $inicial_form_ordem_servicos->contr_form_ordem_servicos->NM_ajax_info[‘param’] = array(
1586| ‘veiculo’ => NM_utf8_urldecode($veiculo),
1587| ‘script_case_init’ => NM_utf8_urldecode($script_case_init),
1588| ‘buffer_output’ => true,
1589| );
1590| if ($inicial_form_ordem_servicos->contr_form_ordem_servicos->NM_ajax_info[‘param’][‘buffer_output’])
1591| {
1592| ob_start();
1593| }
1594| $inicial_form_ordem_servicos->contr_form_ordem_servicos->controle();
1595| exit;
1596| } // ajax_validate_veiculo

Alguma dica, porque aqui ja é codigo gerado pelo SC e não por mim

(Agostinho) #6

Não sei se tem a ver, mas na mesma aplicação tenho um campo que esta definido no banco de dados com varchar(30) e no programa estou usando tipo select, com lookup manual, ao selecionar qualquer item do select que não seja o primeiro ele atualiza no BD mas na tela fica sempre aparecendo o primeiro, ja exclui, fiz ele volta, mas não adiantou nada, ta muito estranho tudo isso, e justo hoje na implantação, parece macumba isto.

(Agostinho) #7

pegando o erro que mostra no mozilla, aparece a linha diferente da que esta exibindo no SC5, veja a linha abaixo

function scAjaxGetFieldHidden(sFieldName)
{
return document.F1.elements[sFieldName].value.replace(/[+]/g, “NM_PLUS”);
} // scAjaxGetFieldHidden

Agora, qual é o correto, este ou o outro que é mostrado no SC quando clico em exibir código fonte

(Diogo Toscano) #8

O que o sc exibi é codigo php e nao interpretado.

O erro eh referente ao javascript … voce alterou algo? com certeza não parou de um dia por outro por nada … o que mais voce modificou na aplicação? …

So vendo o seu codigo fonte … seus eventos …

(Agostinho) #9

Apenas foi criado o evento ajax que reportei acima, mais nada, tanto que tirando ele e desativando o uso do ajax, funciona normal.

(Agostinho) #10

Caso queira, posso liberar para vc acessar minha maquina pelo logmein, sem problemas, porque mandar o fonte é meio complicado, mas acessando remotamente é mais facil, basta entrar em contato comigo pode ser via MSN (agostinhofb@hotmail.com) ou via fone( 41) 9936-7879, ou então me passar seu telefone que eu ligo para podermos ver. Agradeço a atenção.

(Agostinho) #11

Entrei na base de dados do scriptcase e na tabela sc-tbcmp e em 4 colunas fazia referencia a ISO8859_1, def_complemento, texto_xml, ajax_dados, attr1, dei um update nelas movendo valor NULL, e o botão de atualizar voltou a funcionar, fiquei ainda com o programa do encoding UTF8…

(Diogo Toscano) #12

tu tirou o evento e desabilitou o ajax … e deixando o ajax ligado, funciona? sem o evento? e com o evento mas deixando o ajax desligado, funciona? ta cheirnado a outra coisa …

(Agostinho) #13

Diogo, independente de ter algo ou nao, com o ajax habilitado nao tava funcionando nao, mas creio que isto é pau do SC mesmo, porque depois que apaguei 4 colunas nas tabelas do SC voltou a funcionar, o duro é que terei que fazer isto para todas as telas do sistema. Uma outra coisa curiosa, tenho 3 campos (data inclusao, data alteracao, usuario), esses campos estão marcado para serem LABEL, se consulto o cadastro, esta aparecendo como label, se clico em NOVO ele habilitando os campos para receberem dados.

(Diogo Toscano) #14

era isso que eu queria saber … nao tinha nada a ver com o evento. E sim, algum erro, que ja devia ter, de javascript … que com o ajax da erro pois esta usando tais funcoes … mas agora que tu mexeu nao temos como saber o que era … entao deixa

(Agostinho) #15

Andei pesquisando no forum e vi que desde a versão 3 isso é um problema, as resposta que deram foi de tirar a mensagem de atualização, la em aplicação/navegação, mas eu nunca usei elas, então não é este o caso, no suporte me falaram que o problema sempre é de código errado na aplicação, mas isto não explica o porque, se desativar o ajax, a atualização é feita,e creio eu que se é um BUG que acontece desde a versao 3, deveria no minimo ja ter sido resolvido pela NM e não ficar culpando código feito pelo desenvolvedo, vou tentar obter mais prazo com o meu cliente para fazer a implantação, vou ter que passar por isso, e tentar achar uma outra solução.

(Diogo Toscano) #16

Pra pegar precisamos que o botão continue dando o erro … pois o erro pode ser outro nada a ver … com um simples enter num alert do javascript … mas se o javascript contiver erro … todas as chamadas javascript param de funcionar.

Entao precisamos ver o codigo (html do browser) gerado para ver o que pode estar quebrando pra saber a solução definitiva, e não paliativa.

Se alguem tiver esse problema, verifica na console de erro do firefox se esta dando erro de javascript e ver se eh possivel dar um acesso via url pra gente pode verificar …

(julianoo) #17

Pessoal,

Estou com mesmo problema. Coloquei este codigo em OnBeforeInsert e OnBeforeUpdate
/* Macro sc_lookup */

sc_lookup(dsproduto, “SELECT NM_PRODUTO FROM produto WHERE (CD_PRODUTO = ‘{CD_PRODUTO}’)”);
echo “SELECT NM_PRODUTO FROM produto WHERE (CD_PRODUTO = ‘{CD_PRODUTO}’)”;
/* Erro no lookup /
if (FALSE === {dsproduto}) {
sc_error_message(“Ocorreu um erro no acesso ao banco de dados.
”);
}
elseif (empty({dsproduto})) { /
EOF */
sc_error_message(“Nenhum valor foi retornado pelo banco.
”);
}
else {

{DESCRICAO} = {dsproduto}[0][0];

}

O Atualizar parou de funcionar. Se abro a aplicacao a primeira vez ele aceita o botao novo, depois de inserir, ele para de funcionar os botoes novo, atualizar e excluir.
Ja apaguei todos os eventos o problema continua, esta página estava funcionando normalmente antes de tentar colocar um evento.
Observação: Esta página de formulário é aberta em um iframe usando uma ligação de uma página de consulta. Ja testei abrir apenas a página do formulário e o erro é o mesmo.
Será que é pau no SC???

(Diogo Toscano) #18

Tem como disponibilizar acesso(url) para essa aplicação? preciso ver ela rodando para ver o que é … se mesmo apos tirar os eventos ainda esta parado … gostaria muito de tentar pegar esse problema …
So pra adiantar abre o console de erros no firefox e ve se tem erro de javascript na carga e apos pressionar atualizar.

(julianoo) #19

Diogo,

Disponibilizei o sisteminha que to fazendo pra vc dar uma olhada.
http://www.laboratoriobiolabor.com.br/siscompras
pra ver o erro siga os passos:
movimento, consulta licitacoes, escolha o primeiro da lista pra edição;
Clique em “atualizar” o erro esta na próxima tela “Atualização - Por Itens”.
Troca algum valor e tenta atualizar.

obs: esta aparecendo Output, que localmente isto nao acontece, será que esqueci de subir algo ou é problema com a uolhost?

(Diogo Toscano) #20

Me diz 1 valor valido para a variavel idPregao da aplicação http://www.laboratoriobiolabor.com.br/siscompras/grid_itens_pregao/grid_itens_pregao.php

o problema nao eh form q abre … eh depois pelo visto …