Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2006
Avatar de magnu9
magnu9 magnu9 is offline
Miembro
 
Registrado: nov 2006
Posts: 84
Poder: 18
magnu9 Va por buen camino
Orden by con items de un Listbox!!

Saludo a todos, espero que se sientan todos bien, observen este caso...
tengo en mi form de reporte de clientes, dos listbox, uno en el cual guardo los items por el cual voy a reportar, el otro listbox,
el cual me resibe los items del listbox1, bueno eso de los botones para hacer ese traspaso lo he logrado hacer. Pero mi duda es
como pasar los items del listbox2 al sql para poder ordenar el reporte como lo indique el listbox2.
Este pequeño codigo es solo una muestra de como lo he intentado. Pero me ha sido en vano.
Fuera de lo que es lo del listbox, osea si utilizar los listbox, al qryCliente.Sql.Add, cuando les digo que me ordenes por codcli,
me lo ordena muy bien, pero si coloco nomcli para el orden no hace nada de orde.
Código Delphi [-]
procedure TrpCliente.btnAceptarClick(Sender: TObject);
begin
  
ListBox1.Items[0]:= 'cliente.codcli';
   
   try
   FreportCliente:=TFreportCliente.Create(self);
      if Ordenar.ItemIndex = 0 then begin
         FreportCliente.qryCliente.SQL.Add(' Select  codcli,nomcli,apelcli, dircli, telcli,cedcli, fecha, estado, codzon, facturacredito, balcli, direc_envio From cliente ');
         FreportCliente.qryCliente.SQL.Add(' WHERE cliente.codcli >='''+(edCodigo1.Text)+''' AND cliente.codcli <= '''+(edCodigo2.Text)+'''');
         FreportCliente.qryCliente.SQL.Add('OR (cliente.nomcli LIKE ''%'+edNombre1.Text+''' and cliente.nomcli LIKE ''%'+edNombre2.Text+''')');
         FreportCliente.qryCliente.SQL.Add(' ORDER BY '''+ListBox1.Items[0]+''' deSC');
      
      end
      else  begin
         FreportCliente.qryCliente.SQL.Add(' Select  codcli,nomcli,apelcli, dircli, telcli,cedcli, fecha, estado, codzon, facturacredito, balcli, direc_envio From cliente ');
         FreportCliente.qryCliente.SQL.Add(' WHERE cliente.codcli >='''+(edCodigo1.Text)+''' AND cliente.codcli <= '''+(edCodigo2.Text)+'''');
         FreportCliente.qryCliente.SQL.Add('OR cliente.nomcli='''+edNombre1.Text+''' and cliente.nomcli='''+edNombre2.Text+'''');
         FreportCliente.qryCliente.SQL.Add(' ORDER BY cliente.codcli desc');
      end;
         FreportCliente.qryCliente.Open;
    FreportCliente.Titulo.text := 'Reporte de Cliente';
    
          If Salida.ItemIndex = 0 then FreportCliente.QuickRep1.Preview
           else if Salida.ItemIndex= 1 then FreportCliente.QuickRep1.Print;
      finally
         FreportCliente.Free;
      end;
Espero me entiendan, de lo contrario si lo desean un poco mas detallado solo me escriben. Gracias de Antemano.
Responder Con Cita
  #2  
Antiguo 13-11-2006
oscarnoe oscarnoe is offline
Miembro
 
Registrado: jul 2006
Posts: 60
Poder: 18
oscarnoe Va por buen camino
Hola magnu9,

Cita:
Código Delphi [-]
 FreportCliente.qryCliente.SQL.Add(' ORDER BY '''+ListBox1.Items[0]+''' deSC');
creo que ese entrecomillado puede tener algo de culpa, no estas asignando un valor de texto, estas asignando un nombre de campo, no?

Espero que te sea de ayuda.

Oscar Noe.
__________________
No dejes camino viejo por sendero nuevo
Responder Con Cita
  #3  
Antiguo 13-11-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola magnu9
Creo que es asi:
Código Delphi [-]
FreportCliente.qryCliente.SQL.Add(' ORDER BY DESC'''+ListBox1.Items[0]+''');
Por otro lado no entiendo muy bien lo que quieres hacer con los listbox.
Saludos
Responder Con Cita
  #4  
Antiguo 13-11-2006
Avatar de magnu9
magnu9 magnu9 is offline
Miembro
 
Registrado: nov 2006
Posts: 84
Poder: 18
magnu9 Va por buen camino
Caral dejame explicarte un poquito

Es algo que quiere mi tutor de Proyecto III, es que los reportes lleve consigo dos listbox en medio de ellos estos botones" >, <, >>, <<" los cuales me serviran para mudar los campos de un listbox a otro. Y que el contenido del Listbox2 sea por lo que se guie el reporte para ordenarse. Ahora experimentare lo que me dijeron.
Responder Con Cita
  #5  
Antiguo 13-11-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola magnu9
La verdad no trabajo con listbox, ni nada parecido pero tengo entendido que los listbox tienen una propiedad que es copy, asi que puedes copiar de uno a otro, hay varias formas:
1- Puedes crear variables para los items que vas copiando de uno a otro, esto los mantiene en memoria hasta que se impriman.
2- Puedes crear una tabla temporal, pasar los items del listbox1 al 2 grabarlos en la tabla nueva y luego hacer lo que quieras con los datos, imprimirlos para luego borrarlos o mantenerlos con un numero o no se algo asi.
Saludos
Responder Con Cita
  #6  
Antiguo 13-11-2006
Avatar de magnu9
magnu9 magnu9 is offline
Miembro
 
Registrado: nov 2006
Posts: 84
Poder: 18
magnu9 Va por buen camino
Observa esto caral

Este codigo es lo que estoy utilizando para copiar de un listbox a otro...

Código Delphi [-]
procedure TrpCliente.btnEnviarClick(Sender: TObject);
begin
    if listbox1.ItemIndex>=0 then
  begin
    listbox2.Items.Add(listbox1.Items[listbox1.ItemIndex]);
    listbox1.Items.Delete(listbox1.ItemIndex);
  end;
END;
procedure TrpCliente.btnTraerClick(Sender: TObject);
begin
   if listbox2.ItemIndex>=0 then
   begin
    listbox1.Items.Add(listbox2.Items[listbox2.ItemIndex]);
    listbox2.Items.Delete(listbox2.ItemIndex);
   end;
end;
procedure TrpCliente.btnEnvTodClick(Sender: TObject);
var m:integer;
begin
   m:=listbox1.Items.Count;
 while m>=1 do
   begin
    listbox1.ItemIndex:=0;
    listbox2.Items.Add(listbox1.Items[listbox1.ItemIndex]);
    listbox1.Items.Delete(listbox1.ItemIndex);
    m:=m-1;
   end;
end;
procedure TrpCliente.btnTraerTodoClick(Sender: TObject);
var n:integer;
begin
  n:=listbox2.Items.Count;
 while n>=1 do
   begin
    listbox2.ItemIndex:=0;
    listbox1.Items.Add(listbox2.Items[listbox2.ItemIndex]);
    listbox2.Items.Delete(listbox2.ItemIndex);
    n:=n-1;
   end;
end;procedure TrpCliente.btnEnviarClick(Sender: TObject);
begin
    if listbox1.ItemIndex>=0 then
  begin
    listbox2.Items.Add(listbox1.Items[listbox1.ItemIndex]);
    listbox1.Items.Delete(listbox1.ItemIndex);
  end;
END;
procedure TrpCliente.btnTraerClick(Sender: TObject);
begin
   if listbox2.ItemIndex>=0 then
   begin
    listbox1.Items.Add(listbox2.Items[listbox2.ItemIndex]);
    listbox2.Items.Delete(listbox2.ItemIndex);
   end;
end;
procedure TrpCliente.btnEnvTodClick(Sender: TObject);
var m:integer;
begin
   m:=listbox1.Items.Count;
 while m>=1 do
   begin
    listbox1.ItemIndex:=0;
    listbox2.Items.Add(listbox1.Items[listbox1.ItemIndex]);
    listbox1.Items.Delete(listbox1.ItemIndex);
    m:=m-1;
   end;
end;
procedure TrpCliente.btnTraerTodoClick(Sender: TObject);
var n:integer;
begin
  n:=listbox2.Items.Count;
 while n>=1 do
   begin
    listbox2.ItemIndex:=0;
    listbox1.Items.Add(listbox2.Items[listbox2.ItemIndex]);
    listbox2.Items.Delete(listbox2.ItemIndex);
    n:=n-1;
   end;
end;
Responder Con Cita
Respuesta



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
seleccionar items en listbox fluckde Varios 2 05-09-2006 21:05:57
Listbox con items genericos ANG4L Varios 2 11-05-2006 03:54:37
Items Listview Trigger OOP 2 11-10-2004 21:05:02
ListBox Items Hint (MUY URGENTE !!!!) jymy788 Varios 2 17-09-2004 09:41:58
Componente de dos ListBox con items intercambiables Tomás OOP 6 07-05-2004 18:42:39


La franja horaria es GMT +2. Ahora son las 12:46:56.


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