Buen día, nuevamente saludándoles y buscando su propuestas. continuo con el programa y como es de esperar nuevas dudas. Ahora mi pregunta seria como hacer que entre en un ciclo While y salga con el click del BitBtn2 y que borre la información que trae el parámetro. Ya que si ingreso otro numero de cliente; en el grid se presenta la información de la ultima consulta. Por lo que hay que cerrar el programa y volver a ejecutarlo. les muestro el código actual y el cual funciona muy bien gracias a sus aportes.
Código Delphi
[-]procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Try
Begin
If Edit1.Text<>Null Then
Begin
DataModule1 := TDataModule1.Create(Self);
DataModule1.ADOQuery1.Close;
DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.Prepared;
DataModule1.ADOQuery1.SQL.Add('SELECT a.CVE_CLPV,b.NOMBRE,a.TIP_DOC,a.STATUS,a.CVE_DOC,a.FECHA_DOC,c.CVE_ART AS CLAVE_SAE,e.DESCR AS DESCRIPCION,c.CANT AS PIEZAS,a.NUM_ALMA AS ALMACEN_ORIGEN,c.PREC AS PRECIO,c.TOT_PARTIDA AS TOTAL_PARTIDA,');
DataModule1.ADOQuery1.SQL.Add('(c.PREC*c.CANT*c.DESC1)/100 AS DESCUENTO_20,'); DataModule1.ADOQuery1.SQL.Add('((c.TOT_PARTIDA-((c.TOT_PARTIDA*c.DESC1)/100))*c.DESC2)/100 AS DESCUENTO_5,'); DataModule1.ADOQuery1.SQL.Add('(((((c.PREC*c.CANT)-(c.PREC*c.CANT*c.DESC2)/100)*c.DESC2)/100)*c.DESC3)/100 AS DESCUENTO_3,'); DataModule1.ADOQuery1.SQL.Add('(((c.PREC*c.CANT*c.DESC1)/100)+(((c.TOT_PARTIDA-((c.TOT_PARTIDA*c.DESC1)/100))*c.DESC2)/100)) AS SUMA_DESC,'); DataModule1.ADOQuery1.SQL.Add('((c.PREC*c.CANT)-((((c.PREC*c.CANT*c.DESC1)/100)+(((c.TOT_PARTIDA-((c.TOT_PARTIDA*c.DESC1)/100))*c.DESC2)/100)))) AS SUBTOTAL,'); DataModule1.ADOQuery1.SQL.Add('((c.PREC*c.CANT)-((((c.PREC*c.CANT*c.DESC1)/100)+(((c.TOT_PARTIDA-((c.TOT_PARTIDA*c.DESC1)/100))*c.DESC2)/100))))*.16,'); DataModule1.ADOQuery1.SQL.Add('((c.PREC*c.CANT)-((((c.PREC*c.CANT*c.DESC1)/100)+(((c.TOT_PARTIDA-((c.TOT_PARTIDA*c.DESC1)/100))*c.DESC2)/100))))+(((c.PREC*c.CANT)-((((c.PREC*c.CANT*c.DESC1)/100)+(((c.TOT_PARTIDA-((c.TOT_PARTIDA*c.DESC1)/100))*c.DESC2)/100))))*.16) AS TOTAL,'); DataModule1.ADOQuery1.SQL.Add('a.METODODEPAGO AS FORMA_DE_PAGO,a.CVE_VEND AS No_VENDEDOR,d.NOMBRE AS VENDEDOR,a.TIP_DOC_ANT AS DOCUMENTO_ANT,');
DataModule1.ADOQuery1.SQL.Add('a.DOC_ANT AS FOLIO_DOC_ANT,a.TIP_DOC_SIG AS DOCUMENTO_SIG,a.DOC_SIG AS FOLIO_DOC_SIG');
DataModule1.ADOQuery1.SQL.Add('FROM FACTF02 a');
DataModule1.ADOQuery1.SQL.Add('INNER JOIN CLIE02 b');
DataModule1.ADOQuery1.SQL.Add('ON a.CVE_CLPV=b.CLAVE');
DataModule1.ADOQuery1.SQL.Add('INNER JOIN PAR_FACTF02 c');
DataModule1.ADOQuery1.SQL.Add('ON a.CVE_DOC=c.CVE_DOC');
DataModule1.ADOQuery1.SQL.Add('INNER JOIN VEND02 d');
DataModule1.ADOQuery1.SQL.Add('ON a.CVE_VEND=d.CVE_VEND');
DataModule1.ADOQuery1.SQL.Add('INNER JOIN INVE02 e');
DataModule1.ADOQuery1.SQL.Add('ON c.CVE_ART=e.CVE_ART');
DataModule1.ADOQuery1.SQL.Add('WHERE LTRIM(a.CVE_CLPV)='+QuotedStr(Edit1.Text));
DataModule1.ADOQuery1.ParamCheck:=True;
DataModule1.ADOQuery1.Open;
Form2 := TForm2.Create(Self);
Form2.Showmodal;
Form1.Edit1.Clear;
Form1.Edit1.Text:='';
Form1.Edit1.SetFocus;
End
Else
ShowMessage('Ingresa el Cliente por favor');
End
Except
ShowMessage('Lo siento no pude abrir la base de datos');
End
End;
Me despido agradeciendo sus comentarios