PDA

Ver la Versión Completa : Controlar Tiempo e Imprimir Formulario de Informe


nefore
20-08-2013, 01:01:06
Hola estoy aprendiendo a programar en Delphi, y me he topado con el siguiente problema:

Tengo un sistema de ABM de Base de Datos y necesito controlar el tiempo para generar un informe (semanal y mensual) sobre las diversas tablas que contiene la BD, es decir, necesito controlar que, al pasar una semana, se emita un informe en un form del delphi y permita al usuario imprimirlo.
El problema es que no tengo idea de como hacer para controlar que haya transcurrido esa semana y mucho menos el de imprimir un formulario.

Muchas gracias por su atencion

oscarac
20-08-2013, 06:55:13
que tipo de informe sera ese?

quieres chequear las tablas que existen en la base de datos?
se un poco mas claro en tus consultas por favor

Casimiro Notevi
20-08-2013, 09:17:35
nefore, vamos a tener que recordarte la guía del novato :D, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)

nefore
20-08-2013, 18:37:06
Hola estoy aprendiendo a programar en Delphi, y me he topado con el siguiente problema:

Tengo un sistema de ABM de Base de Datos y necesito controlar el tiempo para generar un informe (semanal y mensual) sobre las diversas tablas que contiene la BD, es decir, necesito controlar que, al pasar una semana, se emita un informe en un form del delphi y permita al usuario imprimirlo.
El problema es que no tengo idea de como hacer para controlar que haya transcurrido esa semana y mucho menos el de imprimir un formulario.

Muchas gracias por su atencion

Lo siento si no he sido claro, como he dicho al principio estoy aprendiendo a programar y no queria ser muy amplio en el sentido de aburrir.
En fin, para aclarar:
Tengo un ABM de Personas (codigo de persona, nombre, dni, sexo, direccion, etc.) y Medicos (ademas de los datos de personas posee también datos como nº matricula, direccion del consultorio, etc).
A todo esto, genero una inspeccion (con su respectivo codigo de inspeccion, ademas de tener asociado un codigo de persona sobre la cual realizo la inspeccion) en donde se consideran aspectos como: Si esta enfermo, si es una mujer si esta embarazada, cuando fue su ultima inspeccion, etc.

Ahora bien, teniendo en cuenta las inspecciones, yo semanalmente debo generar un informe que contenga los pacientes de dicha semana, reflejando la inspeccion correspondiente a esas personas por Ejemplo:
Tengo una tabla en donde deberia mostrar

Codigo
125

DNI
37456789

Apellido y Nombre
Gonzalez Jose

Enfermedad
x

Contagiosa
x

Tratamiento

Embarazo


Y asi sucesivamente con todos los clientes de la semana
Asi tambien, debo brindar la posibilidad de imprimir este informe

De ahi que me surgen la preguntas: ¿Como haria para controlar una semana? y ¿Como hago para imprimir ese formulario o la tabla?
Espero haber sido claro y disculpen las molestias

oscarac
20-08-2013, 18:44:05
Lo siento si no he sido claro, como he dicho al principio estoy aprendiendo a programar y no queria ser muy amplio en el sentido de aburrir.
En fin, para aclarar:
Tengo un ABM de Personas (codigo de persona, nombre, dni, sexo, direccion, etc.) y Medicos (ademas de los datos de personas posee también datos como nº matricula, direccion del consultorio, etc).
A todo esto, genero una inspeccion (con su respectivo codigo de inspeccion, ademas de tener asociado un codigo de persona sobre la cual realizo la inspeccion) en donde se consideran aspectos como: Si esta enfermo, si es una mujer si esta embarazada, cuando fue su ultima inspeccion, etc.

Ahora bien, teniendo en cuenta las inspecciones, yo semanalmente debo generar un informe que contenga los pacientes de dicha semana, reflejando la inspeccion correspondiente a esas personas por Ejemplo:
Tengo una tabla en donde deberia mostrar

Codigo DNI Apellido y Nombre Enfermedad Peligrosidad Tratamiento Embarazo
125 37456789 Gonzalez Jose x x


Y asi sucesivamente con todos los clientes de la semana
Asi tambien, debo brindar la posibilidad de imprimir este informe

De ahi que me surgen la preguntas: ¿Como haria para controlar una semana? y ¿Como hago para imprimir ese formulario o la tabla?
Espero haber sido claro y disculpen las molestias

esta explicacion difiere totalmente de tu explicacion inicial
mmm yo me pregunto

porque no simplemente colocas un rango de fecha y que el usuario defina que fecha utilizar, segun mi experiencia no es saludable limitar ciertos procesos, conociendo la idiosincracia de los usuarios a veces te salen con cada requerimiento que es para jalarse los pelos

nefore
20-08-2013, 18:53:23
Creeme que lo haria con un par de DateTimePicker si pudiera, pero en realidad es un trabajo de universidad, y en el documento para la creacion del programa, me exige que semanalmente realize este informe, o sea, en el formulario debe aparecer solamente un edit conteniendo la fecha de emision (del informe) y una tabla con el resumen semanal de controles de los pacientes. Ademas de dos botones de cerrar e impimir

