como usar o checkbox (Resolvido)

(bitsystems) #1

Pessoal,

Como eu uso o checkbox?
Eu não estou entendendo…

Aguardo resposta.
Grato,

Tiago Sanches

(bitsystems) #2

tipo eu crio no banco de dados uma informação do tipo bool, dai no scriptcase quando coloco para ele ser checkbox ele quer fazer um select, que select é isso?

Grato,

tiago Sanches

(Diogo Toscano) #3

Checkbox é para permitir mais de 1 seleção.

No seu caso, estritamente, seria true ou false(1 ou 0).

Voce nao precisa informar o select, voce pode setar manualmente e criar 1 opção:
Label: Sim
Valor: 1

Por exemplo …

(bitsystems) #4

Diogo, boa tarde vejamos se entendi,

no meu caso tenho 36 itens de opções
no banco de dados eu crio as 36 e manualmente seto cada uma?

grato pela resposta.

Tiago Sanches

(Haroldo) #5

da mesma forma que que um campo do tipo select (multipla seleção).

Crie o campo do tipo CheckBox, coloque o select que retornará as 36 opções.}
Execute a aplicação e habilite algunas do checkbox exibidos, salve e olhe no banco como fica.

Na sua tabela esse campo deve ser um varchar co tamanho necessário para guardar os ids retornados e selecionados na aplicação.

Melhor coisa para entender, é testar, usar a opção e para ver como ela funciona.

Abçs

(bitsystems) #6

Haroldo,

Interessante, ele gravou no banco de dados isso: 1;2;3;35;4;36;5;6;7

dai eu consigo pelo select pegar o que é cada item selecionado em outra aplicação?

Grato,

Tiago Sanches

(Haroldo) #7

isso mesmo, em outra aplicação vc faz:

select campos from tabela where id in ({campocheckbox})

(bitsystems) #8

Haroldo, bom dia…
Mais uma vez te agradeço muito pelas respostas e obrigado pela pasciencia.
Te encomodando mais um pouco vejamos, vou entender o comando passado

Minha Tabela de exames, onde estão os 36 exames:

labexcodigo bigint(20) Não None auto_increment
labexexame varchar(40)

Minha tabela onde eu seleciono os exames de cada função:

funcaoxexamecodigo bigint(20) Não None auto_increment
funcao bigint(20) Não None
tipos varchar(200)

Resultado gravado no banco de dados da tabela exame x função:

funcaoxexamecodigo funcao exame tipos
2 1 0 3;4;9;11

O Comando seria:

select labexexame from exames where id in ({tipos});?

Esse ID é algum parâmetro que tenho que informar?

Grato desde já

Tiago Sanches

(bitsystems) #9

Haroldo,

Este comando eu consegui pegar o primeiro, mas somente o primeiro:

SELECT labexexame
FROM labexames
WHERE labexcodigo = ‘{tipos}’

estou pesquisando sobre o in para ver se com ele posso resgatar os outros valores.

grato,

Tiago Sanches

(Haroldo) #10

No seu campo checkbox use como delimitador a virgula que vai funcionar com o IN.

(Diogo Toscano) #11

Exato … visto que ta gravando “1;2;3;35;4;36;5;6;7”.

eu sempre prefiro fazer relacionamento, fica mais facil de fazer relatorio, manter integridade, usar indeces para pesquisa(performance) e etc…

(bitsystems) #12

Haroldo e Diogo

Obrigado pela resposta resposta de vocês.
Gente eu fussei, fussei e não localizei onde eu troco o ; por , .

Diogo,
Já abusando de sua boa vontade nas respostas de minhas questões, como vc varia esse relacionamento?

Grato mais uma vez

Tiago Sanches

(bitsystems) #13

Gente achei, o delimitador… só faltou ler com calma… valeu to fazendo o teste

(bitsystems) #14

Beleza deu certo, o comando que utilizei foi:

SELECT labexexame FROM labexames
WHERE labexcodigo in ({tipos})
ORDER BY labexexame

colocando no delimitador “,”.

Valeu pessoal

Grato,

Tiago Sanches

(Diogo Toscano) #15

pelo nome dos campos e tabela … vc ta usnado esse campo checkbox pra informar quais exames um determinado laboratorio faz?

(bitsystems) #16

Isso

Estou desenvolvendo um sistema para uma clinica de exames ocupacionais.

Grato,

Tiago Sanches

(Diogo Toscano) #17

voce precisaria ter tabela de laboratorios, tabela de exames e uma tabela de relacionamento para juntar as duas.