terça-feira, 16 de julho de 2013

Criando Feriados Bancários em Maker Softwell + Sql Server 2008

Neste tutorial estou supondo que você seja um desenvolvedor Maker Softwell...
Criando uma grade com os feriados bancários de São Paulo. O mesmo pode ser adaptado para outros estados. Abaixo a imagem do resultado final.. Conforme alteramos o ano, os feriados irão alterar de acordo com o ano !!


Plataforma de desenvolvimento: Maker 2.7 Softwell.
Banco de Dados: SQL Server 2008.

Estrutura.
Obs... Supondo que você já tenha criado uma base de dados e configurado para o Maker !!
1° Rodar 2 Script para criação das tabelas TempFeriado e Feriado
Segue o link com os scripts das tabelas.
 http://blog.shti.com.br/p/criando-tabela-tempferiado-no-sql-server.html
   
2° Rodar 1 Script para criação da procedure que gera os feriados moveis.
Segue o link com a procedure que gera os feriados moveis.
http://blog.shti.com.br/p/script-sql-server-2008-para-gerar.html

Criando as telas no Maker.

1- Crie a tela conforme imagem abaixo..


2-  Vinculando o formulário com a tabela "TempFeriado". Em Definições + Assistente de Consulta, monte a tabela de acordo com a imagem abaixo.

3- Voltando no formulário, defina as propriedades  dos componentes Id, Data e Feriado com os respectivos campos. "Id = IdFeriado", "Data = Data" e "Feriado = "Feriado", conforme imagem abaixo e Salve !!

4- Após salvar o formulário, rode no seu browser e cadastre os feriados fixos, conforme imagem abaixo.


5- Agora vamos criar o formulário no Maker vinculado com a tabela "Feriado". Seguindo os passos 1,2 e 3, porem com a tabela "Feriado".

6- Agora vamos criar o formulário "Feriado Bancário", onde usaremos uma grade para vincular com a tabela "Feriado" dois botões para avançar e voltar um ano e um componente "Caixa de Texto" para digitarmos o ano e buscar os feriados daquele ano !! Salve o formulário sem vincula-lo a nenhum banco. Veja na imagem abaixo a estrutura do formulário !!
7- Após arrastar o formulário "Feriado" para dentro do Formulário "Feriado Bancário" e criar os botões e o componente "Caixa de Texto (Ano) ". Vamos criar o fluxo no evento ao modificar do componente "Ano"..
Abaixo segue o fluxo !!
8- Crie o Parâmetro de Entrada "AnoAtual" Tipo "Inteiro"..
9- No 1° processamento (Executar Procedure FeriadoSP), dê dois cliques q utilize a função "Executar Procedure".. No primeiro parâmetro defina o nome da Procedure, (FeriadoSP) no segundo parâmetro utilize a função "Criar Lista A Partir do Elementos" e vincule a lista com o parâmetro de entrada "AnoAtual". Verifique a imagem abaixo !!

10- Agora vamos para o processo "Modificar Consulta do Formulário ou Grade". Dê um duplo clique no processo e procure pela função "Modificar Consulta do Formulário ou Grade". No 1° parâmetro, digite o Nome do Formulário (Feriado), no 2° parâmetro use a função "Abrir Consulta Navegável". Utilize o "Wizard SQL" e procure pela tabela "Feriado". Selecione os campos Feriado.Data (tipo de ordem Ascendente), Feriado.Feriado e Feriado.Dia. Dê "Ok". No 3° parâmetro da função Modificar Consulta do Formulário ou Grade marque a opção "true", para permitir a atualização da grade ! Abaixo segue as duas imagens de como deve ficar o fluxo e a consulta sql !!


11- Salve o fluxo com o nome Feriado na camada servidor !
De volta ao formulário "Feriado Bancário" no evento ao modificar do componente "Ano", vamos vincular o fluxo ao componente "ano". Veja na imagem abaixo !!

12-  Agora vamos criar um fluxo no "evento ao entrar", no formulário "Feriado Bancário". Esse fluxo é simples. Coloque um processamento e utilize a função "Alterar Valor do Componente". Nos parâmetros coloque: 1° Formulário "Feriado Bancário",  2° Ano (ano) e no 3° utilize a função "Ano" e adicione a função "Hoje", conforme a imagem abaixo.. Salve o fluxo e verifique se ele esta vinculado ao evento "Ao Entrar" do formulário Feriado Bancário. Salve e Rode o sistema para ver funcionando !!


Resultado Final No Browser e uma pequena demonstração de funcionamento !!