PDA

Ver la Versión Completa : calendario


botones67
17-05-2003, 13:46:18
hola a todos...

Perdonar mi ignorancia, pero estoy empezando.

Quisiera saber como poder imprimir en un report un anuario, es decir todos los meses de un año.


Gracias anticipadas.

andres1569
17-05-2003, 14:02:06
Hola:

¿Cómo pretendes mostrarlo? ¿Un listado por meses? ¿Todos los meses en la cabecera y los días en detalle? Hagas lo que hagas es importante saber de qué tabla obtienes los datos y en qué forma. ¿Qué tienes pensado al respecto?

Saludos

botones67
17-05-2003, 14:14:11
Muchas gracias andres1569 por contestarme.

Veras , no tengo ninguna tabla de donde sacar los meses ni nada de eso.

Solo quiero en un form1 un botón que a picarle me imprima un folio Todos los meses en la cabecera y los días en detalle, lo mismo no se puede. lo dicho perdona mi ignorancia es que estoy empezando.


Muchas gracias anticipadas...

andres1569
17-05-2003, 15:00:11
Hola:

Se me ocurre que puedes crear una tabla con 12 campos, cuyos nombres serían los meses del año. Luego generas 31 registros rellenando cada uno con los valores que tengas pensado y dejando en blanco los días de aquellos meses que tiene menos días.

Si abres esta tabla desde Delphi y la enlazas a un QReport, es tan fácil como situar un TQRDBText por cada campo (los 12), abres la tabla y te aparecerá el resultado.

Claro que este es un anuario un poco atípico, por eso te preguntaba qué es lo que querías mostrar.

Pruébalo a ver.

botones67
17-05-2003, 15:53:30
Gracias...

Todo un detalle por tu parte.

Saludos...

marcoszorrilla
17-05-2003, 16:01:35
Puedes crearte una "StringGrid" de 13 columnas por 32 filas.

Y llenarlo con este código:

procedure TForm1.Button1Click(Sender: TObject);
var
aMeses: array[1..12] of string;
aDias : array[1..12] of Integer;
fila,columna:Integer;
n,j:Integer;
begin
n:=0;
j:=0;

aMeses[1] :='Enero';
aMeses[2] :='Febrero';
aMeses[3] :='Marzo';
aMeses[4] :='Abril';
aMeses[5] :='Mayo';
aMeses[6] :='Junio';
aMeses[7] :='Julio';
aMeses[8] :='Agosto';
aMeses[9] :='Septiembre';
aMeses[10]:='Octubre';
aMeses[11]:='Noviembre';
aMeses[12]:='Diciembre';

aDias[1] :=31;
aDias[2] :=28;
aDias[3] :=31;
aDias[4] :=30;
aDias[5] :=31;
aDias[6] :=30;
aDias[7] :=31;
aDias[8] :=31;
aDias[9] :=30;
aDias[10]:=31;
aDias[11]:=30;
aDias[12]:=31;


for n:=1 to 12 do
begin
StringGrid1.Cells[n,0]:=aMeses[n];
end;



for n:=1 to 12 do
begin

for j:=1 to aDias[n] do
begin
StringGrid1.Cells[n ,j]:=IntToStr(j);
end;

end;

end;


Ahora ya solamente te queda imprimir el StringGrid, en el Foro hay varias citas sobre imprimir un StringGrid.


Nota: el mes de Febrero lo he dado con 28 días, pero con un pequeño arreglo, es decir utilizando un If y la funcion IsLeapYear, determinaríamos si tiene 28 ó 29.

Un Saludo.