Ver Mensaje Individual
  #1  
Antiguo 06-09-2012
wull wull is offline
Miembro
NULL
 
Registrado: may 2012
Posts: 30
Reputación: 0
wull Va por buen camino
Question Simplificar el uso de if al usar RadioGroup

El problema que me esta poniendo los pelos de punta es este: Tengo un par de RadioGroup, que al evaluarlos me dan los parámetros para crear un informe... hasta ahi todo bien, gracias a la ayuda proporcionada por el foro. Pero ahora quiero lograr que si ninguno de los item de los RadioGroup ha sido marcado, entonces mandar un mensaje al usuario para pedirle que marque por lo menos una opción no importa de que RadioGroup sea.
Para lograr esto estoy usando el siguiente código:
Código Delphi [-]
 if (radiogroup1.ItemIndex > -1) then 
        begin
         if (radiogroup2.ItemIndex >-1) then 
             begin 
               with ADOQuery1 do
                  begin 
                   Close;
                   SQL.Text:= 'SELECT * FROM MITABLA WHERE AÑO = :PANIO AND MES=:PMES';
                   Parameters.ParamByName('PANIO').Value:=RadioGroup1.Items[RadioGroup1.ItemIndex];
                   Parameters.ParamByName('PMES').Value:=RadioGroup2.Items[RadioGroup2.ItemIndex];
                   Open;
                  end;
                Myreport.ShowReport(true);
                end;
                

         end  
      else
       showmessage('elija por lo menos un parametro para el reporte');
Con esto me surgen dos problemas, primero el orden de los RadioGroup, ya debo que repetir las comparaciones. Es decir primero estoy comparando el RadioGroup1, con una serie de condicones... pero si no es este el que se elige primero tengo que repetir el código ahora iniciando con el RadioGroup2. El otro problema es que al estar usando if anidados tengo que repetir la comparacion para ver si solo se ha usado un RadioGroup o si se han usado los dos.
Espero haber explicado bien mi problema... no tengo idea de como solucionarlo, se me olvida mencionarlo todo este codigo lo tengo en el evento onclick de un botón que llama al reporte. Espero me puedan ayudar
Responder Con Cita