Criando Feriados Bancários em Maker Softwell + Sql Server 2008
Autor: Luciano Souza | Publicado: 2013-07-16T18:20:00-03:00

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ê&nbsp;já&nbsp;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.
&nbsp;http://blog.shti.com.br/p/criando-tabela-tempferiado-no-sql-server.html
&nbsp; &nbsp; 
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- &nbsp;Vinculando o formulário com a tabela "TempFeriado". Em Definições&nbsp;+ Assistente de Consulta, monte a tabela de acordo com a imagem abaixo.




3-&nbsp;Voltando no formulário, defina as propriedades &nbsp;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-&nbsp;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- &nbsp;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", &nbsp;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 !!