Boa tarde o/
Tenho que fazer uma ficha com algumas perguntas e tenho vários CheckBox para salvar e depois teria que imprimir um relatório com esses dados…
Ex:
Pergunta 1:
CheckBox1
CheckBox2
CheckBox3
CheckBox4
CheckBox5
É melhor eu criar um campo do tipo BOOLEAN no BD para cada CheckBox ?
[]'s
Existem várias maneiras de fazer isso, acredito que da forma que você falou seja uma boa opção, caso o usuário possa selecionar mais de uma opção na resposta.
Depende … Seriam varios checkbox para cada pergunta?
Seria sempre o mesmo número de checkBox para cada pergunta?
Poderia ser marcado mais de um checkbox para cada pergunta?
Na primeira pergunta tem 9 CheckBox na segunda tem 7, podendo escolher vários CheckBox.
Uma idéia…
Porque vc não cria somente um campo no banco chamado resposta…
Então vc concatena todas as marcações da pergunta para uma string e grava no banco
Vc define como o checkbox marcado como S e não marcado como N e relaciona na posição 1 seria a marcação do checkbox 1 e assim por diante
por exemplo de reposta para pergunta 1 ficaria assim SSNNSNSNS
Então vc saberia que teria 9 checkbox sendo que
checkbox1 = Marcado
checkbox2 = Marcado
checkbox3 = Não Marcado
checkbox4 = Não Marcado
checkbox5 = Marcado
checkbox6 = Não Marcado
checkbox7 = Marcado
checkbox8 = Não Marcado
checkbox9 = Marcado
[quote]Uma idéia…
Porque vc não cria somente um campo no banco chamado resposta…
Então vc concatena todas as marcações da pergunta para uma string e grava no banco
Vc define como o checkbox marcado como S e não marcado como N e relaciona na posição 1 seria a marcação do checkbox 1 e assim por diante
por exemplo de reposta para pergunta 1 ficaria assim SSNNSNSNS
Então vc saberia que teria 9 checkbox sendo que
checkbox1 = Marcado
checkbox2 = Marcado
checkbox3 = Não Marcado
checkbox4 = Não Marcado
checkbox5 = Marcado
checkbox6 = Não Marcado
checkbox7 = Marcado
checkbox8 = Não Marcado
checkbox9 = Marcado[/quote]
Eu tinha pensado nisso, mas tem um problema quando eu for gerar o relatório como faria ?
No relatório quero fazer assim:
[ x ]checkbox1
[ ]checkbox2
[ ]checkbox3
[ x ]checkbox4
...
[]'s
Simples…
2 opções…
1-na hora do relatório usa um if … se a posição da string de resposta for S ele escreve X senão deixa em branco
2- Em Vez de usar S ou N…usa X ou ‘espaço’… então não hora de fazer o relatório só colocar a letra que está na posição da string
Use um campo para cada resposta marcada. E se você tiver que aumentar a quantidade de respostas? e uma tiver que ficar bem no meio das outras?
Eu vou fazer a 2 opção que o leopoldof falou.
Criar um campo para cada CheckBox e salvar um X ou o espaço em branco.
Depois posto o resultado aqui.
Valeu pela ajuda.
[]'s
Sugiro uma abordagem mais normalizada para isso.
Imagino que alguém cadastre Perguntas e Respostas Possíveis para estas, certo?
Crie uma tabela de Perguntas: idPergunta, descrição
Uma tabela de RespostasPossiveis: idResposta, idPergunta (fk), descrição
Uma tabela de RespostasDadas : idPergunta, idResposta, idUsuarioQueRespondeu
Com esta estrutura, fazer o relatório será bem mais simples depois.
E você mantém seu banco normalizado, o que costuma ser bom (até virar um gargalo).
Fiz do jeito que o leopoldof mostrou e deu certo
Salvei no banco e gerei o relatório.
Agradeço a todos pela ajuda 8’D
[]'s
Não é melhor usar o modo do SSNNSS, porém intercalando com dquote ?
Ex:
“S;S;N;N;S;S”
E então você faria:
String respostas = objRespostas.Select().get(5);
foreach(String resposta : respostas)
{
//preenche os campos com o IF de Unica Linha: resposta.equals("S") ? "X" : " ";
}
Por enquanto vai ficar essa D:
Depois vou tentar dessa forma como você falou e depois da forma que o AbelBueno disse.
[]'s