Mostrar opções baseadas em outro campo

Bom dia, tenho um form chamado cadastro de Ordem de Serviço(OS), nele eu coloquei um campo select pegando os funcionários cadastrados em outro form, até aqui tudo bem, neste form (OS) também tem outro campo select chamado função do funcionário, este campo é alimentado pelo form de cadastro de função que também é utilizado no form de cadastro de funcionários:

Ex: Fulano de tal é Montador
Fulano tal é o nome do funcionário
Montador é a função.

No form de cadastro de funcionário está tudo OK, fica atrelado o funcionário a função dele.

Eu preciso que no form de cadastro de OS no momento em que o usuário seleciona determinado funcionário a função dele seja carregada automaticamente, o que acontece agora é que temos que escolher.

Agradeço antecipadamente a ajuda,

Leonardo Gonçalves

Bom dia Leonardo Gonçalves,
Tambem sou novado no scriptcase mas acho que posso ajudar.
Ja tentou colocar no campo select que pega os funcionarios um processamento ajax?
Passo a passo
Clica no campo
Vai ate a aba Processamento Ajax
marca o combobox Usar Ajax para recarregar outros campos do tipo Select, Duplo Select, Radio e Checkbox.
e marque o campo select que você quer trazer a função

apos fazer isso no select de função você vai ter que colocar um "where cod_funcionario = {CAMPO select do funcionario}

espero ter ajudado

Bom dia alcoforado, grato pela ajuda, mas vamos lá, quando você diz:

"apos fazer isso no select de função você vai ter que colocar um “where cod_funcionario = {CAMPO select do funcionario}”

Isso deve ser feito ainda no campo que pega o funcionário ou no campo que pega a função?

Mais uma vez agradeço seu empenho em ajudar-me.

Sim leonardo os 2 campos devem ser select, ai você faz o procedimento que o alcoforado disse e no lookup automático do campo de funcionários você acrescenta o WHERE função = {campo_função}.

Daí no onchange da sua função carrega os funcionários do campo funcionários de acordo com a função.

O sql alterado para colocar o where é o campo que vai ser atualizado ou seja no da função

Boa tarde a todos

Estou com um problema semelhante e resolvi da maneira que vcs estão dizendo, mas tem uma coisa: Quando o formulário é carregado o valor do campo que vai no filtro where ainda é branco então dá pau… Alguém sabe como resolver?

ele não da pau ele só não carrega nada, ai você vai lá no campo, em Lookup você coloca “usar título” você marca sim, e coloca o título, ex.: :: Selecione ::

Só para melhorar a estética.

Fiz o que o Robert, disse mas mesmo assim não funcionou, ele dá erro na query que preenche o combo pq o parametro está em branco. depois que dá o erro funciona normalmente.

Não era pra acontecer isso a query está assim:

SELECT ID, NOME
FROM TABELA
WHERE ID_PAI = {CAMPOANTERIOR}
ORDER BY NOME

??

Exatamente desse jeito, mas acabei descobrindo o problema, é só colocar o nome do campo entre apóstrofe, assim ‘{nome do campo}’. Meio esquisito pq a chave é numérica, mas funciona…

Valeu a força…

Bom dia pessoal, que bom que existiram vários posts.
Vamos lá, eu sou iniciante em sql.

O Robert Berbert disse para colocar assim:

SELECT ID, NOME
FROM TABELA
WHERE ID_PAI = {CAMPOANTERIOR}
ORDER BY NOME

Eu entendi que devo fazer isso no campo função, ficando como abaixo:

SELECT idfuncao, descricao
FROM funcao_func
WHERE idfunc = ‘{id}’ Agora aqui que me confundi, o ID_PAI seria o id da tbl de funcionários? e o campo anterior seria o campo select que pega os nomes dos funcionários?
ORDER BY NOME

Mais uma vez agradeço imensamente.

Léo

É como se existisse uma tabela de clientes e uma de funcionários, esse select vai na função do campo de funcionários. E ID_PAI é o id do cliente.

Como se fosse selecionar o cliente e no segundo campo fosse mostrado somente os os clientes desse funcionário?

Bom ai depende, pode tanto ser Funcionários dos clientes, como clientes dos funcionários.

No meu caso eu tenho um cadastro de funcionários de clientes.

Então o primeiro select é:

SELECT CLI_COD, CLI_NOME
FROM cliente
ORDER BY CLI_NOME

e o segundo é:

SELECT FUNC_COD, FUNC_NOME
FROM funcionario
WHERE FUNC_COD = ‘{CLI_COD}’

Onde o segundo SELECT carregará os funcionários deste cliente escolhido em {CLI_COD}.

Boa noite, fiz como orientado pelo amigo Robert Berbert, mas não deu certo, fica aparecendo este erro:
.

Colocarei abaixo as telas do banco, tabela funcionário, funcão e ordem de serviço.
Tabela Funcionário:

Tabela função:

Tabela Ordem de serviço:

Parte da tela do sistema:

Quando clicarmos em um funcionário deverá ser mostrado a função a qual ele é atrelado no form de cadastro de funcionário, veja tela abaixo:

Abaixo a configuração do campo select funcionário:

Abaixo a configuração do campo select funcao:

Aguardo help de vocês.

Obrigado

Coloca

SELECT idfuncao, descricao
FROM funcao_func
WHERE idfuncao = ‘{idfunc}’
ORDER BY decricao

Ola senhores,
Eu ja passei por um problema parecido, porem ao solicitar uma pessoa eu teria que carregar nao somente um, mais 8 campos, sei que o ideal serial lança somente o id da pessoa e depois fazer um inner join na consulta, mais nao era esse o problema, e sim que os dados dos campos de pessoas deveriam ficar dentro de outra tabela ao solicitar essa pessoa.
A solucao foi utilizar o Ajax onchange, fiz uma select de pessoas e um array ai depois é so fazer a ligacao com a tabela que ira reutilizar os campos com o scriptcase.

Exem:

Va em evento Ajax escolha um campo escolha onChange coloque o codigo abaixo

sc_lookup(ds,“SELECT FUNC_COD, FUNC_NOME FROM funcionario WHERE FUNC_COD = ‘{CLI_COD}’”);

{idfuncao} = {ds[0][0]};
{Nome} = {ds[0][1]};

Ai pronto ao selecinar o funcionário para o OS, ira o nome dele e a funcao para dentro da tabela ordem de serviço

Atenciosamente Arquimedes