Aplicación de calendario con impresión color de botón y el evento por día

En este ejemplo, veremos cómo colocar un botón de impresión en la aplicación Calendario y también ejemplificamos la funcionalidad automática de los colores en los eventos del pasado, presente y futuro.

Creando una aplicación

1.La tabla que se utilizará para la implementación del calendario es “eventos“.

 
CREATE TABLE `events` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`title` VARCHAR(64) DEFAULT NULL,
`description` VARCHAR(128) DEFAULT NULL,
`start_date` DATE DEFAULT NULL,
`start_time` TIME DEFAULT NULL,
`end_date` DATE DEFAULT NULL,
`end_time` TIME DEFAULT NULL,
`recurrent` VARCHAR(1) DEFAULT NULL,
`period` VARCHAR(1) DEFAULT NULL,
`users` VARCHAR(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

2. Seleccione los campos de la tabla que se utilizarán en la aplicación.

Se requieren elementos con ” * ” para crear la aplicación. Los otros campos sólo se utilizan para información de la agenda.

Opciones

  • Id: Utilizado para identificar el registro, seleccione el campo de clave principal en esta tabla. (Int (11))
  • Title: Se utiliza para almacenar el tema de cada actividad que se muestra en la aplicación. ((Varchar (50))
  • Start date: Se registrará la fecha de inicio de la actividad. * (Fecha o fecha y hora)
  • Start Time: Registrará la hora de inicio de la actividad. * (Fecha o fecha y hora)
  • End date: La fecha de finalización de la actividad será registrada. * (Fecha o fecha y hora)
  • End Time: Se registrará el tiempo de finalización de la actividad. * (Fecha o fecha y hora)
  • Recurrence: Se utiliza para indicar si el evento se repite en un mes, semana o día. (Int) (1)
  • Period: Se utiliza para indicar el tipo de repetición: mes, semana o día. (Int) (1)
  • Nota: Si tiene un campo de tipo datetime en la base de datos, puede enumerar las opciones de fecha y hora usando el mismo campo datetime de la base de datos. La aplicación tomará los dos valores y los concatenará antes de guardarlos en la base de datos.

Insertando el botón Imprimir

3. Haga clic en el elemento “Impresión” en el menú de la aplicación.

4. Habilite la opción: “Mostrar botón Imprimir“.

Creando una función para ejemplificar el uso de colores en los eventos.

Para demostrar esta característica, crearemos una función php para insertar registros automáticamente las fechas de hoy, ayer y mañana, cada vez que se ejecute la aplicación.

5. Primero, creamos una función PHP, accediendo, en el menú de la aplicación, al elemento: “Programación >> Métodos PHP >> Nuevo método“.

6. El nombre del método será “check_date” y tendrá el siguiente código:

 
// Always insert record for TODAY, YESTERDAY and TOMORROW!
 
//$ontem  = (date("Y")). "-" . (date("m")). "-" . (date("d") - 1);
              $hoje   = date("Y-m-d");
              $ontem = date('Y-m-d', strtotime("-1 day",strtotime($hoje)));
              $amanha = date('Y-m-d', strtotime("+1 day",strtotime($hoje)));
 
// This macro will protect the value passed as paramenter according with the used database.
$ontem  = sc_sql_protect($ontem, "date");
              $hoje   = sc_sql_protect($hoje, "date");
              $amanha = sc_sql_protect($amanha, "date");
// Capturing value to check.
if($hoje==1){
 
              }
              sc_lookup(yesterday,"select count(*) from events where start_date = $ontem");
              sc_lookup(today,"select count(*) from events where start_date = $hoje");
              sc_lookup(tomorrow,"select count(*) from events where start_date = $amanha");
 
              // Insert Record event has nothing yesterday.
if(empty({yesterday[0][0]})){
 
              if($this->Ini->nm_tpbanco == 'pdo_sqlsrv') {
 
              sc_exec_sql("
              SET DATEFORMAT ymd;
              insert into events (title,description,start_date,start_time,end_date,end_time,recurrent,period,users) 
              values 
              ('Event','Description',$ontem,NULL,$ontem,NULL,'N','D','')");
 
              } else {
 
              sc_exec_sql("
              insert into events (title,description,start_date,start_time,end_date,end_time,recurrent,period,users) 
              values 
              ('Event','Description',$ontem,NULL,$ontem,NULL,'N','D','')");
 
              }
              }
// Insert Record event has nothing today.
if(empty({today[0][0]})){
 
              if($this->Ini->nm_tpbanco == 'pdo_sqlsrv') {
 
              sc_exec_sql("
              SET DATEFORMAT ymd;
              insert into events (title,description,start_date,start_time,end_date,end_time,recurrent,period,users) 
              values 
              ('Event','Description',$hoje,NULL,$hoje,NULL,'N','D','')");
 
              } else {
 
              sc_exec_sql("
              insert into events (title,description,start_date,start_time,end_date,end_time,recurrent,period,users)
              values 
              ('Event','Description',$hoje,NULL,$hoje,NULL,'N','D','')");
 
              } 
              }
// Insert Record event has nothing today.
if(empty({tomorrow[0][0]})){
 
              if($this->Ini->nm_tpbanco == 'pdo_sqlsrv') {
 
              sc_exec_sql("
              SET DATEFORMAT ymd;
              insert into events (title,description,start_date,start_time,end_date,end_time,recurrent,period,users) 
              values 
              ('Event','Description',$amanha,NULL,$amanha,NULL,'N','D','')");
 
              } else {
 
              sc_exec_sql("insert into events (title,description,start_date,start_time,end_date,end_time,recurrent,period,users) values 
              ('Event','Description',$amanha,NULL,$amanha,NULL,'N','D','')");
 
              }
 
           }

7. Luego realizamos la llamada a la función en el evento onScriptInit, se ejecutará cada vez que se inicie la aplicación.

8. Haga clic en “Ejecutar aplicación” para generar el origen de datos y ver la aplicación.

Compartir este tutorial

Tutoriales en la misma categoria

Columnas fijas en el resumen

En este ejemplo, veremos la opción de fijar columnas en el Resumen de las aplicaciones Grid. De es...

Tutorial: Gestión de archivos en la nube

Algunos de los servicios de almacenamiento de datos están listos para leer y almacenar de forma se...

Responsive Calendar

In this tutorial we will create a responsive calendar application Calendar in Browser M...

Cómo enviar un correo electrónico con archivo adjunto

En este tutorial, envíe un correo electrónico con archivo adjunto utilizando la macro sc_mail_sen...

Comentar este post