Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-03-2015
napsterk89 napsterk89 is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 6
Poder: 0
napsterk89 Va por buen camino
Control de Datos Repetidos Delphi. (Necesito Ayuda)

Hola, tengo un problema, mañana rindo un final en Delphi y no hay forma de encontrarle solución a una parte del código, así que si alguien sabe algo lo agradecería.

Básicamente tengo que hacer un programa donde se cargan datos en un archivo y le realizo consultas. Es sobre venta de pasajes, ingreso nombre ,dni, importe, destino etc. Y luego puedo realizar consultas sobre los pagos y destinos.

Mi problema es con esta parte del enunciado:
Cita:
c) NO SE PUEDE pagar más de una vez un mismo destino contratado (CONTROLAR SI YA SE REALIZÓ EL PAGO. SI YA SE HIZO MOSTRAR UN MENSAJE DE ERROR Y DESCARTAR EL PAGO, SINO ACEPTAR EL PAGO).
Lo que yo sé es que tengo que comparar el destino y el núm de doc. si son iguales significa que para ese destino con ese doc ya se realizó el pago. La comparación la haría de este modo

Código Delphi [-]
(Registro.NumDoc=Edit2.Text) and (Registro.Destino=Combobox2.Items[Combobox2.itemindex])

Según mi profesor tengo que utilizar un While o un Until para resolverlo. Si a alguien se le ocurre algo bienvenido sea.
Desde ya, gracias.
Responder Con Cita
  #2  
Antiguo 03-03-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola napsterk89.
Cita:
Empezado por napsterk89 Ver Mensaje
...
Lo que yo sé es que tengo que comparar el destino y el núm de doc. si son iguales significa que para ese destino con ese doc ya se realizó el pago.
...
Lo típico sería declarar un campo de pago, pero si la condición para considerar un registro pagado es tál como comentas, podrías hacer:
Código Delphi [-]
function IfHavePay(var FileReg: TFileReg; reg: TRegister): Boolean;
var
  r: TRegister;
begin
  Result:= False;
  Seek(FileReg, 0);
  while not Result and not Eof(FileReg) do
  begin
    Read(FileReg, r);
    Result:= (r.NumDoc = reg.NumDoc) and (r.Destino = reg.Destino);
  end;
end;

Un ejemplo de uso:
Código Delphi [-]
...
type
  TRegister = packed record
    NumDoc : string[9];
    Destino: string[15];
    ...
  end;

  TFileReg = file of TRegister;
...

procedure ...
var
  FileReg: TFileReg;
  r: TRegister;
begin
  AssignFile(FileReg, 'nombre_archivo.dat');
  Reset(FileReg);

  r.NumDoc := Edit2.Text;
  r.Destino:= Combobox2.Items[Combobox2.itemindex];

  if IfHavePay(FileReg, r) then
    ShowMessage('Pagado')
  else
    ShowMessage('Impago');

  CloseFile(FileReg);
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Evitar Datos Repetidos?? Bare C++ Builder 12 12-06-2010 02:36:39
Necesito ayuda para conseguir los datos de una MB JoeyJordison Varios 2 01-04-2007 17:36:03
datos repetidos en tabla marceloalegre SQL 3 03-08-2005 20:37:47
Necesito ayuda con control MaskEdit mgventura Varios 2 11-05-2005 17:04:23
Datos repetidos... SQL... emeceuy Conexión con bases de datos 6 18-08-2003 15:10:41


La franja horaria es GMT +2. Ahora son las 15:49:13.


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