Cita:
Empezado por maeyanes
Aquí como todavía no has hecho Query1.Next, bien puedes volver a usar el valor del campo: Query1.FieldByName('det_clave').AsString
Código Delphi [-]
Query3.SQL.Add('and det_clave like ''' + Query1.FieldByName('det_clave').AsString + '.%''');
Así es...
Saludos...
|
Ok Maeyanes, ya no me arrojo el error, solo que no me muestra los valores de las respuestas en las columnas.El codigo lo deje asi :
Código Delphi
[-]
procedure TForm1.BitBtnGenerarClick(Sender: TObject);
var
x,valor:integer;
evalua:string;
begin
evalua:=copy(cmbEvaluacion.text,0,pos('-',cmbEvaluacion.text)-1);
query1.close;
query1.sql.clear;
query1.sql.add('select det_version from det_evaluacion');
query1.sql.add('where det_eval='''+evalua+'''');
abre(query1);
lblVersion.Caption:=query1.fieldbyname('det_version').asstring;
query1.close;
query1.sql.clear;
query1.sql.add('select * from det_evaluacion');
query1.sql.add('where det_eval = '''+evalua+'''');
query1.sql.add('and det_tipo=0');
query1.sql.add('and det_valor=0');
query1.sql.add('order by det_clave');
abre(query1);
x:=1;
While not query1.eof do
begin
sgEvaluacion.cells[1,x]:=query1.fieldbyname('det_pregunta').asString;
sgEvaluacion.rowCount:=sgEvaluacion.rowCount+1;
inc (x);
query2.close;
query2.sql.clear;
query2.sql.add('Select * from det_evaluacion');
query2.sql.add('where det_eval='''+evalua+'''');
query2.sql.add('and det_tipo =1');
query2.sql.add('and det_clave like '''+query1.fieldbyname('det_clave').asstring+'.%''');
query2.sql.add('and det_valor=0');
query2.sql.add('order by det_clave');
abre(query2);
query3.close;
query3.sql.clear;
query3.sql.Add('select det_eval,det_clave,det_pregunta,det_valor,det_tipo from det_evaluacion');
query3.sql.add('where det_eval = '''+evalua+'''');
query3.sql.add('and det_clave like ''' + Query1.FieldByName('det_clave').AsString + '.%''');
query3.sql.add('and det_tipo= 2');
query3.sql.add('order by det_valor asc');
abre(query3);
while not query3.eof do
begin
valor:=query3.fieldbyname('det_valor').AsInteger;
sgEvaluacion.cells[valor + 1,x]:=IntToStr(valor);
query3.next;
end;
while not query2.eof do
Begin
sgEvaluacion.cells[0,x]:=query2.fieldbyname('det_clave').asstring;
sgEvaluacion.Cells[1,x]:=query2.fieldbyname('det_pregunta').AsString;
sgEvaluacion.Cells[2,x]:='1';
sgEvaluacion.Cells[3,x]:='2';
sgEvaluacion.Cells[4,x]:='3';
sgEvaluacion.Cells[5,x]:='4';
sgEvaluacion.Cells[6,x]:='5';
sgEvaluacion.Cells[7,x]:='Resultado';
inc(x);
query2.next;
if x=1 then
sgEvaluacion.RowCount:=2
else
sgEvaluacion.RowCount:=x
End;
query1.next;
end;
end;
Saludos.Gracias por el tiempo que me estas dedicando.En serio muchas gracias