Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Con sentencias SQL
Código SQL [-]
select distinct campo
FROM tabla WHERE campo In (SELECT campo FROM 
tabla As Tmp GROUP BY campo HAVING Count(*)>1)
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #2  
Antiguo 05-10-2005
aurbano aurbano is offline
Miembro
 
Registrado: abr 2004
Posts: 20
Poder: 0
aurbano Va por buen camino
ayuda con dblookupcombobox

Buenos dias.

Estoy trabajando con un dblookupcombobox, y no se despliega la lista de los registros. He relacionado el Datasourse y el datafield con una tabla pero no se funciona.


Si me puedes explicar porque tengo entendido que el dblookupcombobox despliega una lista de valores de una tabla para modificar otra.

Gracias.
Responder Con Cita
  #3  
Antiguo 06-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Tienes que configurar la lista desplegable (de donde quieres que se muestren los valores)

Imagina 2 Tablas Cliente y Albaran, en el albaran se guarda el codigo del cliente, y ahora quieres que se muestre el codigo y el nombre del cliente en el albaran:

DataSource: Albaran
DataField: AlbaranIdCliente
ListSource: Clientes
ListField: codigo;NombreCliente
ListIndex: 1
KeyField: codigo

si dicho DBlookup está en la ventana de albaranes, mostrará en la lista desplegable el codigo y nombre del cliente.

Cuando eliges con el ratón un cliente, en el Editor del combo se muestra el NombreCliente, (lo indica el ListIndex, pon ese a 0 y verás los cambios). Además se guarda en la tabla Albaran, en el campo AlbaranIdCliente, el código del cliente elegido.

Espero se entienda.
Responder Con Cita
  #4  
Antiguo 06-10-2005
aurbano aurbano is offline
Miembro
 
Registrado: abr 2004
Posts: 20
Poder: 0
aurbano Va por buen camino
probema con dblookupcombobox.

Gracias lepe por tu ayuda. me funciono.

Si alguien del foro me me puede ayudar ya que tengo un problema.


EL DBLOOKUPCOMBOBOX QUE ESTOY UTILIZANDO ESTA RELACIONADO EN EL LISTSOURCE CON LA TABLA CLIENTES UN CAMPO LLAMADO RIF_CLI. EN EL DATASOURCE TENGO RALACIONADO LA TABLA VENTAS UN CAMPO LLAMADO RIF_COM. EN EL FORMULARIO TENGO UNOS DBEDITS TODOS RELACIONADOS CON LA TABLA CLIENTES. TAMBIEN EN EL FORMULARIO TENGO UN DBGRID RELACIONADO A LA TABLA VENTAS.


EL PROBLEMA RADICA ES QUE CUANDO GUARDO LOS REGISTROS DE LA TABLA VENTA Y LA TABLA CLIENTES QUEDA DE LA SIGUIENTE FORMA:

RIF_CLI NOM_CLI DES_COM PUN_COM PTO_COM
PEDRO P. BUJIAS 35.000,00 70.000,00
12.745.722


PORQUE NO ME GUARDA EL CAMPO RIF_CLI EN EL REGISTRO INICIAL, SINO QUE LA GUARDA EN EL REGITRO SIGUIENTE. COMO HAGO PARA QUE LA GUARDE EN LA POSICION INICIAL.

EL CODIGO QUE UTILIZO ES EL SIGUIENTE:


procedure TForm8.RoundButton2Click(Sender: TObject);
begin
table1.edit;
TABLE1.first;
while table1.eof = false do
table1.Delete;
label3.caption:= '0';
label5.Caption:= '0';
dbgrid1.Fields[0].FocusControl;
end;

procedure TForm8.RoundButton1Click(Sender: TObject);
begin
table1.first;
while table1.Eof=false do
begin
form2.Table1.FindKey([table1.fieldbyname('serial').asinteger]);
form2.Table1.edit;
form2.Table1.fieldbyname('exi_PRO').asfloat := form2.Table1.fieldbyname('exi_pro').asfloat
+ dbgrid1.Fields[3].asfloat;
form2.Table1.FieldByName('iva_PRO').ascurrency:= form2.Table1.fieldbyname('prv_pro').AsCurrency * (14/100);
form2.Table1.fieldbyname('prV_PRO').AsCurrency:= dbgrid1.Fields[4].ascurrency * (40/100)
+ dbgrid1.Fields[4].ascurrency;
form2.Table1.Post;
/// REGISTRO EN LA TABLA DE COMPRAS
TABLE2.INSERT;
table2.fieldbyname('fec_COM').asdatetime := date;
table2.fieldbyname('ser_COM').asinteger := dbgrid1.Fields[0].AsInteger;
table2.fieldbyname('Nro_fac').Asstring := dbgrid1.Fields[1].Asstring;
table2.fieldbyname('Des_com').asstring := dbgrid1.Fields[2].Asstring;
table2.fieldbyname('Can_com').asfloat := dbgrid1.Fields[3].Asfloat;
table2.fieldbyname('Cun_com').ascurrency := dbgrid1.Fields[4].Ascurrency;
table2.fieldbyname('IVA_com').ascurrency := dbgrid1.Fields[5].Ascurrency;
table2.fieldbyname('Cot_com').ascurrency := dbgrid1.Fields[6].Ascurrency;
table2.fieldbyname('RIF_com').asstring := dbedit1.Field.AsString;
table2.fieldbyname('nom_com').asstring := dbedit2.Field.AsString;
table2.fieldbyname('nit_com').asinteger := dbedit3.Field.Asinteger;
table2.fieldbyname('dir_com').asstring := dbedit4.field.AsString;
table2.fieldbyname('tel_com').asstring := dbedit5.Field.AsString;
table2.post;
table1.Next;
end;
END;