Casimiro Notevi
20-08-2013, 19:32:26
Cuando se realiza la inspección de un paciente, se anota la fecha, sólo has de controlar esa fecha cada vez que quieras sacar un informe.
O incluso puedes añadir un campo que sea la fecha de una semana próxima. Al sacar el informe será entra una semana atrás y la fecha actual.
De todas formas, como dice oscarac, eso en la vida real no tiene mucha utilidad, no es práctico, usable y además es fácilmente descontrolable.

TiammatMX
20-08-2013, 23:12:36
Creeme que lo haria con un par de DateTimePicker si pudiera, pero en realidad es un trabajo de universidad, y en el documento para la creacion del programa, me exige que semanalmente realize este informe, o sea, en el formulario debe aparecer solamente un edit conteniendo la fecha de emision (del informe) y una tabla con el resumen semanal de controles de los pacientes. Ademas de dos botones de cerrar e impimir

Independientemente de cómo llegues a configurarlo, el "preguntar" por la condición no debería ser problema. Una vez que llegues al menú o pantalla principal, corres un procedimiento o función que te avise que para ciertos registros ya se cumplió la condición de haber pasado una semana.

ecfisa
21-08-2013, 00:41:42
Hola nefore.

Al igual que mis compañeros, pienso que lo mas simple y flexible es usar una consulta con rango de fechas .

Según veo para generar el listado habría, al menos, dos tablas involucradas: PACIENTES e INSPECCION y estas están relacionadas por el campo CODIGO.

Creo que una consulta similar a esta resolvería tu problema:

SELECT T1.CODIGO,
T1.DNI,
T1.APELLIDONOMBRE,
T2.ENFERMEDAD,
T2.CONTAGIOSA,
T2.TRATAMIENTO,
T2.EMBARAZO
FROM PACIENTES T1, INSPECCION T2
WHERE T1.CODIGO = T2.CODIGO
AND T2.FECHA_INSPECCION >= :DESDE AND T2.FECHA_INSPECCION <= :HASTA

Luego a los parámetros DESDE y HASTA le envias los rangos de fechas que desees (por semana, por mes, etc.).

Saludos :)

nefore
22-08-2013, 22:44:55
Independientemente de cómo llegues a configurarlo, el "preguntar" por la condición no debería ser problema. Una vez que llegues al menú o pantalla principal, corres un procedimiento o función que te avise que para ciertos registros ya se cumplió la condición de haber pasado una semana.

Hola nefore.

Al igual que mis compañeros, pienso que lo mas simple y flexible es usar una consulta con rango de fechas .

Según veo para generar el listado habría, al menos, dos tablas involucradas: PACIENTES e INSPECCION y estas están relacionadas por el campo CODIGO.

Creo que una consulta similar a esta resolvería tu problema:

SELECT T1.CODIGO,
T1.DNI,
T1.APELLIDONOMBRE,
T2.ENFERMEDAD,
T2.CONTAGIOSA,
T2.TRATAMIENTO,
T2.EMBARAZO
FROM PACIENTES T1, INSPECCION T2
WHERE T1.CODIGO = T2.CODIGO
AND T2.FECHA_INSPECCION >= :DESDE AND T2.FECHA_INSPECCION <= :HASTA

Luego a los parámetros DESDE y HASTA le envias los rangos de fechas que desees (por semana, por mes, etc.).

Saludos :)

Efectivamente, son buenas ideas, muchas gracias a todos por tomarse su tiempo para entender y responder.
Ahora por el tema de los parámetros por ejemplo: ¿Existira alguna funcion en delphi, que me devuelva los dias de la semana, de acuerdo a una determinada fecha?, o sea por ejemplo yo en una variable tengo la fecha de hoy (22/08/13), y ¿existira una funcion que me devuelva "jueves"?

ecfisa
22-08-2013, 23:00:43
¿Existira alguna funcion en delphi, que me devuelva los dias de la semana, de acuerdo a una determinada fecha?, o sea por ejemplo yo en una variable tengo la fecha de hoy (22/08/13), y ¿existira una funcion que me devuelva "jueves"?
Hola nefore.


...
uses DateUtils;

function DayName(aDate: TDate): string;
begin
case GetUserDefaultLangID and $03FF of
LANG_SPANISH: Result := LongDayNames[DayOfTheWeek(aDate)+1];
LANG_ENGLISH: Result := LongDayNames[DayOfTheWeek(aDate)];
//...
end;
end;

// Ejemplo de uso:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(DayName(StrToDate('22/08/2013')));
end;


Saludos. :)

Edito: Para la próxima, recuerda que debes crear un nuevo hilo para una nueva pregunta. ;)

nefore
23-08-2013, 02:39:25
Hola nefore.


...
uses DateUtils;

function DayName(aDate: TDate): string;
begin
case GetUserDefaultLangID and $03FF of
LANG_SPANISH: Result := LongDayNames[DayOfTheWeek(aDate)+1];
LANG_ENGLISH: Result := LongDayNames[DayOfTheWeek(aDate)];
//...
end;
end;

// Ejemplo de uso:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(DayName(StrToDate('22/08/2013')));
end;


Saludos. :)

Edito: Para la próxima, recuerda que debes crear un nuevo hilo para una nueva pregunta. ;)

Ah muchas gracias! y disculpa nuevamente, me parece que no estoy con los pies sobre la tierra