Ver Mensaje Individual
  #4  
Antiguo 27-04-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Reputación: 21
david duarte Va por buen camino
Hola roman, tengo un problema.

Como le puedo asignar el valor de un campo para que me lo tome como si fuera el nombre del campo.

Esto es porque tengo una tabla, con el nombre de campo (Nombre_analisis) y de ahi, tengo que poner en un reporte (QRBDText) con el nombre de cada analisis que tenga la llave primaria, pero no le encuentro como hacerlo, hice algunas pruebas, pero no me sale nada, te pongo el codigo para ver si tienes tiempo de analizarlo y ver en donde estoy mal. la verdad es que ya lo cheque muchas veces y le he cambiado codigo y no me sale ningun resultado.

Código Delphi [-]
  modulotablas.ana_ex.edit;
  b := modulotablas.ana_ex.Locate('Folio',edit1.text,[lopartialkey]);
  if b then
  Begin
    while (modulotablas.ana_ex.FieldByName('Folio').value = edit1.text) and (modulotablas.ana_ex.FieldByName('Numero').value = '01') do
    Begin
      texto := TQRDBText.Create(DetailBand1);
      texto.Top := arriba;
      texto.Left := izq;
      texto.DataSet := Query1;
      texto.Mask := ',.00';
      texto.DataField := modulotablas.ana_ex.FieldByName('Nombre_analisis').value;
      campos := campos + modulotablas.ana_ex.FieldByName('Nombre_analisis').value;
      campos := campos +',';
      texto.Parent  := DetailBand1;
      etiqueta := TQRLabel.Create(PageHeaderBand1);
      etiqueta.Caption := modulotablas.ana_ex.FieldByName('Nombre_analisis').value;
      etiqueta.Top := arriba + 260;
      etiqueta.Left := izq;
      etiqueta.Visible := True;
      etiqueta.Parent := PageHeaderBand1;
      izq := izq+ 6 +FontWidth(etiqueta.Font,texto.Caption);
      modulotablas.ana_ex.Next;
    end; //while (modulotablas.ana_ex.FieldByName('Folio').value = edit1.text) and (modulotablas.ana_ex.FieldByName('Numero').value = '01') do
     showmessage ('Analisis extras, Folio '+ qrmfolio.Caption);
   end; //if b then ana_ex
   query1.Close;
    camp_long := length(campos);
   if campos[camp_long] = ',' then
     for cont :=1 to camp_long-1 do
       camp_aux := camp_aux + campos[cont];
   foliob := edit1.text;
   query1.SQL.Clear;
   query1.SQL.Add('SELECT Nombre_analisis FROM analisis_extra');
   Query1.SQL.Add('WHERE Nombre_analisis = :campos'); <-- siento que aqui esta el error
   Query1.ParamByName('campos').AsString := 'prueba1';
   query1.SQL.Add(';');
   query1.Active := True;
 end;

y ademas no se como ponerle o como asignarle el nombre del campo al dataset, no comprendo bien eso.
Te agradeceria mucho si me das algunos consejos, creo que tambien estoy mal en el ciclo

Muchas Gracias!!
Saludos!!!!

Última edición por david duarte fecha: 27-04-2006 a las 19:01:12.
Responder Con Cita