Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
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 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
  #2  
Antiguo 06-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
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
  #3  
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
  #4  
Antiguo 07-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
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
  #5  
Antiguo 07-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 26
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por Lepe
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
Dsiculpame , es que se me fueron algunas amí también al trata de "Indentarlo" , Pero ya está corregido
__________________
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
  #6  
Antiguo 11-10-2005
aurbano aurbano is offline
Miembro
 
Registrado: abr 2004
Posts: 20
Poder: 0
aurbano Va por buen camino
problema com dblookupcombobox

Ok. disculpa lepe. el codigo es el siguiente:

fieldbyname('RIF_com').asstring := dblookupcombobox.field.asstring;


El error que me da es que mientras el dbgrid me guarda los registros desde el principio de la tabla, el dbloookupcombobox lo guarda al final. Como hago para que el dblookupcombobox me lo guarde en el principio y en cada uno de los registros.
Responder Con Cita
  #7  
Antiguo 11-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
A este paso creo que jamás encontraremos la solución.

lo primero de todo son los nombres, Table1 no nos dice nada, ni a nosotros ni a ti mismo, así que en la propiedad TTable.Name ponle tblVentas o tblcompras para hacerlo más descriptivo.

Tambien haces uso de dbgrid.fields[XX] ¿Crees que es fácil adivinar que hay ahí?. Si el dbgrid está relacionado con la tabla ventas, es más facil poner TblVentasPrv_Pro.AsString, queda mucho más claro.

Lo mismo para los dbedits que estan relacionado con la tabla clientes. cambia el nombre a la tabla, de forma que quede TblClientes, da doble clic en la tabla y con el boton derecho, añade todos los campos, a partir de ahora ya puedes usar cosas como : tblClientesNombre.AsString.

Tú mismo estás mareado con estas cosas, y solo tienes 3 tablas !!!, imagina cuando tengas 100.

3/4 de lo mismo para:

fieldbyname('RIF_com').asstring := dblookupcombobox.field.asstring;

puedes usar directamente:

fieldbyname('RIF_com').asstring := tblclientesRIF_CLI.AsString

Cita:
Empezado por aurbano
El error que me da es que mientras el dbgrid me guarda los registros desde el principio de la tabla, el dbloookupcombobox lo guarda al final. Como hago para que el dblookupcombobox me lo guarde en el principio y en cada uno de los registros.
5 lecturas y sigo preguntandome que significa eso?

Despues de cambiar el nombre a los componentes, un simple Buscar y Reemplazar, cambia todas las referencias que tengas en tu código, y solo son 3 reemplazos que has de hacer .

Aclara conceptos, código fuente e ideas, y despues preguntanos.

Un saludo

Última edición por Lepe fecha: 11-10-2005 a las 17:14:03.
Responder Con Cita
  #8  
Antiguo 12-10-2005
aurbano aurbano is offline
Miembro
 
Registrado: abr 2004
Posts: 20
Poder: 0
aurbano Va por buen camino
problema con dbgrid

Ok. lepe no te pongas bravo voy a seguir tus consejos.


Saludos
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


La franja horaria es GMT +2. Ahora son las 18:01:26.


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