Ver Mensaje Individual
  #29  
Antiguo 19-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Reputación: 19
david duarte Va por buen camino
Hola!!!

Muchas gracias por su tiempo y por leer estos mensajes.
oigan, una pregunta, a que se refieren con el apaisado??

Lo que estaba pensando hacer para que queden los resultados abajo del titulo de los analisis, es como dicen anteriormente, guardar en un arreglo, solamente el left y el width, pero me gustaria dividir el width/2, asi siempre quedaa a la mitad de cada titulo, no creen?

les anexo el codigo por si quiere hecharle una ojedada, creo que se puede reducir un poco.

Código Delphi [-]
procedure Tfrm_reporte2.FormShow(Sender: TObject);
Var
  b : Boolean;
  fol : String[9];
  cont, arriba, izq, campos,registros,totmuestras,contmuestras : Integer;
begin
  arriba :=0;
  izq :=10;
  cont :=0;
  registros :=0;
  campos :=0;
  contmuestras :=0;
  {si el laboratorio seleccionado es Textil}
  if (form_opcion.label1.Caption[1] = 'T') then
  Begin
    {buscamos el folio que quiere ver el usuario}
    b := modulotablas.tbltextil.Locate('LabFolio', form_opcion.label1.caption, [locaseInsensitive]);
    {si lo encuentra}
    if (b) then
    Begin
       {en las labels uso lo siguiente:
          qr  -> para decir que es de quickreport
          m   -> quiere decir que va a mostrar algo
          lbl -> se trata de un label
      {primero se muestra la parte de la solicitud... analisis, solicitante, etc...}
      frm_reporte2.qrlaboratorio.Caption := frm_reporte2.qrlaboratorio.Caption + ' Textil';
      frm_reporte2.qrmlblfecha.Caption := modulotablas.tbltextil.FieldByName('Fecha').value;
      frm_reporte2.qrmlblfolio.Caption := modulotablas.tbltextil.FieldByName('LabFolio').value;
      frm_reporte2.qrmlblsolicitante.Caption := modulotablas.tbltextil.FieldByName('Solicitante').value;
      frm_reporte2.qrmlbltipomuestra.Caption := modulotablas.tbltextil.FieldByName('Tipo_muestra').value;
      frm_reporte2.qrmlbldeptosol.Caption := modulotablas.tbltextil.FieldByName('Depto_sol').value;
      frm_reporte2.qrmlblpruebasol.Caption := modulotablas.tbltextil.FieldByName('Pruebas').value;
      frm_reporte2.qrmlblobjetivo.Caption := modulotablas.tbltextil.FieldByName('Objetivo_trab').value;
      frm_reporte2.qrmlblfechaent.Caption := modulotablas.tbltextil.FieldByName('Fecha_ent').value;
      modulotablas.resul_textil.First;
      {aqui empieza la parte de resultados de la solicitud}
      fol := modulotablas.resul_textil.FieldByName('LabFolio').value;
      cont := 2; //cont1 se utiliza para manejar el ciclo del numero de muestras del pre
      while fol <> form_opcion.label1.Caption do
      Begin
        modulotablas.resul_textil.Next;
        fol := modulotablas.resul_textil.FieldByName('LabFolio').value;
      end;
      {************************************************************************
       **** ciclo para mostrar los analisis que seleciono el usuario  *********
       ************************************************************************}
      if ((fol = form_opcion.label1.Caption) and (registros < modulotablas.resul_textil.RecordCount)) then
      Begin
          {si contador es menor que los campos que tiene la base de datos}
          if (cont <=  modulotablas.resul_textil.FieldCount-1) then
          Begin
            {mientras campos sea menor que fieldcount}
            while campos < modulotablas.resul_textil.FieldCount-2 do
            Begin
              {si modulotablas en el campo de contados esta seleccionado entonces
               esto es, si el analisis esta seleccionado, creamos la etiqueta}
              if modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[cont].DisplayName).value <> 'x' then
              Begin
                lab := TQRlabel.Create(QRBResultados); //se crea la label en el QRBResultados
                lab.Top := arriba;
                lab.Left := izq;
                lab.Caption := modulotablas.resul_textil.FieldDefs.Items[cont].DisplayName;
                lab.Parent := frm_reporte2.QRBResultados;
                izq := izq + 4 + FontWidth(lab.Font,lab.Caption);
                cont := cont+1;
                campos := campos +1;
              end //modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[cont].DisplayName).value <> 'x' then
              else
              Begin
                cont := cont+1;
                campos := campos +1;
              end;
            end; //while campos < modulotablas.resul_textil.FieldCount-1 do
            modulotablas.resul_textil.Next;
          end //if (cont1 <= modulotablas.tbltextil.FieldByName('Num_muestras').value) then
      end; //while ((fol = label1.Caption) and (modulotablas.resul_textil.
      top := arriba;
      left := izq;
      lab := TQRLabel.Create(QRBResultados);
      //esto lo asigno para que se baje al momento de crear las labels de los resultados
      arriba := arriba + 20;
      izq := 20;
      cont := 2;
      campos := 0;
      registros := 0;
      modulotablas.resul_textil.First;
      //este solamente lo ocupo para posicionarme en el folio que debe de ser
      b:= modulotablas.resul_textil.Locate('LabFolio',form_opcion.Label1.Caption,[lopartialkey]);

      {*************************************************************************
       **  aqui empieza el ciclo para mostrar los resultados de los analisis ***
       ************************************************************************}
      while (fol = form_opcion.label1.Caption) and (registros < modulotablas.resul_textil.RecordCount)do
      Begin
        lab.Top := arriba;
        lab.Left := izq;
        //mientras que el contador de muestras sea < que el numero de muestras
        //que capturo el usuario
        while contmuestras  < modulotablas.tbltextil.FieldByName('Num_muestras').value do
        Begin
          //recorre todos los campos de la tabla
          while campos < modulotablas.resul_textil.FieldCount-2 do
          Begin
            if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs[cont].DisplayName).value <> 'x') then
            Begin
              lab := TQRLabel.Create(QRBResultados);
              lab.Top := arriba;
              lab.Left := izq;
              if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs[cont].DisplayName).value = 'o') then
                lab.caption := '---'
              else
                lab.Caption := modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[cont].DisplayName).value;
              lab.Parent := QRBResultados;
              if (lab.Left = 0) then
                izq := izq + 7 + FontWidth(lab.Font,lab.Caption)
              else
                izq := izq + 30 + FontWidth(lab.Font,lab.Caption);
            end; //if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs[cont].DisplayName).value <> 'x') then
            cont := cont +1;
            campos := campos +1;
          end; //while campos < modulotablas.resul_textil.FieldCount-1 do
          contmuestras := contmuestras+1;
          modulotablas.resul_textil.Next;
          cont := 2;
          campos := 0;
          izq := 20;
          lab := TQRLabel.Create(QRBResultados);
          arriba := arriba + 20;
        end; //if ( cont <= modulotablas.resul_textil.FieldCount-2) then

        arriba := arriba + 20; //-->> vuelvo a asignar otros 20 en cada renglon
        izq := 12;  //-->> asigno a left 12 para que empiece desde 12
        modulotablas.resul_textil.Next;
        inc(registros);
        fol :=  modulotablas.resul_textil.FieldByName('LabFolio').value;
      end; //while fol = form_opcion.label1.Caption do
    end //if (b) then
    else
      ShowMessage ('No se encuentra el folio solicitado');
  end; //if (label1.Caption[1] = 'T') then
  frm_reporte2.QuickRep1.Preview;
  form_opcion.Hide;
end;


De antemano les agradezco su tiempo y su atencion.
Cómo te sientes hoy??
Responder Con Cita