Bom dia, pessoal
Sou novato no SC.
Tenho um campo tipo Select:
Valor | Label
1 | Laranja
2 | Banana
3 | Melão
Como faço para pegar o Label em vez de o Valor selecionado?
Att.
Bom dia, pessoal
Sou novato no SC.
Tenho um campo tipo Select:
Valor | Label
1 | Laranja
2 | Banana
3 | Melão
Como faço para pegar o Label em vez de o Valor selecionado?
Att.
Tem várias maneiras para isso, os colegas sabem melhor do que eu, vou sitar 2 delas.
Utilize Lookup na própria configuração do campo. http://www.scriptcase.com.br/blog/utilizando-as-macros-sc_lookup-e-sc_exec_sql/
Se o dado estiver em outra tabela:
/**
// Check for record
$check_sql = “SELECT state_name, region”
. " FROM States"
. " WHERE state_id = ‘" . {field_state_id} . "’";
sc_lookup(rs, $check_sql);
if (isset({rs[0][0]})) // Row found
{
{other_field} = {rs[0][0]};
{other_region} = {rs[0][1]};
}
else // No row found
{
{other_field} = ‘’;
{other_region} = ‘’;
}
Esse exemplo está no próprio SC.
Meu Select está assim no formulário configurado:
Nome do Campo: frutas
Método para Lookup: “Manual”
Conteúdo:
Label (Valor)
Laranja(1)
Banana(2)
Melão(3)
Vamos supor que o usuário selecione “Banana”, então SC deverá substituir o Label de um outro campo chamado “descricao” tipo: Text pelo Label escolhido no campo “frutas”, conforme abaixo:
if(!empty({frutas})){
sc_label(“descricao”) = {frutas};
}
Só que ele está preenchendo com o Valor do campo “frutas”, no caso, “2”, mas deveria ser “Banana”.
Já tentei colocar {frutas[0][1]} e não aparece nada.
Olá julianosc,
Mude então para:
Conteúdo:
Label (Valor)
Laranja(Laranja)
Banana(Banana)
Melão(Melão)
E veja se mostra corretamente.
Problema que preciso gravar o número no banco de dados do campo select “frutas”, FK de outra tabela. Só fiz lookup manual para carregar mas rápido o form.
Esse look up é o manual?
Então cria no seu banco uma tabela “frutas” e nela cadastra as frutas e use o lookup automático que certeza que vai da certo.
Ou se é fk de outra tabela da pra usar um inner join pra trazer o nome ao invés do número.
Abraço!
Tente
//lookup auto
if(!empty({frutas})){
faça um sc_lookup buscando a descrição
sc_label(“descricao”) = {nomelookup[0][0]};
}
ou
//lookup manual
if(!empty({frutas})){
if({frutas}==1)
{
sc_label(“descricao”) = “Nome 1”;
}
else if({frutas}==2)
{
sc_label(“descricao”) = “Nome 2”;
}
… etc
}
Era isso que queria evitar, por causa de manutenções futuras, até iria usar “switch”. Mas obrigado mesmo assim a comunidade. Achei que o SC tinha como pegar o Label.
Isso resolverá usando a opção que passei
Pessoal, consegui assim somente com JavaScript, vou compartilhar aqui:
Se alguém quizer melhorar, estamos aberto a sugestões.
Obrigado
Bom dia, Pessoal
Eu tentei automatizar esse Processo para reutilizar com outros campos da seguinte forma:
Mas não consegui fazer funcionar, porque o método JavaScript não retorna nada. Alguém tem ideia?
Att.
Legal, obrigado por compartilhar.