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 18-07-2011
donpedro donpedro is offline
Miembro
 
Registrado: nov 2009
Posts: 102
Poder: 0
donpedro cantidad desconocida en este momento
me disculpo. ya lei la guia de estilo.

estoy utilizando el siguiente codigo pero no me ha dado resultado, porque la parte para cuando el monto que pague el estudiante sea mayor que el valor no se como manejarlo:
Código Delphi [-]
     var a,b,res,x:integer;
begin
     a:=strtoint(emontoapagar.text);
     b:=strtoint(dmdatos.aqfacturadvalor.asstring);

     dmdatos.aqfacturad.first;

//esto es para cuando el monto que va a pagar sea menor o igual al valor del primer cargo

      while not dmdatos.aqfacturad.eof do
begin
      if (b > 0) and (a < b) or (a = b) then
begin
      dmdatos.aqfacturad.edit;
      res:=b-a;
      dmdatos.aqfacturadvalor.asstring:=inttostr(res);
      dmdatos.aqfacturad.post;
break;
      dmdatos.aqfacturad.next;
end;
Responder Con Cita
  #2  
Antiguo 18-07-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por donpedro Ver Mensaje
estoy utilizando el siguiente codigo pero no me ha dado resultado, porque la parte para cuando el monto que pague el estudiante sea mayor que el valor no se como manejarlo:

Hola donpedro, puedes hacer algo como esto:

Código Delphi [-]
var
 flg : boolean;
 a,b,res,x, Valor:integer;
begin
  a:=strtoint(emontoapagar.text);
  flg := False;
  With dmdatos do
  begin
   aqfacturad.first;
    While not aqfacturad.eof do
     begin
      b:=strtoint(aqfacturadvalor.asstring);
      if (a > b) then
       Valor := 0
      else
       if a>0 then
        begin
         Valor := b-a;
         flg := True;
        end;
      a := a-b;
      aqfacturad.edit;
      aqfacturadvalor.asstring:=Valor;
      aqfacturad.post;
      if Not flg then
       aqfacturad.next
      else
       break;
     end;
  end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 18-07-2011
donpedro donpedro is offline
Miembro
 
Registrado: nov 2009
Posts: 102
Poder: 0
donpedro cantidad desconocida en este momento
Cita:
Empezado por Caro Ver Mensaje
Hola donpedro, puedes hacer algo como esto:

Código Delphi [-]
var
 flg : boolean;
 a,b,res,x, Valor:integer;
begin
  a:=strtoint(emontoapagar.text);
  flg := False;
  With dmdatos do
  begin
   aqfacturad.first;
    While not aqfacturad.eof do
     begin
      b:=strtoint(aqfacturadvalor.asstring);
      if (a > b) then
       Valor := 0
      else
       if a>0 then
        begin
         Valor := b-a;
         flg := True;
        end;
      a := a-b;
      aqfacturad.edit;
      aqfacturadvalor.asstring:=Valor;
      aqfacturad.post;
      if Not flg then
       aqfacturad.next
      else
       break;
     end;
  end;

Saluditos
Muchas gracias caro gran parte de mi duda ese codigo lo resuelve, solo falta algo me explico.

si introduzco 1500 el me coloca el primer cargo en cero y el segundo en 300 ya que el resto los 500 que sobraron al siguiente cargo....ahora:

si vuelvo y busco al estudiante para realizar otro pago el sistema no reconoce que el primer cargo esta en cero y me da el siguiente error:

no se puede encontrar la fila para su actualizacion: algunos valores han cambiado desde la ultima vez que se leyo.

tendria que colocar una condicion para identificar que si b = 0 que vaya al siguiente registro.

Gracias, Dios te bendiga
Responder Con Cita
  #4  
Antiguo 18-07-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por donpedro Ver Mensaje
tendria que colocar una condicion para identificar que si b = 0 que vaya al siguiente registro.
Hola de nuevo, si tendrías que colocar esa condición para que no tome los que ya tienen valor 0.

Código Delphi [-]
   aqfacturad.first;
   While not aqfacturad.eof do
    begin
     b:=strtoint(aqfacturadvalor.asstring);
     if b>0 then
     begin 
      if (a > b) then
       Valor := 0
      else
        .......................
        ......................... 
      a := a-b;
      aqfacturad.edit;
      aqfacturadvalor.asstring:=Valor;
      aqfacturad.post;
     end;
     if Not flg then
      aqfacturad.next
     else
      break;
    end;

otra forma para no hacer tantas condiciones, es hacer una consulta que te traiga los registros que sumen el monto a pagar sin tomar en cuenta los que tengan valor 0, así solo recorres esos registros haces el update y tendrias solo dos condiciones.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 18-07-2011
donpedro donpedro is offline
Miembro
 
Registrado: nov 2009
Posts: 102
Poder: 0
donpedro cantidad desconocida en este momento
Mil gracias caro

tu ayuda fue de muy buena utilidad, espero tambien poder compartir parte de mis conocimientos para ayudar a otros, de la misma forma que me ayudaste.

Saluditos...
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
validar datos contra un valor de una tabla robertillo Varios 5 25-05-2007 18:58:15
Problemas para validar entrada de datos en delphi 7 Nelly Varios 1 27-03-2007 23:31:25
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla taru MySQL 1 27-07-2006 15:36:12
como crear exception para validar duplicación de llaves en tabla viajero2015 Conexión con bases de datos 6 21-10-2003 09:54:09
Validar datos en dbgrid jgutti Varios 1 08-09-2003 23:49:23


La franja horaria es GMT +2. Ahora son las 10:55:49.


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