Autor Tópico: [RESOLVIDO] Select dá erro se depender de outro select com opção valor negativo.  (Lida 400 vezes)

Flávio Henrique

  • Novato
  • *
  • Mensagens: 24
    • FHSYS Soluções em TI
Pessoal boa tarde, estou tentando fazer com que um campo select(2) retorne registros dependentes do campo select anterior (1).

Eu coloquei no campo select 1 para buscar os registros e configurei o valor negativo "0" com a opção "SELECIONE". Marquei a opção do AJAX on change para recarregar o campo select 2.

O problema é que, ao carregar o formulário, o mesmo já exibe um erro dizendo que tem erro na consulta. Mas isso acontece por causa do campo negativo. Se eu clicar no select 1 e alterar o valor, a tela de ajax aparece, mas o campo select 2 já não é exibido, pois deu o aviso de erro.
Caso eu desmarque a opção de ajax do select 1 e marque a opção para recarregar formulário, ao executar a aplicação o select 2 também avisa do erro, mas ao recarregar pela opção do select 1 o erro some e o select 2 retorna com os registros.

Exemplo do Select 2 colocado no scriptcase:
Citar
SELECT id_usuario, nom_usuario
FROM usuario
WHERE id_tpususario <> 2
AND id_departamento = {id_departamento}
ORDER BY nom_usuario

Erro no Ajax:
Citar
Erro ao acessar o banco de dados
ERRO: erro de sintaxe em ou próximo a "ORDER"LINE 6: ORDER BY nom_departamento ^
View SQL
SELECT id_usuario, nom_usuario FROM usuario WHERE id_tpusuario <> 2AND id_departamento = ORDER BY nom_usuario

Alguém já encontrou o mesmo problema? Gostaria que o sistema fizesse pelo AJAX mas com o valor negativo no select 1...
« Última modificação: Junho 22, 2016, 02:32:47 pm por Flávio Henrique »
Flávio Henrique
Analista de Sistemas
Niterói/RJ
www.fhsys.com.br

Thyago Brasil

  • Expert
  • *****
  • Mensagens: 884
  • Crê no Senhor Jesus e será salvo tu e tua família
    • www.brasdesign.com.br
    • Email
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #1 Online: Junho 15, 2016, 08:18:29 am »
Bom dia Flávio: Vc selecionou a opção "Usar Ajax para recarregar outros campos do tipo Select, Duplo Select, Radio e Checkbox."?
Thyago Brasil
Desenvolvedor Web
Site: http://www.brasdesign.com.br

SC 5.02/SC 8.1

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #2 Online: Junho 15, 2016, 10:13:48 am »
Bom dia Flávio: Vc selecionou a opção "Usar Ajax para recarregar outros campos do tipo Select, Duplo Select, Radio e Checkbox."?

Justamente isso. Use essa opção apontando para o campo que queira ser recarregado.
F. A.
Analista de Sistemas

Flávio Henrique

  • Novato
  • *
  • Mensagens: 24
    • FHSYS Soluções em TI
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #3 Online: Junho 16, 2016, 02:17:54 pm »
Olá pessoal, eu realmente havia feito isso, marquei no select 1 a opção
Citar
"Usar Ajax para recarregar outros campos do tipo Select, Duplo Select, Radio e Checkbox."
e selecionei na caixa abaixo o campo select 2.
Vocês estão conseguindo utilizar esse método normalmente?
Flávio Henrique
Analista de Sistemas
Niterói/RJ
www.fhsys.com.br

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #4 Online: Junho 18, 2016, 01:07:52 pm »
Olá pessoal, eu realmente havia feito isso, marquei no select 1 a opção
Citar
"Usar Ajax para recarregar outros campos do tipo Select, Duplo Select, Radio e Checkbox."
e selecionei na caixa abaixo o campo select 2.
Vocês estão conseguindo utilizar esse método normalmente?

Sim, normalmente! Sugiro que coloque um passo a passo de como esta fazendo para que possamos ajudar com mais firmeza.
F. A.
Analista de Sistemas

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1148
  • .....
    • Email
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #5 Online: Junho 19, 2016, 07:07:20 pm »
Proteja o valor


