Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-07-2014
Jose Carlos Rey Jose Carlos Rey is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 26
Poder: 0
Jose Carlos Rey Va por buen camino
Tiammat gracias por tus comentarios; a los cuales agrego que el motor es SQL Server 2008 y la consulta directamente en consola trabaja sin problema. Este se origina en el armado de la cadena a buscar la cual debe tener los 10 caracteres para poder realizar dicha busqueda en el programa que estoy desarrollando.

Roman gracias por tu aportacion, con LTRIM(A.CVE_ART) ha funcionado de manera correcta, sin estar agregando los espacios manualmente.

Ecfisa yo tampoco entiendo el porque de tener un campo TEXTO cuando su informacion es numerica, pero asi esta este programa comercial.

Seguire desarrollando este programita y no dudo pueda salir alguna duda extra y de la cual no dejare de informarles ya que el programa comercialmente no da las opciones de reportes que se necesitan y por lo cual estoy en este proyecto personal para explotar toda la info que se tiene en la BD.

Nuevamente agradezco a todos los que han aportado directa e indirectamente.
Responder Con Cita
  #2  
Antiguo 31-07-2014
Jose Carlos Rey Jose Carlos Rey is offline
Miembro
NULL
 
Registrado: may 2014
Posts: 26
Poder: 0
Jose Carlos Rey Va por buen camino
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,');  //DESCUENTO DE 20%
            DataModule1.ADOQuery1.SQL.Add('((c.TOT_PARTIDA-((c.TOT_PARTIDA*c.DESC1)/100))*c.DESC2)/100 AS DESCUENTO_5,'); //DESCUENTO DE 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,'); //DESCUENTO VARIABLE
            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,'); //SUMA DE DESCUENTOS
            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,'); //SUBTOTAL TOTAL PARTIDA := SUMA DE DESCUENTOS
            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,'); //IVA A PARTIR DEL 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))))+(((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,');  //TOTAL DE FACTURACION
            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
Responder Con Cita
  #3  
Antiguo 31-07-2014
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 21
TiammatMX Va camino a la fama
Cita:
Empezado por Jose Carlos Rey Ver Mensaje
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...
Entrar al ciclo while... do es simple, te posicionas al tope de tu TADOQuery y lo recorres con un TADOQuery.Next. Obviamente, la condición del while sería "not EOF()"...

No es necesario cerrar el programa, sino cuando presiones el TBitBttn2, cierras el TADOQuery, limpias el SQL (ésto borrará automáticamente los parámetros), añades un nuevo SQL y sus respectivos parámetros para ejecutar la consulta nuevamente.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #4  
Antiguo 31-07-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por Jose Carlos Rey Ver Mensaje
nuevas dudas. Ahora mi pregunta seria
¡¡¡Preguntas distintas en hilos distintos!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Estructuras de parametros en delphi jularaXD Varios 9 11-03-2014 14:54:25
Parametros en ReportBuilder 14 Delphi XE2 papycool Impresión 0 19-09-2013 22:25:12
Problema con parametros en Delphi for .Net lalosan SQL 3 27-02-2007 22:01:02
Parametros Delphi 2006 raorre OOP 3 28-07-2006 18:18:58


La franja horaria es GMT +2. Ahora son las 21:02:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi