Tutorial: Calendário Com Botão de Impressão e Cores de Eventos Baseados no Dia

Neste exemplo veremos como inserir o botão de impressão na aplicação de Calendario, e também exemplificaremos a funcionalidade automática de cores para eventos do passado, presente e futuro.

Criando a aplicação

1. A tabela que será utilizada para a execução do calendário será a tabela “events”.

 
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. Selecione os campos da tabela que serão usados na aplicação.

Itens com * são obrigatórios para criar a aplicação. Os outros campos apenas são usados para informações adicionais da agenda.

Opções

  • Id: Usado para identificar o registro, selecione o campo de chave primária dessa tabela. (Int (11))
  • Título: Usado para armazenar o assunto de cada atividade que será exibido na aplicação. ((Varchar (50))
  • Data de início: Será gravado a data de início da atividade. * (Date ou datetime)
  • Hora de início: Será gravado a hora de início da atividade. * (Date ou datetime)
  • Data de término: Será gravado a data de término da atividade. * (Date ou datetime)
  • Hora de término: Será gravado a hora de término da atividade. * (Date ou datetime)
  • Recorrência: Usado para afirmar se o evento se repetirá em um mês, semana ou dia. (Int) (1)
  • Período:Usado para afirmar o tipo de reptição da recorrência: mês, semana ou dia. (Int) (1)

Obs: Se você tem um campo do tipo datetime na base de dados, você pode relacionar as opções data e hora utilizando o mesmo campo datetime da base de dados. A aplicação pegará os dois valores e concatenar-los-á antes de salvar no banco de dados.

Inserindo o botão de Impressão

3. Acesse o item “Impressão” no menu da aplicação.

4. Ative a opção “Mostrar botão Imprimir”.

Criando uma função para exemplificar o recurso de cores nos eventos

Para demonstrar este recurso, criaremos uma função php para inserir, automaticamente, registros nas datas de hoje, ontem e amanhã, toda vez que a aplicação for executada.

5. Primeiramente vamos criar a função PHP acessando, no menu da aplicação, o item “Programação >> Métodos PHP >> Novo Método”.

6. O nome do método será “check_date” e possuirá o seguinte código:

 
// Always insert record for TODAY, YESTERDAY and TOMORROW!
 
// $ ontem = (date ("Y")). "-". (date ("m")). "-". (date ("d") - 1);
              $ leaf   = date("Ymd");
              $ ontem = date('Ymd', strtotime("-1 day",strtotimeleaf($)));
              $ amanha = date('Ymd', strtotime("+1 day",strtotimeleaf($)));
 
// This macro will protect the value passed as paramenter according to the used database.
$ ontem  = sc_sql_protect($ ontem, "date");
              $ leaf   = sc_sql_protectleaflet($, "date");
              $ amanha = sc_sql_protect($ amanha, "date");
// Capturing value to check.
if($ leaf==1) {
 
              }
              sc_lookup(yesterday,"select count (*) from events where start_date = $ ontem");
              sc_lookup(today,"select count (*) from events where start_date =leaf $");
              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',$ leaf, NULL,$ leaf, 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',$ leaf, NULL,$ leaf, 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. Em seguida devemos realizar a chamada da função no evento onScriptInit, pois será executado sempre que a aplicação for iniciada.

8. Clique em “Executar aplicação” para gerar os fontes e visualizar a aplicação.

Compartilhe este tutorial

Tutoriais na mesma categoria

Calendário Responsivo

Neste tutorial, criaremos um aplicativo de calendário responsivo Calendário no na...

Calendário (integração com o Google Calendário)

1- Primeiro, você deve ativar a API do google nesta página: https://console.developers.google....

Calendário por usuário

1. A tabela que será utilizada para a execução do calendário deve ser criado anteriormente pelo...

Aplicação Calendário

1. A tabela que será utilizada para a execução do calendário será a tabela "events". CREAT...

Comente este post