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 06-04-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 21
silviodp Va por buen camino
Calculos en una tabla

En mi aplicación hice en el onClick de un botón este procedimiento para calcular AMORTIZACION, VALOR ACUMULADO Y VALOR RESIDUAL de un determinado Bien de Uso, pero mi problema es que cuando calculo ésto (también tengo un boton que me Graba los datos haciendo un Post en la tabla) y hago click en el boton Grabar no me graba estos valores en la Tabla, la verdad es que no se porque. Alguien puede ayudarme abajo está el código que hice para estos calculos.
Estoy usando Delphi 5, y tablas Paradox 7.
Gracias, saludos.-

Código:

procedure TForm10.CalcularClick(Sender: TObject); (Calculo AMORTIZACION, V. ACUMULADO, V. RESIDUAL)
Var
d,m,Aini,Afin,difa:Word;
n,a,precio:Variant;
amort,Vacumulado,Vresidual:Integer;

begin
//Calculo la AMORTIZACION

ModeloDatos.TblMueble.Active:=True;

n:=ModeloDatos.TblMueble.FieldValues['Rubro']; //lo que tengo en el campo 'Rubro' de TblMueble.-
a:=ModeloDatos.TblRubro.Lookup('CODRUB',n,'Añoamortizacion'); //años de Amortización.-

precio:=ModeloDatos.TblMueble.FieldValues['Preccompra'];
Amort:=precio/a;
ModeloDatos.TblMueble.FieldValues['Amortizacion']:=Amort;

//Calculo VALOR ACUMULADO.-

Decodedate(Date,Afin,m,d); //Decodifica una fecha en año, mes, día.-
Decodedate(ModeloDatos.TblMueble.FieldValues['Fechcomp'],Aini,m,d);
difa:=Afin-Aini;
Vacumulado:=Amort*difa;

//Calculo VALOR RESIDUAL.-

Vresidual:=precio-Vacumulado;
ModeloDatos.TblMueble.FieldValues['Vresidual']:=Vresidual;
end;
Responder Con Cita
  #2  
Antiguo 06-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

¿ No te falta un ModeloDatos.TblMueble.Post ?

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 06-04-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 21
silviodp Va por buen camino
Calculo en una tabla

Probé también con eso pero no anduvo tampoco, no graba y cuendo hago click en el boton grabar (que tengo) me da error, 'que la tabla no está en Edit o insert mode'
Responder Con Cita
  #4  
Antiguo 07-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
A parte del Post comentado por Marc, también te falta un Edit
Responder Con Cita
  #5  
Antiguo 07-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Resumiendo... el orden debiera ser algo como:

Código:
  begin
    tabla1.first;
    while not tabla1.eof do
    begin
      Tabla1.Edit;
      tabla1campo1.value := 'NuevoValor';
      Tabla1.Post;
      Tabla1.Next;
    end;
  end;
Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 07-04-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 21
silviodp Va por buen camino
Calculo en una tabla

He probado con los ustedes me corrigieron pero no hay caso tampoco me funciona.
Les explico mejor:

Yo tengo un form con un DBGrid (relacionado con la tabla TblMueble) y cuatro botones, AGREGAR, MODIFICAR, ELIMINAR y CERRAR.
En el boton AGREGAR yo hago un Append y abro otra ventana con un form que me permite cargar los datos de un determinado bien de uso en DBEdits que están relacionados con la tabla Mueble, es aquí donde tengo un botón CALCULAR que me hace el procedimiento que describí anteriormente.
Esta nueva ventana (donde cargo los datos) tiene dos botones más: ACEPTAR (que graba toda información introducida en los DBEdits mediante un Post) y otro CANCELAR (que cancela todo mediante un Cancel).
Los datos que introduzcon mediante el teclado (Código, Descripción, Fecha de compra, etc.) cuando hago click en ACEPTAR los graba en la tabla, pero los datos que calculo con CALCULAR no se graban cuando ejecuto ACEPTAR.
Sin enbargo la tabla TblMueble sí está en modo de Inserción.
Lo mismo ocurre con el botón MODIFICAR, me hace un Edit de la tabla y me abre el mismo formulario de introducción de datos, me deja modificar los demás valores y me deja guardar los cambios pero los datos calculados no los graba. Es decir CALCULAR los obtiene pero ACEPTAR no los graba en la tabla.
Y como antes la tabla sí está en modo de edición ya que esto lo hizo el botón MODIFICAR.
Igual probé ponerlo en el código de CALCULAR (Edit... Post) pero tampoco funciona.

No sé si alguien puede darme una idea más de como solucionarlo, o de como hacerlo para que funcione, aunque sea de otra forma.
Muchas gracias, espero haber sido claro, saludos.

Silvio.-
Responder Con Cita
  #7  
Antiguo 07-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Quizás el problema esté por el

ModeloDatos.TblMueble.Active:=True;

Sabiendo que la tabla está en inserción/edición, esta linea sobraría. Quizás (y digo sólo quizás) provoque un post y por eso no se estén guardando los datos. No lo he probado, pero podrías mirar de comentar la linea a ver
Responder Con Cita
  #8  
Antiguo 07-04-2004
silviodp silviodp is offline
Miembro
 
Registrado: may 2003
Ubicación: General Levalle, Argentina
Posts: 277
Poder: 21
silviodp Va por buen camino
Calculo en una tabla

Cadetill:
sí esa línea estaba de más, pero en realidad el problema era que esas columnas las tenía definidas como Calculadas, por eso no me tomaba los datos, no sé por que pero ese era el problema porque ahora anda bien.
Muchas gracias, saludos.-

Silvio.
Responder Con Cita
  #9  
Antiguo 07-04-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por silviodp
...pero en realidad el problema era que esas columnas las tenía definidas como Calculadas, por eso no me tomaba los datos...
Hombre, haber empezado por ahí!!!!

Sólo decirte que los campos calculados se han de calcular en el evento OnCalcFields del dataset asociado
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 18:41:36.


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