Amigo,
tenho uma aplicação Formulario, para cadastro de consulta médica. Quando altero uma informação e clico em Atualizar recebo uma mensagem de erro “Trying to get property of non-object”.
Não sei qual a origem do erro. Já procurei na internet e nada achei.
Agradeço antecipamente a ajuda.
JLuiz
JLuiz,
Esse form está atualizado? Tipo, está sincronizado com a tabela?
Kleyber,
vou verificar e retorno, pode ser que tenha ocorrido, pois fiz algumas alterações.
Kleyber,
Verifiquei a aplicação, nada a alterar na sincronização. Gerei a aplicação novamente. Execute e continua o mesmo erro. Não preciso nem alterar o registro, basta clicar em atualizar.
Dê uma olhada também nos eventos, se criaste alguma coisa que pode estar gerando esse erro. Se nada der certo, tente criar um outro form igualzinho, pra ver o que acontece.
Kleyber, mais uma vez obrigado. Realmente eu implementei algumas funcionalidades. Vou verificar.
Este formulário me deu um certo trabalho para fazer, pois o cliente queria que fosse parecido com a tela do sistema anterior.
Saudações,
JLuiz.
Kleyber,
realmente não encontrei nada diferente que possa justificar o erro.
Não sei qual a origem do erro, como também não sei o que causa o erro. Não encontrei nada que fale desse tipo de erro.
Se souber o que causa o erro agradeço.
Saudações
JLuiz
jlmonteiro, isso costuma acontecer por 2 motivos.
1 - Se você tiver um sc_lookup e não está tratando o retorno ex.: if (isset({rs[0][0]})).
2 - Ou você tem algum campo que está com quebra de linha, e está afetando o JavaScript do atualizar.
Me responda algumas coisas para que eu possa concluir:
Você tem algum campo do tipo Duplo-Select?
Você fez algum código mais complexo?
Robert,
me desculpe não ter respondido antes, não tive tempo hábil para responder.
Bem, minha aplicação é formada por um filtro, um formulário (Consulta Médica) que possui um aplicação mestre-detalhe que é um formulario Grid editável (Problemas).
Regra do negócio: PACIENTE 1:N CONSULTA MEDICA :: CONSULTA MEDICA 1 : N PROBLEMA
Aplicação: Filtro Paciente que chama Formulario Consulta Médica que chama Formulário Grid Editável Problemas.
Inicio pelo filtro que possui uma lookup para selecionar por nome ou posso somente digitar o numero do paciente. Tem uma lookup para selecionar paciente que passo para aplicação formulario Consulta Médica como Global.
A aplicação formulário, onde mostra os dados da consulta Médica, recebo a Global no campo num_paciente que possui uma lookup (numero autocomplete) para mostrar o nome do paciente.
Se já existir uma ou mais consultas médicas cadastradas anteriormente o select trás todas elas (o usuario solicitou que trouxesse sempre a ultima consulta - seleciono em ordem decrescente por data de consulta do mesmo paciente). Mostra os dados da ultima consulta. Qualquer alteração no formulario Consulta Médica é necessário ser atualizado(botão Atualizar). É neste momento em que atualizo que recebo a mensagem de erro.
Se não existir qualquer Consulta Médica abre uma nova consulta automaticamente.
Tem também a opção de criar um Nova Consulta (botão Nova Consulta).
O formulário Grid, (mestre/detalhe) é mostrado, mas sua inclusão independe. Uma consulta médica pode ou não ter um ou mais problemas para serem cadastrados.
A ultima alteração que fiz foi criar no Formulário Grid Problemas ( detalhe do mestre Consulta Medica) a opção de poder cadastrar um novo problema ( campo codigo do problema), através de uma ligação na qual chamo o formulário para cadastrar novo problema, caso não exista ainda na tabela de problemas que devem ser selecionados para cada consulta médica) e alterei a largura dos formulários para melhorar o layout.
Duas coisas me chamaram atenção:
1 - O formulario Grid - Problema - é independente do formulário Consulta Médica.
2 - Tenho outra aplicação que faço a mesma coisa e não está me trazendo o erro.
3 - Este erro não ocorria antes.
Respondendo a suas perguntas:
1 - as lookups que tenho são no filtro e no formulário Consulta. Já existiam anteriormente e não davam problemas. Não faço tratamento de if (isset …) pois, como não dava erro anteriormente nunca fiz. Além do que, ele sempre traz somente um registro, que se não existir não é mostrado na lista para selecionar. E a lookup na consulta médica, ele carrega o nome do paciente que veio como Global.
2 - Não tenho nenhuma quebra de linha.
3 - Não tenho duplo select
4 - a única coisa que faço são os calculos dos campos diferença de peso, IMC (indice de massa corpórea) e Condição de Peso, mas é muito simples.
5 - Tenho 2 eventos Ajax, no qual um deles utilizo um sc_select para buscar o peso da consulta anterior, faço o tratamento e apresento na tela. Se não encontrar mostro a diferença de peso igual a ZERO.
Se achar conveniente anexo a aplicação e as tabelas que utilizo.
Mais uma vez agradeço o esforço de todos e aguardo.
Sds,
JLuiz
Bom Luiz, eu recomendo você ir comentando partes do código, mesmo que antes funcionassem, e as vezes quando você utiliza lookups e logo em seguida usa a variável de retorno pode acontecer. Mas agora o mais importante é isolar o erro.
Ex.:
Você comenta o que tem na onBeforeInsert, verifica se ainda da o erro, se não verifique no ajax, e assim vai até que o error vai sumir. Se não sumir ai você já deve entrar em contato com a NetMake, que te adiantando já vou dizer que vai mandar você re-instalar o sc manualmente, e se não der certo vão te mandar refazer a aplicação, ou se você tiver sorte alguém resolverá para você.
Agora o sorteado foi eu kkkkk…
Estou recebendo o mesmo erro Trying to get property of non-object
Ao checar os códigos não achei nada de anormal.
Será que houve avanços no SC sobre isso?
Olá…
Estou passando pela mesma situação, alguém passou pelo problema e chegou a alguma solução
?
Resolução refazendo a aplicação infelizmente.