SELECT id_usuario, nom_usuario
FROM usuario
WHERE id_tpususario <> 2
AND id_departamento = '{id_departamento}'
ORDER BY nom_usuario

Flávio Henrique

  • Novato
  • *
  • Mensagens: 24
    • FHSYS Soluções em TI
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #6 Online: Junho 20, 2016, 02:55:42 pm »
Pessoal, não sei se isso influencia, mas estou utilizando o projeto com conexão ao PostgreSQL, mas vamos lá. Abaixo mostro os passos que utilizei:
1ª No select1 (id_dependencia), faço meu lookup automático marcando usar Título/Negação conforme print:


2ª No select2 (id_setor), utilizo o select buscando uma comparação do campo id_dependencia do banco de dados = id_dependencia do formulário:


3ª Ao executar o formulário, o mesmo já aparece exibindo a mensagem de erro:


O campo id_dependencia neste formulário é manual que eu criei... não vem desta tabela na qual faço o formulário está vinculado... isto tem algo a ver?
Como podem ver, este modelo está com o valor "protegido" mas não influenciou em nada, se eu tirar o "'" ele simplesmente exibe o mesmo erro.

Minha única alternativa foi no evento onLoad eu verificar o id_dependencia == 0 eu desabilitar ou habilitar o campo {id_setor}, fazendo com que o select do id_dependencia fique com a opção "Recarregar formulário após alteração do valor". Com isso o formulário funciona, mas não queria que o mesmo ficasse recarregando na tela, já que o próprio scriptcase tem essa opção de Ajax.

Flávio Henrique
Analista de Sistemas
Niterói/RJ
www.fhsys.com.br

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #7 Online: Junho 20, 2016, 03:06:15 pm »
qual o banco de dados?

Flávio Henrique

  • Novato
  • *
  • Mensagens: 24
    • FHSYS Soluções em TI
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #8 Online: Junho 20, 2016, 03:45:29 pm »
Flávio Henrique
Analista de Sistemas
Niterói/RJ
www.fhsys.com.br

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1148
  • .....
    • Email
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #9 Online: Junho 20, 2016, 05:05:31 pm »
vishh dai é rolo.

e convert to int? não da?  P.D não sei como é no Postgres

Flávio Henrique

  • Novato
  • *
  • Mensagens: 24
    • FHSYS Soluções em TI
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #10 Online: Junho 20, 2016, 05:27:15 pm »
vishh dai é rolo.

e convert to int? não da?  P.D não sei como é no Postgres


estranho... o problema não é o convert em si, é que o campo não aceita o de cima como passagem de parâmetro... por isso reluto em pensar que é problema do banco, pois se o valor negativo "0" estivesse sendo aceito pelo formulário, o banco retornaria normalmamente...
Flávio Henrique
Analista de Sistemas
Niterói/RJ
www.fhsys.com.br

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #11 Online: Junho 20, 2016, 06:40:16 pm »
Tire as aspas simples na comparação, o PostgreSQL não aceita delimitar campos inteiros com aspas.

Nota pode vir vazio que está sendo seu caso.
Veja tipo do campo sc se está como int.
 

Flávio Henrique

  • Novato
  • *
  • Mensagens: 24
    • FHSYS Soluções em TI
Re:Select dá erro se depender de outro select com valor negativo selecionado.
« Responder #12 Online: Junho 22, 2016, 02:28:18 pm »
Tire as aspas simples na comparação, o PostgreSQL não aceita delimitar campos inteiros com aspas.

Nota pode vir vazio que está sendo seu caso.
Veja tipo do campo sc se está como int.
 
Haroldo, o meu select está por padrão sem aspas, mas a fim de testes eu coloquei no exemplo...
Baseado na sua observação quanto a vir vazio, efetuei um teste e coloquei um valor inicial no campo {id_dependencia}. Selecionei valor definido e 0 como o Valor Inicial, e o erro não apareceu mais.
Acredito que o Scriptcase não esteja entendendo que o campo com opção de valor negativo deve ser iniciado junto da aplicação e o select.
A princípio o caso foi resolvido. Agradeço a todos pela ajuda!
Flávio Henrique
Analista de Sistemas
Niterói/RJ
www.fhsys.com.br