[RESOLVIDO]Erro no form com campos virtuais

Bom dia! Estou fazendo um form com 2 campos virtuais, quando coloquei o 1º botão (ajax) a app compilou perfeitamente, quando acrescentei o demais botões a app dá erro!

Alguém consegue me ajudar?

segue imagem.
https://mega.nz/#!jTx3xDTS!c1WS5fYS3NnPB5iEdMWFsCPKXgQTEwZF0C64B8OfzLs

Att

Olá, já editou o fonte para ver o que consta nessa linha? Qualquer coisa posta parte do código aí pra gente …

O erro já foi resolvido. O HAROLDO me ajudou

obrigada

Acessei remotamente a máquina da Mariangela para analisar o problema e resolvi deixar o relato aqui como orientação para aqueles que estão começando no Scriptcase.

Levei mais de meia hora para detectar o problema e seria impossível detectá-lo sem ter acessado o Scriptcase onde a app com erro se encontra.

Primeiro o erro , analisando a linha no código fonte não intui a absolutamente nada: $this inesperado.

Comentando todo código manual nos eventos, tudo ok. Quando se ia se removendo os marcadores de comentário o erro surgia.
Como existiam campos virtuais o Scriptcase literalmente estava rejeitando o campo virtual de nomes {cv_equipe} e {cvEquipe} (que recriei para testes). Finalmente o erro parou quando exclui o campo virtual e recriei como {cvEquipeGrid}.
Nota: O erro só ocorria quando {cv_equipe} recebia o valor de um método php dentro do evento de um botão ajax, em outros eventos o mesmo código o erro não ocorria. Notei um evento ajax onchange para um campo de nome {Equipe} (mas esse campo não estava listado em campos, nem em edição de campos nem em posicionamento de campos). Acredito que o mesmo tenha sido removido como campo mas seu evento ajax onchange não foi removido, o que me leva a pensar:

Dica para os iniciantes na ferramenta:

Acredito eu, concluindo que o desenvolvedor mexeu tanto na aplicação que ela foi se corrompendo internamente. Cria campo, exclui campo, cria evento exclui evento, cira botão exclui botão e como suspeita-se o Scriptcase não consegue realizar essas ações de forma intensa com perfeição causando esse tipo de erro, que as vezes leva a jogar a aplicação fora e refazê-la.

Sugiro que antes de iniciar o desenvolvimento de uma aplicação, primeiro, mantenha fechada abas de outras aplicações, trabalhe somente em uma por vez e desenvolva toda sua estratégia, todo seu layout e lógica antes de começar o desenvolvimento para quando criar a aplicação apenas aplicar o que planejou, em vez de ficar mudando aqui mudando ali, pois o Scriptcase se estranha ainda mais quando o código vai ficando complexo.

Outra dica: Operem a IDE com calma, sem muitos cliques rápidos aqui e ali pois dependendo dos recursos processamento do servidor onde o Scriptcase está instalado podem haver delays e perca de pacotes em processos de I/O em seu banco de dados.

Foi um verdadeiro desafio descobrir a falha.

Sábias palavras mestre Haroldo.

Essas dicas do Haroldo valem ouro, eu penei mto no início (não que ainda não pene) com esse tipo de problema. Uma prática que adotei e que ajudou muito, se for excluir o que você criou anteriormente, procure excluir na ordem inversa de criação, ou seja, a última coisa criada deve ser a primeira a ser excluída.

Ainda assim observo comportamentos inexplicáveis com campos em formulários simples. Ontem mesmo me deparei com um problema que não tinha lógica ao atualizar uma label:

  1. Dentro de um evento ajax de um campo, após fazer um teste, eu preenchia a label com uma mensagem de alerta, algo como:
{label} = "Mensagem: bla bla bla {campo}". 
  1. Se o teste não fosse positivo, simplesmente alimentava a label com o texto padrão:
{label} = "Mensagem:"; 

Após ter passado uma vez pelo evento ajax testando com o valor verdadeiro, a mensagem do item 1 era preenchida corretamente, mas, se eu repetisse a operação, forçando falso no teste, ele simplesmente não era capaz de mudar a mensagem para o texto padrão.

Confirmei que estava entrando no teste falso onde atualizava a label com o texto padrão usando uma mensagem ajax… mas o texto da label não atualizava.

Então resolvi, não sei nem pq, mudar o texto padrão para “teste”… E ENTÃO ATUALIZOU!

Como podem ver no exemplo, era um texto simples, sem erros, sem validações, sem concatenações, apenas texto estático.

Para manter o texto padrão que já tinha colocado internamente no componente, apenas adicionei um espaço em branco a mais no final do texto que eu já usava…

{label} = "Mensagem:  "; 

Se alguém tiver uma explicação lógica pra isso, eu agradeço, pra mim, esse comportamento é errático.