Fórum for #277249
14/04/2005
0
Estou desenvolvendo um programa muito simples,
onde tenho um questionário de satisfação com 16 perguntas,
onde existem três opções de resposta para cada pergunta: Bom, Regular e Ruim.
O meu problema é que não consigo gravar estes dados, pensei em usar um for para fazer um loop, mas não sei como.
Estou usando uma tabela Paradox, com os seguintes campos: numQuestionario, numPergunta, Bom, Regular, Ruim, Nulo.
Preciso que para cada questionário ele grave as 16 respostas, mas é aí que está meu problema não sei como fazer este laço.
Estou enviando parte do meu código:
procedure TForm1.btnConfirmarClick(Sender: TObject);
var
questao: array[1..16] of integer;
begin
Pesquisa.Edit;
if rg1.ItemIndex = -1 then begin
Pesquisa.FieldByName(´Nulo´).AsString := ´X´;
Pesquisa.FieldByName(´NumPergunta´).AsString := ´1´;
end else begin
Pesquisa.FieldByName(´NumPergunta´).AsString := ´1´;
case rg1.ItemIndex of
0 : Pesquisa.FieldByName(´Bom´).AsString := ´X´;
1 : Pesquisa.FieldByName(´Regular´).AsString := ´X´;
2 : Pesquisa.FieldByName(´Ruim´).AsString := ´X´;
end;
end;
if rg2.ItemIndex = -1 then begin
Pesquisa.FieldByName(´Nulo´).AsString := ´X´;
Pesquisa.FieldByName(´NumPergunta´).AsString := ´2´;
end else begin
Pesquisa.FieldByName(´NumPergunta´).AsString := ´2´;
case rg2.ItemIndex of
0 : Pesquisa.FieldByName(´Bom´).AsString := ´X´;
1 : Pesquisa.FieldByName(´Regular´).AsString := ´X´;
2 : Pesquisa.FieldByName(´Ruim´).AsString := ´X´;
end;
end;
if rg2_1.ItemIndex = -1 then begin
Pesquisa.FieldByName(´Nulo´).AsString := ´X´;
Pesquisa.FieldByName(´NumPergunta´).AsString := ´2_1´;
end else begin
Pesquisa.FieldByName(´NumPergunta´).AsString := ´2_1´;
case rg2_1.ItemIndex of
0 : Pesquisa.FieldByName(´Bom´).AsString := ´X´;
1 : Pesquisa.FieldByName(´Regular´).AsString := ´X´;
2 : Pesquisa.FieldByName(´Ruim´).AsString := ´X´;
end;
end;
if rg2_2.ItemIndex = -1 then begin
Pesquisa.FieldByName(´Nulo´).AsString := ´X´;
Pesquisa.FieldByName(´NumPergunta´).AsString := ´2_2´;
end else begin
Pesquisa.FieldByName(´NumPergunta´).AsString := ´2_2´;
case rg2_2.ItemIndex of
0 : Pesquisa.FieldByName(´Bom´).AsString := ´X´;
1 : Pesquisa.FieldByName(´Regular´).AsString := ´X´;
2 : Pesquisa.FieldByName(´Ruim´).AsString := ´X´;
end;
end;
if rg2_3.ItemIndex = -1 then begin
Pesquisa.FieldByName(´Nulo´).AsString := ´X´;
Pesquisa.FieldByName(´NumPergunta´).AsString := ´2_3´;
end else begin
Pesquisa.FieldByName(´NumPergunta´).AsString := ´2_3´;
case rg2_3.ItemIndex of
0 : Pesquisa.FieldByName(´Bom´).AsString := ´X´;
1 : Pesquisa.FieldByName(´Regular´).AsString := ´X´;
2 : Pesquisa.FieldByName(´Ruim´).AsString := ´X´;
end;
end;
Pesquisa.Post;
Se alguém puder me dar uma luz!! Obrigada...
Daia
Curtir tópico
+ 0Posts
14/04/2005
Edilcimar
Gostei + 0
14/04/2005
Daia
O que ele grava no banco quando clico no botão Confirmar é o seguinte:
numQuestionário NumPergunta Bom Regular Ruim Nulo
2_3 X X
mas ele deveria gravar desse jeito:
numQuestionário NumPergunta Bom Regular Ruim Nulo
1 1 X
1 2 X
1 2_1 X
1 2_2 X
1 2_3 X
Para cada pergunta ele deveria gravar as respostas...
Gostei + 0
14/04/2005
Rjun
Pesquisa.Insert; if rg2.ItemIndex = -1 then begin Pesquisa.FieldByName(´Nulo´).AsString := ´X´; Pesquisa.FieldByName(´NumPergunta´).AsString := ´2´; end else begin Pesquisa.FieldByName(´NumPergunta´).AsString := ´2´; case rg2.ItemIndex of 0 : Pesquisa.FieldByName(´Bom´).AsString := ´X´; 1 : Pesquisa.FieldByName(´Regular´).AsString := ´X´; 2 : Pesquisa.FieldByName(´Ruim´).AsString := ´X´; end; end; Pesquisa.Post;
Gostei + 0
14/04/2005
Daia
Gostei + 0
14/04/2005
Rjun
Gostei + 0
14/04/2005
Daia
Mas agora arrumei, coloquei em todos e funcionou!!! Que bom, mas não entendi, achei que tivesse que usar uma instrução de repetição...
Valeu...por enquanto...
Gostei + 0
14/04/2005
Rjun
var Questoes: Array[1..16] of TRadioGroup; i: Integer; begin // Atribui para o vetor cada radiogroup Questoes[01] := radQuestao1; Questoes[02] := radQuestao2; Questoes[03] := radQuestao1; Questoes[04] := radQuestao2; Questoes[05] := radQuestao1; Questoes[06] := radQuestao2; Questoes[07] := radQuestao1; Questoes[08] := radQuestao2; Questoes[09] := radQuestao1; Questoes[10] := radQuestao2; Questoes[11] := radQuestao1; Questoes[12] := radQuestao2; Questoes[13] := radQuestao1; Questoes[14] := radQuestao1; Questoes[15] := radQuestao2; Questoes[16] := radQuestao1; for i := 1 to 16 do begin Pesquisa.Insert; if Questoes[i].ItemIndex = -1 then begin Pesquisa.FieldByName(´Nulo´).AsString := ´X´; Pesquisa.FieldByName(´NumPergunta´).AsString := i; end else begin Pesquisa.FieldByName(´NumPergunta´).AsString := i; case Questoes[i].ItemIndex of 0 : Pesquisa.FieldByName(´Bom´).AsString := ´X´; 1 : Pesquisa.FieldByName(´Regular´).AsString := ´X´; 2 : Pesquisa.FieldByName(´Ruim´).AsString := ´X´; end; end; Pesquisa.Post; end; end;
Gostei + 0
14/04/2005
Rjun
Leia-se
Questoes[01] := radQuestao1; Questoes[02] := radQuestao2; Questoes[03] := radQuestao3; Questoes[04] := radQuestao4; Questoes[05] := radQuestao5; Questoes[06] := radQuestao6; Questoes[07] := radQuestao7; Questoes[08] := radQuestao8; Questoes[09] := radQuestao9; Questoes[10] := radQuestao10; Questoes[11] := radQuestao11; Questoes[12] := radQuestao12; Questoes[13] := radQuestao13; Questoes[14] := radQuestao14; Questoes[15] := radQuestao15; Questoes[16] := radQuestao16;
Gostei + 0