Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   vigilante del tiempo (https://www.clubdelphi.com/foros/showthread.php?t=79439)

CoCaInE 05-07-2012 05:25:46

vigilante del tiempo
 
Estoy desarrollando una aplicacion de loteria, en ella se puede vender diferentes tipos de jugadas para diferentes tipo de loterias. el tema es que quiero que cuando un usuario intente entrar una jugada a destiempo el sistema no lo permita. y si hay alguna jugada en el detalle del ticket que su tiempo haiga vencido automaticamente pues cierre el ticket el tema es que debo consultar el tiempo a cada instante porque las jugadas cierran a diferentes momentos. Estoy utilizando Sql server. para el detalle estoy utilizando TclientDataset

oscarac 05-07-2012 06:38:12

hola como estas
quiza si colocas un poco mas de detalles
por ejemplo en que momento se originan las jugadas
cuantos tipos de jugadas tienes

por lo pronto podrias colocar una tabla de horarios por tipo de jugada
entonces antes de iniciar la venta de la jugada puedes preguntar si la hora del sistema esta dentro del rango de la jugada y si no esta pues puedes enviar un mensaje diciendo que no se pude ejecutar la venta

CoCaInE 05-07-2012 15:31:26

son como 8 tipos de jugadas diferentes, tengo una tabla con la hora en que cierra cada jugada, a la hora de realizar un ticket se van introduciendo las jugadas en un detalle(Tclientdataset), si la jugadas que tienen introducidas en el detalle llegan al tiempo limite deberia de cerrarse el ticket, se que debe ser un Timer , consultando la BD para ver a que hora de cierra cada jugada , puesto que las horas de cierres no son fijas.pero no me llega ni una idea!! lo que me llegaba a la mente es ir introduciendo las jugadas en un array e ir comparando el array con la hora en las tablas..

ElDioni 05-07-2012 16:45:08

Hola,

pues supongo que como tu mismo has dicho, en un timer tendrás que hacer la comparación con las jugadas que tengas introducidas en el client.

Código Delphi [-]
clientdataset1.First;
while ClientDataSet1.Eof=false do
  begin
    if ClientDataSet1.FieldByName('Hora').AsDateTime>HoraFinJugada then
      begin
        ClientDataSet1.Edit;
        ClientDataSet1.FieldByName('Cerrar').AsBoolean:=True;
        ClientDataSet1.Post;
      end;
    ClientDataSet1.Next;
  end;

Saludos.

CoCaInE 05-07-2012 17:37:19

Cita:

Empezado por ElDioni (Mensaje 436771)
Hola,

pues supongo que como tu mismo has dicho, en un timer tendrás que hacer la comparación con las jugadas que tengas introducidas en el client.

Código Delphi [-]
clientdataset1.First;
while ClientDataSet1.Eof=false do
  begin
    if ClientDataSet1.FieldByName('Hora').AsDateTime>HoraFinJugada then
      begin
        ClientDataSet1.Edit;
        ClientDataSet1.FieldByName('Cerrar').AsBoolean:=True;
        ClientDataSet1.Post;
      end;
    ClientDataSet1.Next;
  end;

Saludos.

Saludos este mismo Clientdataset estare ocupandolo con un grid puesto que si entran una jugada erronea ellos puedan seleccionarla y borrarla el tema es que recorriendo la tabla no me deja editar. va a la velocidad de un cohete ruso jejeje :)

ElDioni 05-07-2012 18:49:21

Hola,
pues en lugar de usar un ClientDataSet para tener los datos en virtual podrías utilizar una tabla física real a donde apunte un query y en el timer hacer updates a esa tabla.

Código Delphi [-]
Adoquery1.SQL.Text:='UPDATE jugadas SET Cerrar=true WHERE hora>='+HoraFinJugada;
Adoquery1.ExecSQL;

Prueba a ver que tal responde.

Saludos.


La franja horaria es GMT +2. Ahora son las 16:42: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