GRACIAS.

Última edición por aurbano fecha: 06-10-2005 a las 18:33:59.
Responder Con Cita
  #5  
Antiguo 06-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Wow, creo que la parte donde expones el código te llevó mucho tiempo hacer (poner colores, negritas) con las Etiquetas vB evitas esto. Date una vuelta por ahí.
Ej: Tu código solo con las etiquetas
Código Delphi [-]
procedure TForm8.RoundButton2Click(Sender: TObject);
begin
  table1.edit;
  TABLE1.first;
  while not table1.eof do
    table1.Delete;
  label3.caption:= '0';
  label5.Caption:= '0';
  dbgrid1.Fields[0].FocusControl;
end;

procedure TForm8.RoundButton1Click(Sender: TObject);
begin
  table1.first;
  while not table1.Eof do
  begin 
    with form2.table1 do
    begin
      FindKey([fieldbyname('serial').asinteger]);
      edit;
      fieldbyname('exi_PRO').asfloat :=
          fieldbyname('exi_pro').asfloat + dbgrid1.Fields[3].asfloat;
      FieldByName('iva_PRO').ascurrency:=       
      fieldbyname('prv_pro').AsCurrency * (14/100);
      fieldbyname('prV_PRO').AsCurrency:= dbgrid1.Fields[4].ascurrency * (40/100)
            + dbgrid1.Fields[4].ascurrency;
      Post;
    end;//form2
/// REGISTRO EN LA TABLA DE COMPRAS
    with TABLE2 do begin 
      INSERT;
      fieldbyname('fec_COM').asdatetime := date;
      fieldbyname('ser_COM').asinteger := dbgrid1.Fields[0].AsInteger;
      fieldbyname('Nro_fac').Asstring := dbgrid1.Fields[1].Asstring;
      fieldbyname('Des_com').asstring := dbgrid1.Fields[2].Asstring;
      fieldbyname('Can_com').asfloat := dbgrid1.Fields[3].Asfloat;
      fieldbyname('Cun_com').ascurrency := dbgrid1.Fields[4].Ascurrency;
      fieldbyname('IVA_com').ascurrency := dbgrid1.Fields[5].Ascurrency;
      fieldbyname('Cot_com').ascurrency := dbgrid1.Fields[6].Ascurrency;
      fieldbyname('RIF_com').asstring := dbedit1.Field.AsString;
      fieldbyname('nom_com').asstring := dbedit2.Field.AsString;
      fieldbyname('nit_com').asinteger := dbedit3.Field.Asinteger;
      fieldbyname('dir_com').asstring := dbedit4.field.AsString;
      fieldbyname('tel_com').asstring := dbedit5.Field.AsString;
      post;
    end;//table2
  table1.Next;
  end;//While
END;//procedure
Hice algunas mejoritas no mu reelevantes
Pd:Para codigos delphi usa [ delphi][ /delphi] (sin los espacio entre corchete)
Nt:Se me hace un rollo esto del ident
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 07-10-2005 a las 17:45:49. Razón: Etiqueta Delphi + corrección
Responder Con Cita
  #6  
Antiguo 07-10-2005
aurbano aurbano is offline
Miembro
 
Registrado: abr 2004
Posts: 20
Poder: 0
aurbano Va por buen camino
problema con dblookupcombobox

Muchas gracias vtdeleon por la informacion pero como resuelvo lo del dblookupcombobox, planteado en la pregunta anterior.
Responder Con Cita
  #7  
Antiguo 07-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
El problema es que no veo el campo RIF_CLI en ninguna parte del código, sin embargo está el RIF_COM. Aún tratandose de RIF_COM no puedo saber lo que hay en dbedit1.Field.AsString, así que no puedo responder.


vtdeleon al pasar el código a las etiquetas + las modificaciones olvidaste pasar el "Table1.next" al final del bucle, algo que fastidió la última neurona que me quedaba

saludos
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


La franja horaria es GMT +2. Ahora son las 09:25:11.


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