Ver Mensaje Individual
  #4  
Antiguo 07-08-2003
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Reputación: 23
Cabanyaler Va por buen camino
Bueno, vamos allá.

Es un tanto royo, pero funciona.


// Limpio la lista de STRING que pudiese existir
Query.SQL.Clear;

// Compongo la SQL en su cuerpo principal
Query.SQL.Add('SELECT RO.NumOrd_RegOfe,RO.Varord_RegOfe,RO.Estado_RegOfe,');
Query.SQL.Add('RO.AnyoReg_RegOfe,RO.TitOfe_regOfe,RO.NomCli_RegOfe,RO.NumObr_RegOfe,');
Query.SQL.Add('RO.FecOfe_RegOfe,RO.FecCon_RegOfe,RO.ImpCon_RegOfe,RO.ImpOfe_RegOfe,');
Query.SQL.Add('RO.DesAct_RegOfe');
Query.SQL.Add('FROM RegOfertas RO');
Query.SQL.Add('WHERE');
Query.SQL.Add('(RO.FecCon_RegOfe >= :EditFechaInicio)');
Query.SQL.Add('AND');
Query.SQL.Add('(RO.FecCon_RegOfe <= :EditFechaFinal)');

/* Aqui es donde empiezas como tu quieres a realizar a medida dicha SQl dependiendo de algunos valores
de los Edits */

// Compruebo que tengan valor los edits y lo meto en la SQL
// ya que establecer estos otros parametros es opcional al usuario
// En este caso compruebo hasta el contenido de 4 edits

if EditApenom_cli.text <> '' then
begin
Query.SQL.Add('AND');
Query.SQL.Add('(RO.NomCli_RegOfe LIKE ("%' + EditApenom_cli.text + '%"))');
end;

if EditTitulo.text <> '' then
begin
Query.SQL.Add('AND');
Query.SQL.Add('(RegOfertas.TitOfe_RegOfe LIKE ("%' + EditTitulo.text + '%"))');
end;

if EditEstOfer.text <> '' then
begin
Query.SQL.Add('AND');
Query.SQL.Add('(RegOfertas.Estado_RegOfe LIKE ("%' + EditEstOfer.text + '%"))');
end;

if EditDesActividad.text <> '' then
begin
Query.SQL.Add('AND');
Query.SQL.Add('(RegOfertas.DesAct_RegOfe LIKE ("%' + EditDesActividad.text + '%"))');
end;

// Abro la consulta una vez establecida la String de la SQL
Query.Open;


La propiedad del dataset Query.ParamCheck la estableces a False.

Creo que con esto te funcionará, espero no haber olvidado nada.

Suerte.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita