125
FUNDAÇÃO CULTURAL CAMPANHA DA PRINCESA FACULDADES INTEGRADAS PAIVA DE VILHENA CURSO DE SISTEMAS DE INFORMAÇÃO CARLOS HENRIQUE PEREIRA Desenvolvimento de um Software para Atendimento Bancário Campanha MG 2011

Carlos Henrique Pereira [monografia]

Embed Size (px)

DESCRIPTION

Trabalho de conclusão do Curso de Sistemas de Informação.

Citation preview

Page 1: Carlos Henrique Pereira [monografia]

FUNDAÇÃO CULTURAL CAMPANHA DA PRINCESA

FACULDADES INTEGRADAS PAIVA DE VILHENA

CURSO DE SISTEMAS DE INFORMAÇÃO

CARLOS HENRIQUE PEREIRA

Desenvolvimento de um Software para Atendimento

Bancário

Campanha – MG

2011

Page 2: Carlos Henrique Pereira [monografia]

FUNDAÇÃO CULTURAL CAMPANHA DA PRINCESA

FACULDADES INTEGRADAS PAIVA DE VILHENA

CURSO DE SISTEMAS DE INFORMAÇÃO

CARLOS HENRIQUE PEREIRA

Desenvolvimento de um Software para Atendimento

Bancário

Monografia apresentada à disciplina Trabalho

Final de Curso, como parte dos requisitos para

obtenção do titulo de Bacharel em Sistemas de

Informação, pela Fundação Cultural

Campanha da Princesa.

Orientador: Prof. Paulo Guilherme Pereira

Campanha – MG

2011

Page 3: Carlos Henrique Pereira [monografia]

CARLOS HENRIQUE PEREIRA

SOFTWARE PARA ATENDIMENTO BÁNCARIO

Monografia aprovada como requisito para a obtenção do

título de Bacharel em Sistemas de Informação, das

Faculdades Integradas Paiva de Vilhena.

Data da aprovação

______/______/______

BANCA EXAMINADORA

Nome:__________________________________________________________

Instituição:______________________________________________________

Assinatura:______________________________________________________

Nome:__________________________________________________________

Instituição:______________________________________________________

Assinatura:______________________________________________________

Nome:__________________________________________________________

Instituição:______________________________________________________

Assinatura:______________________________________________________

Page 4: Carlos Henrique Pereira [monografia]

Dedicatória

Dedico este trabalho a Deus, primeiramente,

que me deu muita força para conclusão, a

toda minha família que sempre incentivou e

esteve comigo todo esse tempo.

Page 5: Carlos Henrique Pereira [monografia]

Agradecimentos

Agradeço ao professor Paulo Guilherme

Pereira que me orientou durante esta jornada

de trabalho, incentivando e apoiando o seu

desenvolvimento; ao coordenador do curso

Alessandro Mateus Salomé, pela confiança e

apoio, e a todos os meus amigos que

acreditaram em mim.

Page 6: Carlos Henrique Pereira [monografia]

“[...] E nunca considerem seu estudo como uma obrigação, mas

sim como uma oportunidade invejável de aprender, sobre a

influência libertadora da beleza no domínio do espírito, para

seu prazer pessoal e para o proveito da comunidade à qual

pertencerá o seu trabalho futuro”.

Albert Einstein

Page 7: Carlos Henrique Pereira [monografia]

RESUMO

Com o crescimento dos serviços bancários, surgem situações desagradáveis, na

maioria das vezes, na hora dos atendimentos. Frequentemente, dentre desse crescimento

gera-se a possibilidade de se criar sistemas informatizados para que seja possível um melhor

atendimento não só nos serviços bancários, mas dentre outros estabelecimentos. E a

principal reclamação que é enfrentada nesse cenário é ter que ficar tempo demais em uma

fila de espera e ainda por falta de comodidade para ser atendido. Se parar e pensar logo vem

à ideia; e quanto às pessoas idosas, portadoras de alguma deficiência física? Essas pessoas

sofrem muito mais, dessa forma faz com que gere irritabilidade por partes dos clientes. Com

o desenvolvimento de um software que gerencie filas por senhas, poderíamos reduzir

consideravelmente diversos aborrecimentos.

Diante do exposto, esta pesquisa irá demostrar como o desenvolvimento de um

software capaz de gerenciar filas por senhas contendo informações relevantes para o

ambiente implantado concorreria para uma melhora acerca dos problemas supracitados. Os

benefícios gerados em caso de implantação do software é oferecer maiores benefícios não só

para a empresa como também para seus clientes.

PALAVRAS CHAVE: Serviços bancários, senhas por filas, estabelecimentos, atendimento

e software.

Page 8: Carlos Henrique Pereira [monografia]

ABSTRACT

With the growth of banking services, arise unpleasant situations, most often, in hours

of care. Often, of this growth creates the possibility of creating computer systems so that you

can better care not only in banking, but among other establishments. And the main

complaint that is addressed in this scenario is to have to stay too long in a queue, and yet for

lack of convenience to be served. If you stop and think immediately comes to mind, and as

the elderly, suffering from any physical disabilities? These people suffer much more, thus

generating cause’s irritability by customers. With the development of a software that

manages queues for passwords, could greatly reduce many hassles.

Given the above, this research will demonstrate how the development of a software

able to manage passwords for queues containing information relevant to the deployed

environment would further improvement of the problems mentioned above. The benefits in

the event of deployment of the software is not only provide greater benefits to the company

but also for their customers.

KEY WORDS: Banking, passwords by lines, facilities, service and software.

Page 9: Carlos Henrique Pereira [monografia]

LISTA DAS FIGURAS

Figura 01 – DFD Login dos Usuários 30

Figura 02 – DFD Cadastro de Usuários 31

Figura 03 – DFD Cadastro de Mesas 32

Figura 04 – DFD Alteração de Senha 33

Figura 05 – DFD Cadastro de Atendente 34

Figura 06 – DFD Cadastro de Mensagens 35

Figura 07 – DFD Acesso ao Guichê 36

Figura 08 – DFD Cadastro de Mensagens Manualmente 37

Figura 09 – Caso de Uso de Clínica Médica 38

Figura 10 – UML Funções dos Usuários 1 39

Figura 11 – UML Funções dos Usuários 2 39

Figura 12 – UML Funções dos Usuários 3 40

Figura 13 – UML Funções do Administrador 1 40

Figura 14 – UML Funções do Administrador 2 41

Figura 15 – Diagrama de ER 42

Figura 16 – Consulta SQL 42

Figura 17 – Diagrama de Classe 43

Figura 18 – Gráfico de Gantt (Informações do Software) 55

Figura 19 – Gráfico de Gantt (Tempo de Realização) 55

Figura 20 – Gráfico de Gantt (Tarefas) 56

Figura 21 – Gráfico de Gantt (Pessoas Envolvidas) 56

Figura 22 – Tela Splash 58

Figura 23 – Tela de Login 59

Figura 24 – Tela Menu Principal 59

Figura 25 – Amostra da Tela de Senhas Comuns e Preferenciais 60

Figura 26 – Tela de Atendente 60

Figura 27 – Tela de Manutenção de Atendimentos 61

Figura 28 – Tela de Manutenção de Mesas 61

Figura 29 – Tela de Manutenção de Senha 62

Figura 30 – Tela de Manutenção de Mensagens 62

Figura 31 – Tela do Painel de Atendimento 63

Figura 32 – Tela de Lista de Usuários 63

Page 10: Carlos Henrique Pereira [monografia]

Figura 33 – Tela do Gráfico Demonstrativo dos Atendimentos 64

Figura 34 – Tela de Cadastro de usuários 64

Figura 35 – Tela de Sobre o Sistema 65

Figura 36 – Tela de Relatório dos Atendimentos 65

Page 11: Carlos Henrique Pereira [monografia]

LISTA DOS QUADROS

Quadro 01 – Tabela Usuários 28

Quadro 02 – Tabela Letreiro Digital 28

Quadro 03 – Tabela Atendimento 29

Quadro 04 – Tabela Atendente 29

Quadro 05 – Tabela Senha 29

Quadro 06 – Tabela Mesas 30

Quadro 07 – Necessidades do Software 46

Page 12: Carlos Henrique Pereira [monografia]

LISTA DAS TABELAS

Tabela 01 – Investimento 24

Tabela 02 – Despesas Fixas Mensais 25

Tabela 03 – Licenciamentos do Software 25

Tabela 04 – Custo Total do Período de Desenvolvimento 26

Tabela 05 – Custo Após o Período de Desenvolvimento 26

Tabela 06 – Custo Total 26

Page 13: Carlos Henrique Pereira [monografia]

SUMÁRIO

1. Tema 14

1.1 Introdução 14

1.2 Problema 15

1.3 Hipóteses 15

1.4 Justificativa 15

1.5 Objetivos 15

1.5.1 Objetivo Geral 15

1.5.2 Objetivos Específicos 15

1.6 Metodologia 16

2. Marco Teórico 17

2.1 Histórico da Linguagem de Programação 17

2.1.1 Sintaxe 17

2.1.1 Semântica 17

2.2 Microsoft Corporation e a Linguagem Visual Basic .NET 18

2.3 Conceitos Sobre Banco de Dados 19

2.3.1 Banco de Dados SQL 19

2.3.2 Banco de Dados em Access 20

2.3.3 SGBD 20

3. Desenvolvimento 21

3.1 Definição do Problema 21

3.2 Estudo de Viabilidade 21

3.2.1 Custos Envolvidos 22

3.2.2 Investimentos 22

3.2.3 Período de Desenvolvimento 23

3.2.4 Custo Total do Período de Desenvolvimento 23

3.2.5 Custos Após o Período de Desenvolvimento 24

3.2.6 Custo Total 24

3.2.7 Benefícios 25

3.2.8 Conclusão 25

3.3 Solução Proposta 25

Page 14: Carlos Henrique Pereira [monografia]

3.4 Dicionário de Dados 26

3.5 Diagramas de Fluxos de Dados 28

3.6 Diagramas de Casos de Uso 37

3.7 Entidade Relacionamento 40

3.8 Diagrama de Classes 42

4. Software para Atendimento Bancário 43

4.1 Do que se Trata o Sistema 43

4.2 Qual a sua Finalidade 43

4.3 Funcionamento do Software 43

4.4 Aplicação do Software de Atendimento 44

4.5 Ciclo de Vida do Software de Atendimento 44

4.6 Elicitação de requisitos 44

4.6.1 Motivação 44

4.6.2 Visão da Solução 45

4.6.3 Escopo da Solução 45

4.6.4 Limites e Restrições da Solução 46

4.6.5 Análise e Negociação de Requisitos 46

4.6.5.1 Critérios de Aceitação do Produto do Projeto 46

4.6.5.2 Requisitos de Aprovação 46

4.6.5.3 Entrega do Projeto 46

4.6.5.4 Riscos Iniciais Identificados 47

4.6.5.5 Premissas 47

4.7 Especificações de Requisitos de Software 47

4.7.1 Propósito 47

4.7.2 Escopo 47

4.8 Identificação e Localização do Documento 48

4.8.1 Organização do Documento 48

4.8.2 Descrição Geral do Software 48

4.8.3 Requisitos Funcionais 48

4.8.4 Requisitos Não-Funcionais 49

4.9 Visões Gerais do Software 49

4.9.1 Características dos Usuários 49

4.9.2 Restrições 49

Page 15: Carlos Henrique Pereira [monografia]

4.10 Chamadas 49

4.10.1 Requisitos Funcionais 49

4.10.2 Requisitos Não-Funcionais 50

4.10.2.1 Usabilidade 51

4.10.2.2 Confiabilidade 51

4.10.2.3 Desempenho 51

4.10.2.4 Reusabilidade 51

4.10.2.5 Segurança 51

4.10.2.6 Acessibilidade 52

4.11 Requisitos de Interface 52

4.11.1 Interfaces com Usuários 52

4.11.2 Interfaces Hardware e Software 52

4.11.3 Interfaces de Comunicação 52

4.12 Requisitos de Documentação 52

4.12.1 Manual dos Usuários 53

4.12.2 Duvidas On-Line 53

4.13 Requisitos de Licença 53

4.14 Informações para Suporte 53

4.15 Gerenciamentos de Mudanças de Requisitos 53

4.16 Análise de Risco 54

5. Relatório de Atividades 55

5.1 Gráfico de Gantt 55

6. Relação dos Componentes 57

7. Apresentação das Interfaces do Usuário 68

Conclusão 76

Referências Bibliográficas 77

Anexo I 79

Anexo II 113

Page 16: Carlos Henrique Pereira [monografia]

16

1. Tema

Desenvolvimento de um Software para Atendimento Bancário.

1.1 Introdução

Com o avanço da tecnologia da informação, observa-se a necessidade de pensar e

analisar o mercado de trabalho, buscando a geração de oportunidades para a inovadora

geração da qual que fazemos parte, de modo que seja possível desenvolver métodos mais

rápidos para o auxilio da vida quotidiana, uma vez que a tecnologia da informação avança,

nesse cenário globalizado, criam novas estruturas para serem analisadas e estudadas com a

finalidade de reformulação e entendimento. Pensando dessa forma para melhor atender o

mercado de trabalho e não deixar de ressaltar a necessidade da realidade da qual fazemos

parte, dessa forma observa-se um recorte ou delimitação em realizar um projeto que pudesse

gerenciar filas por senha para que assim através da informática e o avanço tecnológico

gerasse melhor satisfação para as futuras pessoas que utilizarão.

O SOFTWARE PARA ATENDIMENTO BANCÁRIO é parte integrante da

estratégia que visa garantir a qualidade na realização dos atendimentos, a agilidade nos

serviços prestados e o alto nível de satisfação do cidadão. No mundo atual podemos provar

que nesse cenário globalizado não podemos ficar parado diante da realidade.

Assim a presente pesquisa busca, por meios de processos informatizados através das

tecnologias presentes o desenvolvimento do software. O sistema permite organizar as filas

de atendimento, gerir as demandas com o correto dimensionamento e alocação dos recursos

materiais e humanos para o atendimento e prestação dos serviços, propiciando a rapidez e

eficiência nos serviços públicos prestados e garantindo a satisfação do cidadão.

Ademais, se parar para analisar e refletir sobre o tema poderá facilmente entender as

razões pela qual pretendemos realizar a pesquisa. As expectativas quanto ao

desenvolvimento é grande e é fundamental ter uma visão global das estruturas o dos índices

que serão alcançados. Pensando mais em longo prazo e com objetivo organizacional é viável

a expansão e a necessidade de renovação no mercado, assim estabelecendo níveis de fluxos

de informação podemos atingir grande parte das necessidades podendo chegar a excelência

nos atendimentos.

Page 17: Carlos Henrique Pereira [monografia]

17

1.2 Problema

O problema principal é conseguir facilitar o atendimento e garantir um melhor

atendimento aos clientes.

1.3 Hipóteses

Com a nova configuração de mundo globalizado, o tempo passou a ser um elemento

imprescindível para a vida das pessoas. Dessa forma, seria possível projetar um software que

desse conta de poupar tempo e dar maior tranquilidade e conforto para o público desse

segmento.

1.4 Justificativa

Com o avanço da tecnologia da informação surgem cada vez mais necessidades e

com elas novas perturbações. Dentro desse crescimento em tempo real o melhor a fazer é

tentar realizar com a melhor qualidade e empenho a busca da satisfação dos cidadãos,

demonstrando através da programação de computadores e olhando com mais cuidado o que

se passa diante de nossos olhos diante desse cenário globalizado o meu tema justifica-se pela

falta frequente de comprometimento com os clientes que não podem ficar mais de 15

minutos para o atendimento bancário.

1.5 Objetivos

1.5.1 Objetivo Geral

Desenvolver um software capaz de controlar filas através de senhas, com o intuito de

gerar melhor atendimento nos setores públicos e privados.

1.5.1 Objetivos Específicos

Page 18: Carlos Henrique Pereira [monografia]

18

Criar um ambiente de fácil utilização para o usuário final, a ponto que realiza tarefas

de modo mais rápido e eficaz;

Combinar diversos meios de comunicação com os clientes, tais como painel

eletrônico com informações atualizadas do que está acontecendo no mundo todo;

Reduzir gastos, a fim de possibilitar maiores possibilidades a adquirir o sistema pelo

baixo custo;

Permitir que o sistema de banco de dados armazene e gere relatórios sobre os dados

cadastrados em sua base;

Verificar novas possibilidades de atendimento e;

Transmitir maior segurança.

1.6 Metodologia

Para o que o projeto fosse desenvolvido foram feitas pesquisas em diversos sites e

livros para obter um maior embasamento na área tendo em base; análise de sistemas,

linguagem de programação e algoritmo.

O sistema será desenvolvido em linguagem VB .NET utilizando o banco de dados

em SQL, modelos de diagramas utilizados são: diagramas de fluxo de dados, diagramas de

caso de uso, dicionário de dados e diagramas de classes.

Com respeito ao material utilizado foi um microcomputador.

Page 19: Carlos Henrique Pereira [monografia]

19

2. Marco Teórico

Nesta sessão do capítulo será visto os conceitos relevantes ao desenvolvimento do

software.

2.1 Histórico Da Linguagem De Programação

De acordo com JÚNIOR (2009), Desde o aparecimento dos primeiros computadores

que ficou claro que seria necessário encontrar um método padronizado para melhor

expressar as instruções que deveriam ser dadas à máquina. Um conjunto de regras sintáticas

e semânticas que permitissem definir um programa, passível de ser interpretado pela

máquina da forma mais eficiente.

A linguagem de programação se deu inicio na década de 50, com isso ficou claro que

de alguma forma poderia criar linhas de códigos através dos comandos a fim de controlar

máquinas. Vale ressaltar que antes do desenvolvimento das linguagens de programação de

alto nível as máquinas (computadores) eram controladas por uma linguagem de baixo nível

que se caracteriza linguagem de máquina ou como preferir (Assembly), nenhuma outra

linguagem se equipara a Assembly porque é a única mais próxima da máquina, inclusive

muitos programas desenvolvidos ainda utilizam a linguagem de máquina, por ter como

característica a rapidez de compilação das rotinas criadas.

No momento em que o homem sentiu maiores necessidades de controlar as

máquinas, observou-se o desenvolvimento de linguagens de alto nível, como foi mencionada

logo acima que para tal forma gerasse um melhor aproveitamento, produtividade, rapidez,

dentre outros fatores. Temos que ter em mente que a linguagem de programação se

configura a partir de códigos (instruções) passados para o computador que assim pudesse

armazenar e gerar determinada informação para o usuário final.

Quando falamos de linguagem de programação, temos dois conceitos muitos

importantes a respeito, a saber: a sintaxe e a semântica, sob os quais deteremos a seguir.

2.1.1 Sintaxe

A sintaxe forma um conjunto de regras para construir os sistemas que serão

instalados nas máquinas (computadores). Ela está ligada diretamente com a escrita das

linhas de códigos e como esses irão se comportar quando executados diante de determinadas

Page 20: Carlos Henrique Pereira [monografia]

20

rotinas criadas, e quando falamos de sintaxe estamos referindo-nos ao que foi digitado

como: letras, números, caracteres especiais entre outros. Desta forma, podemos constatar

que a sintaxe é o que chamamos de alfabeto da linguagem de programação em si.

2.1.2 Semântica

Tratamos a semântica como a parte mais importante na elaboração de um sistema de

computador, porque é ela quem define, caracteriza a linguagem de programação. Podemos

expressar a semântica da seguinte forma: tal como uma rotina para gerar números

aleatoriamente pode ser criada de diferentes formas e é isso que caracteriza, ou seja, ter um

valor lógico e coerente não importando a linguagem utilizada para o desenvolvimento.

Dessa forma, ao se entender a sintaxe e semântica será mais confiável a escrita e a

forma de interpretação da máquina na hora de compilar as linhas de códigos seja mais

eficiente.

Com o passar dos anos, o incentivo aos avanços tecnológicos, assim como os

desenvolvimentos dos cenários econômicos, obrigaram a fazer diversas padronizações e

comunicação com um todo, assim as linguagens de programação evoluíram em termos

bastante significativos para o progresso, transmitindo maior produtividade, eficiência,

confiabilidade e principalmente rapidez, para que pudesse gerar uma interação entre o

homem e o computador.

2.2 Microsoft Corporation e a Linguagem Visual Basic .NET

De acordo com FRANKLIN (2002), a Microsoft sempre esteve na dianteira quando

se trata de ambientes avançados de desenvolvimento, e os desenvolvedores do Visual Basic

geralmente são os primeiros a experimentar suas inovações.

A empresa Microsoft iniciou-se como uma nova empresa na década de 70 com a

criação da linguagem de programação BASIC, onde gerou um grande sucesso e se tornou

muito popular para os desenvolvedores de softwares.

Segundo MACKENZIE & SHARKEY (2002), na verdade, o Visual Basic .Net

possui um numero real de versões, 7,.7 – só que ele não é muito usado. Da mesma maneira

como o Windows 2000 é na realidade a versão 5.0 do Windows NT, quando mais simples

ou assimilável é o nome, mas ele é usado. No entanto, não espere ouvir falar do Visual Basic

Page 21: Carlos Henrique Pereira [monografia]

21

7.0 com frequência; havia até uma penalidade em dinheiro dentro da Microsoft para quem se

referisse ao Windows 2000 como NT 5.0.

Visual Basic .NET é uma linguagem de programação desenvolvida pela Microsoft e,

no que diz a respeito à linguagem, ela é totalmente orientada a eventos e não como dizem

por aí que é totalmente orientada a objetos mas, vale ressaltar que o VB.NET também tem

suas características e trabalha com orientação a objetos. Nesse sentido, podemos classificar

os métodos da linguagem VB.NET, que tem impactos relacionados com a ideia de

classificar, organizar e abstrair coisas, a fim de se criar estruturas ou o que chamamos de

conjuntos de operações. Esse empenho em analisar diversos modos funcionais de dados

torna-se de fácil manuseio.

2.3 Conceitos Sobre Banco de Dados

Segue, logo abaixo, todas as especificações com relação aos conceitos sobre banco

de dados.

2.3.1 Banco de Dados SQL

Segundo MACHADO (2004), SQL significa Structured Query Language –

Linguagem Estruturada de Pesquisa, de grande utilização, teve seus fundamentos no modelo

relacional de Codd (1970). Sua primeira versão recebeu o nome de SEQUEL (Structured

English Query Language), definida por D.D. Chamberlim, entre outros, em 1974, nos

laboratórios de pesquisa da IBM (Califórnia).

A evolução contínua e rápida sempre teve a necessidade de se desenvolver e construir

sistemas capazes de gerar informações fáceis e seguras. Pensando assim, evoluímos com o

intuído de armazenar informações onde fosse possível a manipulação através de comandos

enviados para o computador e assim deu-se ao nascimento do banco de dados onde,

podemos realizar diversas consultas e gerencia-los da maneira que for mais conveniente para

a utilização. Dentre esses conceitos podemos encontrar algumas características principais

com relação ao banco de dados, tais como:

Incluir Registros;

Alterar Registros;

Page 22: Carlos Henrique Pereira [monografia]

22

Excluir Registros;

Consultar Registros existentes nas tabelas.

Bancos de dados imensos exigem uma estrutura bastante sólida. Os

programadores podem usar aplicações Visual Database Tools que vem com SQL

Server para criar um esquema de aplicação apropriado, que leve em consideração o

tipo de dados, o local do servidor e os padrões de utilização. Os programadores

também precisam entender como normalizar e “desnormalizar” a estrutura visando

ao desempenha. (OHATA; HAYNIE; NIELSEN, 1999, p.15).

Contudo, o bando de dados trata-se de um conjunto de informações organizadas e

guardadas de forma segura e de fácil manipulação, onde podem ser realizados acessos nos

dados contidos no mesmo.

2.3.2 Banco de Dados em Access

De acordo com o livro TREINAMENTO RÁPIDO EM MICROSOFT ACCESS 97

(1988), um banco de dados é uma coleção de dados estruturados. Como a distribuição dos

dados é previsível, podemos manipular os itens para extrair informações úteis. O

componente mais básico de um banco de dados Access é uma tabela na qual estão as

informações ordenadas em linhas e colunas.

O banco de dados Access é um banco de dados gratuito, ou seja, não é necessário

pagar nada para usá-lo em aplicações (Softwares) para armazenamento de dados.

2.3.3 SGBD

SGBD ou Sistemas Gerenciadores de Banco de Dados são programas com objetivos

de criar base de dados um exemplo de programa é o SQL como mencionado na seção 2.3.1.

Page 23: Carlos Henrique Pereira [monografia]

23

3. Desenvolvimento

3.1 Definições do Problema

O Sistema Atual apresenta vários problemas, tais como:

Alto custo de contrato de manutenção;

Alto custo de aquisição para novas licenças;

Alto custo de implantação e treinamento;

Dependência do fornecedor para qualquer pequena alteração, tal como a inclusão de

uma nova fila;

Descentralização de informações, acarretando na impossibilidade de consulta à

informação de forma centralizada e na necessidade de servidores de aplicação;

Falta de dados estatísticos de atendimentos;

Dificuldade de utilização, devido à necessidade dos atendentes em decorar códigos

para o registro de serviços, afetando a produtividade do atendimento e causando

erros nas codificações.

Diante do exposto, analisamos e criamos um novo projeto a ser implantado. No item a

seguir veremos a idéia do projeto.

3.2. Estudo de viabilidade

Segundo DAVES (1994), estudo de viabilidade tem como finalidade determinar se

há uma solução viável; caso não haja, qualquer tempo, esforço ou dinheiro gasto no projeto

é um desperdício. Nessa ordem de ideias, expõe-se que:

Uma vez identificado o escopo (com a concordância do cliente), é razoável

perguntar: “Podemos construir um software para satisfazer esse escopo? O projeto é

exequível?” Frequentemente, os engenheiros passam por cima dessas questões (ou

são pressionados para desconsiderá-las por gerentes ou clientes pacientes), para ficar

envolvidos apenas num projeto que está condenado desde o início. (PRESSMAN,

2002, p. 111)

Há diversas maneiras de determinar a viabilidade econômica de um projeto, dentre as

quais destacamos a análise de custo-benefício. O principal benefício que temos que ter em

mente é a garantia de melhora dos serviços prestados à população. Além disso, um melhor

aproveitamento dos recursos também deve ser levado em conta.

Page 24: Carlos Henrique Pereira [monografia]

24

Nesta seção iremos expor qual é o benefício real obtido com a alternativa e também

analisaremos em quanto tempo o custo atual associado poderá ser recuperado.

3.2.1 Custos envolvidos

Custo com desenvolvimento:

Salário dos desenvolvedores;

Treinamento em novas tecnologias;

Aquisição de ferramentas de software, para auxiliar no desenvolvimento;

Computadores;

Energia elétrica;

Material de escritório.

Custo com implantação e instalações;

Treinamento de pessoal;

Compra de servidores e equipamentos de rede;

Salário dos técnicos para instalação do servidor e da rede.

Custos operacionais:

Manutenção;

Pessoal;

3.2.2 Investimentos

O investimento necessário para operacionalização deste projeto consiste na aquisição

de um servidor capaz de atender a demanda de transações via rede.

Tabela 01 - Investimento

Item Quantidade Valor Unitário (R$) Valor Atual (R$)

TV LCD 40 FULL HD 1 2.000,00 2.000,00

Servidor 1 2.000,00 2.000,00

Computador 2 1.000,00 2.000,00

Impressora 1 450,00 450,00

TOTAL - - 6.450,00

Fonte: Próprio autor

Page 25: Carlos Henrique Pereira [monografia]

25

3.2.3 Período de desenvolvimento

As despesas listadas logo abaixo referem-se ao período de desenvolvimento do

software, com base em despesas fixas mensais.

Tabela 02 – Despesas Fixas Mensais

Item Quantidade Valor Unitário (R$) Valor Atual (R$)

Salário Programadores 4 1.500,00 6.000,00

Salário Designer 1 1.000,00 1.000,00

Salário Analista de Sistemas 1 1.800,00 1.800,00

Energia - 200,00 200,00

Telefone - 100,00 100,00

Material de Escritório - 50,00 50,00

Banda Larga - 100,00 100,00

TOTAL - - 9.250,00

Fonte: Próprio Autor

No cálculo a seguir, incluiremos no preço do computador os custos de obtenção e

licenciamento dos softwares a serem usados no projeto.

Tabela 03 – Licenciamentos do Software

Item Quantidade Valor Unitário (R$) Valor Atual (R$)

Equipamentos - - 9.250,00

Sistema Operacional 1 400,00 400,00

Ferramenta de

desenvolvimento 1 500,00 500,00

Ferramenta de modelagem 1 1.000,00 1.000,00

TOTAL - - 11.150,00

Fonte: Próprio Autor

3.2.4 Custo total do período de desenvolvimento

Após analises realizadas com o período de desenvolvimento chegamos à seguinte

conclusão: o sistema pode ser concluído no período de três (3) meses, assim a lista logo

abaixo mostra a tabela dos meses e o total gerado para o desenvolvimento.

Page 26: Carlos Henrique Pereira [monografia]

26

Tabela 04 – Custo Total do Período de Desenvolvimento

Mês Valor Total (R$)

Primeiro Mês 9.250,00

Segundo Mês 9.250,00

Terceiro Mês 9.250,00

TOTAL 27.750,00

Fonte: Próprio Autor

3.2.5 Custos após o período de desenvolvimento

Os custos relativos a este período compreendem as despesas com treinamento de

funcionários e a manutenção do sistema.

Tabela 05 – Custo Após o Período de Desenvolvimento

Item Valor (R$)

Treinamento (um mês) 400,00

Manutenção 300,00

Fonte: Próprio Autor

3.2.6 Custo Total

Abaixo, especificamos o custo total do sistema para um período de quatro anos.

Estimamos que um mês de treinamento, realizado no primeiro ano, será necessário para que

os funcionários se adaptem ao uso do programa. Consideramos, também, que no primeiro

ano a manutenção é coberta pela garantia, e que, a partir do segundo ano, seu custo é de

R$300,00 por mês.

Como especificado, confira na tabela abaixo:

Tabela 06 – Custo Total

Período Valor (R$)

1° ano 27.750,00

2° ano 3.600,00

3° ano 3.600,00

4° ano 3.600,00

TOTAL 38.550,00

Fonte: Próprio Autor

Page 27: Carlos Henrique Pereira [monografia]

27

3.2.6 Benefício

Como benefício intangível podemos citar: a melhora no atendimento dos clientes, a

diminuição do congestionamento das filas, a eficiência no fornecimento das informações e

organização das solicitações de serviços.

2.2.7 Conclusão

Um grande gerenciamento e economia de custo à empresa, além da possibilidade de

novos negócios, visto que poderá ser utilizado por qualquer Órgão no atendimento à

população. Visto dessa forma que o estudo de viabilidade está relacionado com o custo do

desenvolvimento e a manutenção de uma forma geral do software fica claro que de uma

forma ou outra para se manter no mercado atual é essencial investir para ter um retorno.

Carvalho (2001) define da seguinte forma:

A quantidade de tempo que se deve gastar com o estudo de viabilidade depende do

projeto. Por exemplo, é bastante razoável gastar um dia para avaliar as alternativas

para modificar o formato do relatório. Já para desenvolver um ovo sistema de

contabilidade, será necessário gastar semanas. O desenvolvimento de um novo

pacote que custará milhões de dólares com certeza pede um estudo mais apurado das

possíveis soluções e, portanto, pode levar messes ou até anos.

3.3 Soluções Proposta

Como solução proposta viso desenvolver um software capaz de controlar filas por

senhas, com o intuito de realizar chamadas através de senhas e, ainda, o software conterá

informações contidas em uma tela (Painel) de plasma ou LCD com informativos eletrônicos.

3.4 Dicionários de Dados

Dicionário de dados é uma lista que contém as características, definições lógicas para

os dados inseridos nas tabelas. Durante o desenvolvimento e a análise de fluxo é através do

dicionário de dados que nos proporciona melhores análises durante o planejamento e criação

de um sistema de computador. GANE & SARSON (2002) definem da seguinte forma:

O nome dicionário de dados adquire um significado mais amplo quando começamos

a incluir detalhes sobre processos que, estritamente falando, se referem a lógica e

não a dados. Talvez devesse ser realmente chamado de diretório de projeto. (p. 52)

Page 28: Carlos Henrique Pereira [monografia]

28

Logo abaixo estão inseridas as tabelas do dicionário de dados conforme suas

respectivas características.

Quadro 01 – Tabela de Usuário

TABELA USUARIO

Nome da

coluna

Descrição da coluna Data type Nulabilidade Constraint

Usuário Nome do usuário Varchar

(10)

Not null

Senha Senha do usuário Varchar

(10)

Not null

Tipo Tipo do usuário Char (1) Not null Fonte: Próprio Autor

A tabela usuário tem como objetivo dentro do sistema registar todos os usuários que

possivelmente irão utilizar o sistema.

Quadro 02 – Tabela Letreiro Digital

TABELA LETREIRO DIGITAL

Nome da

coluna

Descrição da coluna Data type Nulabilidade Constraint

Id_mensagem Código da

mensagem

Int Not null Chave primária e

alto incremento

Nome da

mensagem

Nome da mensagem Varchar

(255)

Not null

Fonte: Próprio Autor

A tabela letreiro digital tem como objetivo dentro do sistema armazenar todas as

informações apresentadas para os clientes no painel.

Quadro 03 – Tabela Atendimento

TABELA ATENDIMENTO

Nome da

coluna

Descrição da

coluna

Data type Nulabilidad

e

Constraint

Código

atendimento

Código do

atendimento

Int Not null Chave primária e

alto incremento

Código

atendente

Código do

atendente

Int Not null Chave estrangeira

referenciando a

tabela atendente

Número_Senh

a

Número da Senha Varchar (20) Not null

Data Data do

atendimento

Datetime Not null

Fonte: Próprio Autor

A tabela atendimento tem como objetivo dentro do sistema registrar todos os

atendimentos gerados durante todo o dia, como: data, hora, senhas, qual atendente realizou

determinada chamada.

Page 29: Carlos Henrique Pereira [monografia]

29

Quadro 04 – Tabela Atendente

TABELA ATENDENTE

Nome da

coluna

Descrição da coluna Data type Nulabilidade Constraint

Código

atendente

Código do atendente Int Not null Chave primária de

alto incremento

Nome Nome do atendente Varchar

(60)

Not null

Fonte: Próprio Autor

A tabela atendente tem como objetivo dentro do sistema registrar todos os atendentes

que utilizarão o sistema.

Quadro 05 – Tabela Senha

TABELA SENHA

Nome da coluna Descrição da

coluna

Data type Nulabilidade Constraint

Número Número da senha Int Not null Chave primária de

alto incremento

Tipo_comum Tipo de senha

comum

Varchar (1) Not null

Tipo_preferencial Tipo de senha

preferencial

Varchar de

(1)

Not null

Fonte: Próprio Autor

A tabela senha tem como objetivo dentro do sistema de gerar novas senhas para

retirada de uma nova chamda e armazenar qual senha foi gerada pelo sistema.

Quadro 06 – Tabela Mesa

TABELA MESA

Nome da coluna Descrição da

coluna

Data type Nulabilidade Constraint

Código mesa código da mesa Int Not null Chave primária e

estrangeira

fazendo

referencia coma

tabela atendente e

com alto

incremento

Numero_atendente Número do

Atendente

int Not null

Fonte: Próprio Autor

A tabela mesa tem como objetivo dentro do sistema gerenciar as quantidades mesas

que o sistema irá conter para o seu funcionamento.

Page 30: Carlos Henrique Pereira [monografia]

30

3.5 Diagramas de Fluxos de Dados

Basicamente o diagrama de fluxo de dados serve para elaborar como será feito os

processos realizados dentro do sistema, sendo o mesmo não uma estrutura lógica e

independente, pois:

O diagrama de fluxo de dados é um modelo lógico do sistema. O modelo não

depende do hardware, do software, da estrutura de dados, ou da organização do

arquivo; não há nenhuma implicação física no diagrama de fluxo de dados. (DAVIS,

1994, p. 256).

De acordo com Gane & Sarson (2002), o fluxo de dados é simbolizado por meio de

uma seta, de preferência horizontal e/ou vertical, com a ponta indicando a direção do fluxo.

Figura 01 – DFD Login dos Usuários

Fonte: Próprio Autor

Page 31: Carlos Henrique Pereira [monografia]

31

Quando o usuário tentar acessar ao software será pedido para o mesmo que entre

com o nome e senha para ser validado, caso o usuário informar nome e senha incorretos será

mostrado na tela uma mensagem de erro informando que não conferem o registro e por fim

se o usuário informar nome e senha corretos o mesmo será direcionado para o menu

principal do software contendo acesso a quase todas as funções do software.

Figura 02 – DFD Cadastro de Usuários

Fonte: Próprio Autor

Quando houver a necessidade de cadastrar novos usuários para a utilização do

software somente o administrador terá essa prioridade, sendo que o para realizar o cadastro o

administrador terá que informar nome e senha de usuário para realizar uma validação para

verificar se está corretamente preenchidos os campos, caso os dados estiverem corretos os

Page 32: Carlos Henrique Pereira [monografia]

32

dados do usuário será armazenado na TB_Usuarios e caso não estiverem corretos será

enviada uma mensagem de erro para o administrador informando qual erro que aconteceu.

Figura 03 – DFD Cadastro de Mesas

Fonte: Próprio Autor

Quando houver a necessidade de cadastrar mais mesas (Guichê) para obter melhores

atendimentos o somente o administrador terá prioridade no software sendo que para realizar

o cadastro da mesa o mesmo deve informar os dados da mesa e em caso de informações

invalidas será enviada uma mensagem de erro senão será armazenada na tabela TB_Mesas.

Page 33: Carlos Henrique Pereira [monografia]

33

Figura 04 – DFD Alteração de Senha

Fonte: Próprio Autor

De tempo em tempo haverá a necessidade de alteração de senhas dos usuários e para

isso o mesmo deve informar o nome e senha para que sejam validados conforme feito isso

deverá informar a nova senha e repetir novamente a nova senha para que haja maior

segurança e em caso de informações invalidas dos usuários será enviada uma mensagem de

erro para o mesmo senão será armazenada a nova senha na TB_Usuarios.

Page 34: Carlos Henrique Pereira [monografia]

34

Figura 05 – DFD Cadastro de Atendente

Fonte: Próprio Autor

Ao cadastrar um novo atendente do software o mesmo, somente o administrador terá

prioridade sendo que o mesmo deve se atentar quanto ao cadastro dos usuários pelo fato que

os atendentes serão os usuários do software e em caso de dados inválidos será enviada uma

mensagem de erro senão será armazenado na TB_Atendente.

Page 35: Carlos Henrique Pereira [monografia]

35

Figura 06 – DFD Cadastro de Mensagens

Fonte: Próprio Autor

Quando os usuários do software perceber que a necessidade de cadastrar novas

mensagens para que seja exibida para os clientes o mesmo terá que informar os dados

corretamente para que possa ser validados e em caso de dados inválidos será enviada uma

mensagem de erro para o usuário senão armazena na TB_Mensagem.

Page 36: Carlos Henrique Pereira [monografia]

36

Figura 07 – DFD Acesso ao Guichê

Fonte: Próprio Autor

Quando um atendente for iniciar o atendimento do dia o mesmo terá que informar

seus dados cadastrais para que seja validado e em caso de dados inválidos será enviada uma

mensagem de erro senão o mesmo terá acesso ao guichê.

Page 37: Carlos Henrique Pereira [monografia]

37

Figura 08 – DFD Cadastro de Mensagens Manualmente

Fonte: Próprio Autor

Quando houver a necessidade de cadastrar um atendimento manualmente, somente o

administrador terá prioridade de realizar esse tipo de tarefa no software, sendo o mesmo terá

que informar os dados para armazenamento para ser validados e em caso de erro nas

informações dos dados será enviada uma mensagem de erro para o administrador senão os

dados informados serão armazenados na TB_Atendimento.

Todo e qualquer processo, tanto administrativo quanto operacional, tem um

fluxo das operações de entrada, processamento e saída. Esse fluxo envolve,

além dessas operações, as áreas da organização envolvidas, os recursos

humanos e matérias, os custos relativos a esses recursos, o volume de

trabalho, os tempos de execução, a documentação que tramita pelo mesmo

e a tecnologia de informação utilizada. (D’ASCENÇÃO, 2001, p. 109)

Page 38: Carlos Henrique Pereira [monografia]

38

3.6 Diagramas de Casos de Uso

Diagramas de caso de uso têm objetivo de conciliar as funções que cada usuário terá

no software, ou seja, designar as funções por privilégios. Dessa forma fica fácil para o

analista e para o cliente que está solicitando o desenvolvimento do mesmo.

Observe logo abaixo um exemplo de como seria um diagrama de classe.

Figura 09 – Caso de Uso de Clínica Médica

Fonte: Disponível em:

http://www.dsc.ufcg.edu.br/~sampaio/cursos/2007.1/Graduacao/SIII/Uml/diagramas/usecases/usecases.htm.

Acesso em: 20/09/2011

Como vimos no exemplo acima o diagrama de caso de uso é essencial entre o cliente

e o analista, para que assim posso se obter melhores entendimentos na hora do

desenvolvimento. Agora confira nas ilustrações abaixo como ficou o diagrama de caso de

uso do software de Atendimento Bancário.

Page 39: Carlos Henrique Pereira [monografia]

39

Figura 10 - UML Funções dos Usuários 1

Fonte: Próprio Autor

Figura 11 - UML Funções dos Usuários 2

Fonte: Próprio Autor

Page 40: Carlos Henrique Pereira [monografia]

40

Figura 12 - UML Funções dos Usuários 3

Fonte: Próprio Autor

Figura 13 - UML Funções do Administrador 1

Fonte: Próprio Autor

Page 41: Carlos Henrique Pereira [monografia]

41

Figura 14 - UML Funções do Administrador 2

Fonte: Próprio Autor

3.7 Entidade Relacionamento

De acordo com Machado (2004), o modelo Entidade-Relacionamento (ER) foi

definido por Peter Pin-Shan Chen, em 1976, e baseia-se na percepção do mundo real como

constituído por um conjunto de objetos básicos chamados entidades e relacionamentos e

define uma técnica de diagramação para modelos de dados, o diagrama de entidade e

relacionamento. (CHEN, 1976 apud MACHADO, 2004, p. 67).

Page 42: Carlos Henrique Pereira [monografia]

42

Figura 15 – Diagrama de ER

Fonte: Próprio Autor

Figura 16 – Consultas SQL

Fonte: Próprio Autor

Page 43: Carlos Henrique Pereira [monografia]

43

3.8 Diagrama de Classes

Basicamente diagrama de classes está relacionado à estrutura do sistema de uma

forma geral, onde por sua vez podemos identificar todos os objetos que existem no

desenvolvimento do software a fim de obter melhores formas de análise.

Figura 17 – Diagrama de Classe

Fonte: Próprio Autor

Page 44: Carlos Henrique Pereira [monografia]

44

4. Software para Atendimento Bancário

4.1 Do que se Trata o Software

É um software que controla filas por senhas, consiste de um conjunto de informações

que quando operadas funcionam de modo que facilite a organização do atendimento, com

capacidade de medir o desempenho dos atendimentos e a capacidade de medir o nível de

satisfação de determinadas situações.

O software ainda pode informatizar o atendente para que ele possa saber quantas

vezes um determinado cliente foi atendimento, saber o tempo médio de espera do

atendimento, cadastrar os clientes, informatizar os serviços e imprimir fichas sequenciais de

chegada para determinados clientes tais como clientes preferenciais e clientes não

preferenciais.

O software que controla painel virtual tem como finalidade representar o estado

atual das filas, pode apresentar mensagens, últimas fichas atendidas, publicidade da empresa

e etc.

4.2 Qual a sua Finalidade

Este software de atendimento de senhas por fila visa informatizar o controle para

diversas filas, sendo o sistema de atendimento um controle estatístico baseado em

atendimento eletrônico.

Obviamente utilizam um painel eletrônico e um dispensador controlado por um

atendente que ao disparar o comando emite um ticket com senha, data, horário, nome da

empresa e o nome da fila selecionada ao cliente. Assim favorecendo a organização dos

atendimentos onde se encontra várias filas de espera.

4.3 Funcionamento do Software

Basicamente, o cliente ao chegar ao estabelecimento que contém um desse Software

de Atendimento será fornecido a ele uma senha no dispensador, onde por sua vez é o que

corresponde ao emissor de senhas. Após o recebimento de sua senha o cliente aguarda o seu

chamado no painel eletrônico.

Page 45: Carlos Henrique Pereira [monografia]

45

O software utilizado é operado pelos atendentes da empresa dispõe-se de um

software que permite realizar a chamada do próximo cliente em espera. O software ainda

exibe para o atendente qual a senha a ser atendida e permite que ele registre se o

atendimento foi prestando ou se houve desistência. No caso de priorização ou re-chamada do

atendimento para os clientes preferenciais será sempre possível à intervenção do operador

para emitir senhas específicas para determinadas circunstâncias.

Por fim a cada realização feita pelo software será feita uma alteração no painel que

por sua vez emitirá um sinal sonoro ou tendo a opção de chamada por um sinal de voz.

4.4 Aplicação do Software de Atendimento

Claramente, esse tipo de sistemas pode ser aplicado em todas as empresas que

desejam adquirir e segmentar esse tipo de atendimento na recepção dos seus clientes, no

atendimento preferencial e cumprir as leis de espera (Lei da Fila), ou pode simplesmente

optar em agilizar a prestação de serviços com guichê exclusivo para o atendimento dos seus

clientes.

4.5 Ciclos de Vida e o Software de Atendimento

O software será desenvolvido seguindo o modelo cascata, ou seja, o software será

desenvolvido por completo e ao final será entregue e implantado na empresa solicitadora do

serviço. Segue, logo abaixo, alguns ciclos de vida onde por sua vez são utilizados no

desenvolvimento de softwares.

Modelo Constrói e Conserta (Caótico): O modelo constrói e conserta é utilizado

geralmente para pequenas empresas, onde não é necessário muito planejamento para o

desenvolvimento. Dessa forma quando se inicia o projeto utilizando este modelo, todos os

processos são construídos e apresentados para o cliente quantas vezes forem necessários até

a aceitação do mesmo.

Modelo Cascata: O modelo cascata é uma sequência que onde por sua vez o projeto é

todo desenvolvido e entrega para o cliente final. Este modelo não é muito utilizado

atualmente no processo de desenvolvimento, mas, em certos projetos não há como utilizar

outro tipo de ciclo de vida como, por exemplo, o modelo espiral onde, por sua vez é o mais

utilizado e recomendado para o desenvolvimento de projetos.

Page 46: Carlos Henrique Pereira [monografia]

46

Modelo Espiral: O modelo espiral segue uma sequência onde o projeto de software é

divido em módulos que por sua vez é desenvolvido em partes. Assim a cada módulo que é

feito o analista entra em contato com o cliente para apresentar o mesmo feito.

No desenvolvimento do software em espiral segue algumas características que são de

suma importância a se seguir, como são mostrados logo abaixo:

Comunicação com o cliente;

Planejamento;

Análise de risco;

Engenharia;

Construção e liberação;

Avaliação do cliente.

4.6 Elicitação de requisitos

Segue logo abaixo todas as especificações com relação à Elicitação de Requisitos.

4.6.1 Motivação

O principal motivo para o desenvolvimento do software se deu após observarmos o

quanto é ruim ficar em filas de espera para ser atendimento e esperamos que através da

tecnologia existente em nosso cenário globalizado possamos realizar nosso objetivo.

4.6.2 Visão da Solução

Gerenciar e Organizar as empresas mantenedoras do software visando à satisfação

dos clientes e tudo isso voltado para uma melhor aparência no mercado competitivo.

4.6.3 Escopo da Solução

Nessa seção serão descritas as principais necessidades para o software a ser

desenvolvido.

Page 47: Carlos Henrique Pereira [monografia]

47

Quadro 07 – Necessidades do Software

Necessidades Categoria

1. O software deve apresentar interface intuitiva. Essencial

2. O software deve ter área para login. Essencial

3. O software deve apresentar disponibilidade de ajuda off-line. Desejável

4. O software deve apresentar restrição de usuário. Essencial

5. O software deve gerenciar um painel para informações. Essencial

6. O software deve apresentar suporte padrão de solução. Importante

7. O software deve conter o registro do mesmo. Importante

8. O software deve apresentar relatórios diários. Essencial

9. O software deve apresentar tela de inicialização. Desejável

10. O software deve apresentar o que ramo a empresa atua. Essencial

Fonte: Próprio Autor

Essencial: Características essenciais. Falha em sua implementação significa não

satisfazer o usuário. Têm que ser implementadas.

Importante: Esta característica tem que ser implementadas. No entanto, a entrega não

será atrasada pela falta de uma característica importante.

Desejável: São úteis em aplicações pouco típicas, ou de uso pouco frequente. Não se

espera um impacto muito grande na satisfação do cliente pela sua implementação.

4.6.4 Limites e Restrições da Solução

O software tem como limites que não terá como usar um uma página Web e usuários

terão restrições com relação a algumas funções dentro do sistema sendo reservados somente

para o administrador.

4.6.5 Análise e Negociação de Requisitos

Declaração do Escopo.

4.6.5.1 Critérios de Aceitação do Produto do Projeto

Page 48: Carlos Henrique Pereira [monografia]

48

O software não será desenvolvido de forma prototipada, ou seja, não será entregue

em partes, sendo assim o desenvolvimento do mesmo será realizada em um todo e entregue

completo.

4.6.5.2 Requisitos de Aprovação

Levantamento de Requisitos;

Ata de reunião com aceite;

Documento de Aprovação conforme reuniões quinzenais com o cliente.

4.6.5.3 Entrega do Projeto

Termo de aceite;

Documentação;

Manual de Usuário.

4.6.5.4 Riscos Iniciais Identificados

Os riscos identificados no início do projeto são:

Não cumprimento do prazo para entrega dos módulos e/ou projeto;

Ultrapassar custo definido para concepção do projeto;

Alterações no escopo do projeto no decorrer de sua concepção por mudanças na

Reitoria ou Pró-Reitoria.

4.6.5.5 Premissas

A entrega será ocorrida em seis meses juntamente com sua documentação. Caso não

seja entregue no prazo poderá ocasionar atraso no projeto, aumento de custo e insatisfação

do cliente. Cada parte entregue sem a incidência de erro, testado e aprovado.

Caso não seja entregue sem erro, ocasionará retrabalho podendo incidir em aumento

de custo e atraso na entrega dos próximos módulos.

Page 49: Carlos Henrique Pereira [monografia]

49

4.7 Especificações de Requisitos de Software

Segue, logo abaixo, todas as especificações.

4.7.1 Propósito

O propósito deste documento é especificar os requisitos do Software para

Atendimento Bancário, de tal forma a fornecer informações relevantes ao desenvolvimento

de projetos.

4.7.2 Escopo

O escopo deste projeto descreve etapas, recursos disponíveis, como o software será

desenvolvido.

4.8 Identificação e Localização do Documento

Segue logo abaixo como será realizada a Identificação e Localização do Documento.

4.8.1 Organização do Documento

Além desta seção introdutória, as seções seguintes estão organizadas como descrito

abaixo.

Descrição geral do software: apresenta uma visão geral do sistema, caracterizando

qual é o seu escopo e descrevendo seus usuários.

Requisitos Funcionais (casos de uso): especifica todos os casos de uso do sistema,

ver seção 2.5, descrevendo os fluxos de eventos, prioridades, atores, entradas e saídas

de cada caso de uso a ser implementado.

Page 50: Carlos Henrique Pereira [monografia]

50

Requisitos Não-Funcionais: especifica todos os requisitos não funcionais do sistema,

divididos em requisitos de usabilidade, confiabilidade, desempenho, segurança,

distribuição, adequação a padrões e requisitos de hardware e software.

4.8.2 Descrição Geral do Software

Como mencionado na seção 4.6.5.4 segue na seção 4.8.2 e 4.8.3 os conceitos sobre

os requisitos Funcionais e Não-Funcionais.

4.8.3 Requisitos Funcionais

Os requisitos funcionais referem-se aos requisitos que estão relacionados com a

maneira com que o sistema deve operar, onde se especificam as entradas e saídas do sistema

e o relacionamento comportamental entre elas, assim como a iteração com o usuário.

4.8.4 Requisitos Não-Funcionais

A operação do software deve ser de fácil utilização. Geralmente existem pessoas que

não dominam a informática muito bem, esses poderão ser usuários (leigos) e cliente que

posteriormente utilizarão o mesmo para retirada de senhas.

4.9 Visões Gerais do Software

Segue, logo abaixo, todas as visões gerais do software.

4.9.1 Características dos Usuários

Como característica dos usuários define que pelo menos para a utilização do sistema

o mesmo deve ter conhecimentos básicos de informática, sendo assim mais fácil a sua

adaptação ao software.

4.9.2 Restrições

Page 51: Carlos Henrique Pereira [monografia]

51

Para que não haja maiores problemas na utilização do software as restrições serão

definidas como “COMUM e ADMINISTRADOR”, os usuários serão cadastrados como

“COMUM”, ou seja, os usuários não terão os mesmo privilégios que os administradores do

software de tal forma a ficar mais organizado.

4.10 Chamadas

Segue, logo abaixo, todas as especificações das chamadas.

4.10.1 Requisitos Funcionais

Crie Informações

Descrição do caso de uso: Este caso de uso permite que o usuário crie e armazene um

novo componente no sistema.

Prioridade: (X) Essencial ( )Importante ( )Desejável

Entradas e pré-condições: não tem.

Saídas e pós-condição: um componente é cadastrado no sistema

Excluir Determinada Informação

Descrição do caso de uso: Este caso de uso permite que o usuário exclua um

componente do cadastro de componentes do sistema. Um componente pode ser

excluído.

Prioridade: (X) Essencial ( )Importante ( )Desejável

Entradas e pré-condições: recebe como entrada o componente que se deseja excluir

Saídas e pós-condição: o usuário consegue excluir o componente que deseja

Alterar Informações

Descrição do caso de uso: Este caso de uso permite que o usuário altere os dados de

um componente.

Prioridade: (X) Essencial ( )Importante ( )Desejável

Entradas e pré-condições: recebe como entrada o componente que se deseja alterar.

Saídas e pós-condição: um componente é alterado no sistema.

Page 52: Carlos Henrique Pereira [monografia]

52

Visualizar Informações

Descrição do caso de uso: Este caso de uso permite que o usuário visualize os dados

de um determinado componente.

Prioridade: ( ) Essencial (X)Importante ( )Desejável

Entradas e pré-condições: deve receber como entrada o componente que se deseja

visualizar.

Saídas e pós-condição: o usuário visualiza o componente desejado

4.10.2 Requisitos Não-Funcionais

Segue logo abaixo todas as especificações dos Requisitos Não-Funcionais do

Software.

4.10.2.1 Usabilidade

A interface com o usuário é de vital importância para o sucesso do sistema.

Principalmente por ser um sistema que será utilizado diariamente, o usuário não

possui tempo disponível para aprender como utilizar o sistema.

O sistema terá uma interface amigável ao usuário primário sem se tornar cansativa

aos usuários mais experientes. Em especial, o módulo de publicação HTML possuirá

um wizard para ajudar o usuário.

Prioridade: (X) Essencial ( )Importante ( )Desejável

4.10.2.2 Confiabilidade

O software terá total identificação dos registros, a fim de, garantir melhores

informações para o administrador.

4.10.2.3 Desempenho

Page 53: Carlos Henrique Pereira [monografia]

53

O software tem como desempenho para até designado como “Médio” sendo possível

a melhora do mesmo para que obtenha o Máximo. Tratamos o assunto de capacidade de

números de filas que o software irá suportar em primeira instancia será de três filas.

4.10.2.4 Reusabilidade

Nesse caso irá reutilizar rotinas prontas (bibliotecas) para o desenvolvimento do

software.

4.10.2.5 Segurança

Somente o administrador terá acesso a todos os módulos do software, dessa forma

evitando ricos de vazamentos de informações.

4.10.2.6 Acessibilidade

O software deve seguir normas de desenvolvimentos de projetos, que por sua vez,

implantados pela empresa desenvolvedora.

4.11 Requisitos de Interface

Segue, logo abaixo, todas as especificações de Requisitos de Interfaces.

4.11.1 Interfaces com Usuários

O software apresenta interfaces intuitivas e tem como características a facilidade de

uso, dessa forma gera uma melhor aparência hora da utilização.

4.11.2 Interfaces Hardware e Software

Page 54: Carlos Henrique Pereira [monografia]

54

As interfaces do software serão propriamente desenvolvidas pela empresa

desenvolvedora e tendo como plataforma para a instalação e utilização a plataforma

Windows.

4.11.3 Interfaces de Comunicação

O software terá interfaces de comunicações sendo elas: um painel para visualização

de senhas e informativos.

4.12 Requisitos de Documentação

Segue, logo abaixo, todas as especificações de Requisitos de Documentação.

4.12.1 Manual dos Usuários

O manual precisa ser uma referencia completa do software com o qual o usuário

possa aprender as funcionalidades, bem como os elementos de interface. O manual ainda

deve possibilitar que os usuários esclareçam as duvidas mais rápido possível (O mesmo deve

mais ser completo possível).

4.12.2 Dúvidas On-Line

Através da web site da empresa desenvolvedora poderá ser consultados duvidas ou

sugestões sobre o software desenvolvido.

4.13 Requisitos de Licença

O software deve ser assegurado às liberdades de uso, acesso ao código fonte,

distribuição e modificação.

4.14 Informações para Suporte

Page 55: Carlos Henrique Pereira [monografia]

55

Após a implantação do software a empresa desenvolvedora dará total suporte ao

mesmo em caso de futuros bugs (erros).

4.15 Gerenciamentos de Mudanças de Requisitos

O gerenciamento de mudanças de requisitos trata as seguintes etapas:

O cliente solicita uma mudança;

O Analista de Sistemas juntamente com o Gerente de Projeto analisarão tal

mudança e avaliarão o impacto da mesma no desenvolvimento;

O Gerente do Projeto juntamente com o cliente negociam a mudança

pretendida;

Como resultado dessa negociação ocorrerá ou não a mudança solicitada.

4.16 Análise de Risco

A análise dos riscos no desenvolvimento do software está ligada ao custo.

A estratégia para lidar com este risco é desenvolver opções para que se possa oferecer

um software mais enxuto e seguro.

5. Relatório de Atividades

Segue, logo abaixo, o relatório do cronograma realizado para o desenvolvimento do

software.

5.1 Gráfico de Gantt

Page 56: Carlos Henrique Pereira [monografia]

56

Figura 18 – Gráfico de Gantt (Informações do Software)

Fonte: Próprio Autor

Figura 19 – Gráfico de Gantt (Tempo de Realização)

Fonte: Próprio Autor

Page 57: Carlos Henrique Pereira [monografia]

57

Figura 20 – Gráfico de Gantt (Tarefas)

Fonte: Próprio Autor

Figura 21 – Gráfico de Gantt (Pessoas Envolvidas)

Fonte: Próprio Autor

Page 58: Carlos Henrique Pereira [monografia]

58

6. Relação dos Componentes

Aqui está o texto com a breve descrição do que seria relação dos componentes1.

Relação de componentes nada mais é do que todos os componentes que foram

utilizados para desenvolver o software. Dentre esses componentes podemos citar algumas

características, tais como:

Componente que permitem gravar os dados no banco de dados;

Componentes que permitem a visualização dos dados;

Componentes que permitem visualizar gráficos

Contudo, a utilização de componentes é muito útil e organizada, onde assim podem

ser usadas para obter melhor desempenho no desenvolvimento de um software.

__________________________

1 Vide Anexos – anexo II – Quadro de relação dos componentes. (p. 113)

Page 59: Carlos Henrique Pereira [monografia]

59

7. Apresentação das Interfaces do Usuário

Figura 22 - Tela Splash

Fonte: Próprio Autor

Tela Splash é a tela inicial do software, contêm informações da empresa e descrições

do mesmo.

Page 60: Carlos Henrique Pereira [monografia]

60

Figura 23 - Tela de Login

Fonte: Próprio Autor

Tela de Login onde por sua vez o usuário deverá informar o nome e senha para logar

no software.

Figura 24 - Tela de Menu Principal

Fonte: Próprio Autor

Tela de menu principal onde se encontra todas as funções do software, tais como:

estatísticas, adicionar novos usuários, utilitários entre outras funções.

Page 61: Carlos Henrique Pereira [monografia]

61

Figura 25 - Amostra da Tela de Senhas Comuns e Preferenciais

Fonte: Próprio Autor

Esta tela é uma amostra de como será realizada a chamada das senhas, se encontra no

menu principal junto com outras funções.

Figura 26 - Tela de Atendentes

Fonte: Próprio Autor

Tela de Atendente, esta tela tem como finalidade realizar a manutenção de todos os

atendentes que irá utilizar o software.

Page 62: Carlos Henrique Pereira [monografia]

62

Figura 27 - Tela de Manutenção de Atendimentos

Fonte: Próprio Autor

Tela de manutenção dos atendimentos, esta tela tem como finalidade realizar todas as

manutenções dos atendimentos, sendo, possível realizar alteração nos atendimentos como:

data, mesa, atendente entre outras funções.

Figura 28 - Tela de Manutenção de Mesas

Fonte: Próprio Autor

Tela de manutenção de mesas, esta tela tem como finalidade realizar a manutenção

de todas as mesas (guichês) do qual o software irá possuir.

Page 63: Carlos Henrique Pereira [monografia]

63

Figura 29 - Tela de Manutenção de Senhas

Fonte: Próprio Autor

Tela de manutenção de senhas, esta tela tem como finalidade a alteração de senhas

caso o usuário desejar modificar.

Figura 30 - Tela de Manutenção de Mensagens

Fonte: Próprio Autor

Tela de manutenção de mensagens, esta tela tem como finalidade enviar todas as

mensagens ao menu principal e ao painel onde será por sua vez o painel será visto pelos

clientes.

Page 64: Carlos Henrique Pereira [monografia]

64

Figura 31 - Tela do Painel de Atendimento

Fonte: Próprio Autor

Tela do painel de atendimentos, esta tela é umas das principais, pois irá controlar a

senhas, mesa e tipo de atendimento os clientes irão se direcionar. Ainda contendo as

mensagens em tempo real, data e hora.

Figura 32 - Tela de Lista de Usuários

Fonte: Próprio Autor

Tela onde poderá visualizar todos os usuários cadastros ativos do software.

Page 65: Carlos Henrique Pereira [monografia]

65

Figura 33 - Tela do Gráfico Demonstrativo dos Atendimentos

Fonte: Próprio Autor

Esta tela tem como finalidade mostrar um gráfico demonstrativo dos atendimentos

durantes os meses do ano.

Figura 34 - Tela de Cadastro de Usuários

Fonte: Próprio Autor

Tela de registro de usuários tem como objetivo cadastrar e realizar a manutenção de

todos os usuários que irão utilizar o software.

Page 66: Carlos Henrique Pereira [monografia]

66

Figura 35 - Tela de Sobre o Sistema

Fonte: Próprio Autor

Tela sobre o sistema tem como finalidade mostrar algumas informações relevantes

quanto ao software desenvolvido.

Figura 36 - Tela de Relatório dos Atendimentos

Fonte: Próprio Autor

Page 67: Carlos Henrique Pereira [monografia]

67

Tela de relatório dos atendimentos, essa tela tem grande importância para o

administrador do software, pois, é através dela que poderá visualizar todos os atendimentos

e gerar os relatórios.

Page 68: Carlos Henrique Pereira [monografia]

68

Conclusão

Conclui-se que, com o desenvolvimento deste projeto, foi possível adquirir novos

conhecimentos na área de programação e análise de sistemas. Diante disso, torna-se evidente

que a execução deste estudo foi de suma importância e muito gratificante não só pelo fato de

abranger novos conhecimentos, mas, também por ter propiciado uma visão mais ampla sobre

o mercado de trabalho e o que iremos enfrentar na contemporaneidade.

Page 69: Carlos Henrique Pereira [monografia]

69

Referências Bibliográficas

BEAL, Adriana. Gestão Estratégica da Informação – Editora Atlas, SP, 2004.

BOENTE, Alfredo – Construindo Algoritmos Computacionais: Lógica de programação.

Rio de Janeiro: LTC, 2003.

CARBONI, Irenice de Fátima. Lógica de Programação. São Paulo: Thomson, 2003.

DAVIS, Willian S. Análise e Projeto de Sistemas Abordagem Estruturadas. LTC, 2001.

DUNCAN, Mackenzie. SHARKEY, Kent. Aprenda Visual Basic .NET em 21 Dias;

tradução: Aldir José Coelho Corrêa da Silva; revisão técnica: Marcos Jorge. São Paulo:

Person Education do Brasil, 2003.

GANE, Chris. SARSON, Trish. Análise Estruturadas de Sistemas; tradução Gerry

Edward Tompkins; Revisão técnica: Cesar Gonçalves Neto. Rio de Janeiro: LTC – Livros

Técnicos e Científicos Editora S.A, 2002.

LAGES, Guimarães. Algoritmos e Estruturas de Dados. Rio de Janeiro: LTC, 1994.

JUNIOR, Benjamim, Linguagens de Programação – Resumo Histórico, 2007. Fonte

Disponível em: http://obviousmag.org/archives/2007/09/linguagens_de_p.html - Acessado

em 14/12/2011.

OHATA, Michael; HAYNIE, Bob; NIELSEN, Per Vonge. Microsoft SQL Server 7.0:

Manual Prático. Daniel Vieira. Rio de Janeiro: Campus, 1999.

PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais: Conceitos Aplicações.

Érica, 2001.

SALITA, Walter Luiz Caram – Técnicas de Programação: Uma abordagem estruturada.

São Paulo: Makron Books, 1992.

Page 70: Carlos Henrique Pereira [monografia]

70

SALVETTI, Dirce Douglas. BARBOSA, Lisbete Madsen. Algoritmos. São Paulo: Makron

Books, 2004.

STAREC, Cláudio (Org). Gestão Estratégica da Informação e Inteligência Competitiva

– Ed Saraiva, SP, 2005.

http://chasqueweb.ufrgs.br/~paul.fisher/apostilas/basdad/bd_mod_er.htm - Acesso em

28/09/2011.

Page 71: Carlos Henrique Pereira [monografia]

71

ANEXO I

frmSplash Public Class frmSplash Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.AxShockwaveFlash1.LoadMovie(0, "C:\SysBank\swf\banner.swf") End Sub Private Sub TimerCarrega_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerCarrega.Tick Try Me.pbButoes.Value += 2 If Me.pbButoes.Value = 80 Then Me.btnEntrar.Visible = True Me.Linklbl.Visible = True End If Catch ex As Exception End Try End Sub Private Sub TimerFlash2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerFlash2.Tick Try Me.pbFlash2.Value += 2 If Me.pbFlash2.Value = 2 Then Me.AxShockwaveFlash1.LoadMovie(0, "C:\SysBank\swf\main.swf") End If Catch ex As Exception End Try End Sub Private Sub EncerrarSistema() Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar a aplicação?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If sair = vbYes Then If TimeOfDay >= "6:00" And TimeOfDay <= "11:59" Then MessageBox.Show("Tenha um Boa Dia!", "Encerrando...") End Else If TimeOfDay >= "12:00" And TimeOfDay <= "17:59" Then MessageBox.Show("Tenha uma Boa Tarde!", "Encerrando...")

Page 72: Carlos Henrique Pereira [monografia]

72

End Else If TimeOfDay >= "18:00" And TimeOfDay <= "23:59" Then MessageBox.Show("Tenha uma Boa Noite!", "Encerrando...") End End If End If End If End If Catch ex As Exception End Try End Sub Private Sub Linklbl_LinkClicked_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles Linklbl.LinkClicked EncerrarSistema() End Sub Private Sub btnEntrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEntrar.Click Try Hide() frmLogin.Show() Catch ex As Exception End Try End Sub End Class

frmLogin Public Class frmLogin Dim SAPI Dim pergunta As String Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try Me.Opacity += 0.03 If Me.Opacity > 1 Then Me.Timer1.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerLogin.Tick Try Me.pbLogin.Value += 1 If Me.pbLogin.Value <= 30 Then Me.lblMensagem.Text = "Carregando Bando de Dados..." End If If Me.pbLogin.Value <= 60 Then Me.lblMensagem.Text = "Inicializando Sistema GSPF..." End If

Page 73: Carlos Henrique Pereira [monografia]

73

If Me.pbLogin.Value = 100 Then Me.lblMensagem.Text = "Concluído Sistema GSPF..." End If Catch End Try End Sub Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbUsuarios' table. You can move, or remove it, as needed. Me.TbUsuariosTableAdapter.Fill(Me.DbSysBankDataSet.tbUsuarios) Me.TimerLogin.Enabled = True Me.lblAutenticacao.ForeColor = Color.Black Me.lblAutenticacao.Text = "Verificando Conectividade GSPF..." End Sub Private Sub btnEntrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEntrar.Click Try Me.TbUsuariosTableAdapter.BuscaNomeUsers(Me.DbSysBankDataSet.tbUsuarios, Me.txtNome.Text) If Me.txtNome.Text = "" Or Me.txtSenha.Text = "" Then MsgBox("Campos vazios no formulário!", MsgBoxStyle.Critical, "Erro") Me.txtNome.Focus() Else If Me.txtNome.Text <> Me.NomeTextBox.Text And Me.txtSenha.Text <> Me.SenhaTextBox.Text Then MsgBox("Verifique se digitou corretamente NOME e SENHA!", MsgBoxStyle.Critical, "Erro") Me.ErrorProvider.SetError(Me.txtNome, "Nome Errado") Me.ErrorProvider.SetError(Me.txtSenha, "Senha Errado") Me.txtNome.Clear() Me.txtSenha.Clear() Me.txtNome.Focus() Else If Me.txtNome.Text <> Me.NomeTextBox.Text Then MsgBox("Nome Incorreto!", MsgBoxStyle.Critical, "Erro") Me.ErrorProvider.SetError(Me.txtNome, "Nome Errado") Me.txtNome.Clear() Me.txtNome.Focus() Else If Me.txtSenha.Text <> Me.SenhaTextBox.Text Then MsgBox("Senha Incorreta para o Nome! " & Me.txtNome.Text, MsgBoxStyle.Critical, "Erro") Me.ErrorProvider.SetError(Me.txtSenha, "Senha Errada") Me.txtSenha.Clear() Me.txtSenha.Focus() Else If Me.txtNome.Text = Me.NomeTextBox.Text And Me.txtSenha.Text = Me.SenhaTextBox.Text Then 'SAPI = CreateObject("sapi.spvoice") 'SAPI.speak("Verificando o nome " + Me.txtNome.Text) frmMenu.StatuslblCodigo.Text = Me.CodigoTextBox.Text frmMenu.StatuslblNome.Text = Me.txtNome.Text frmAlteraSenha.txtNome.Text = Me.NomeTextBox.Text If (Me.TipoComboBox.Text = "A") Then frmMenu.StatuslblTipo.Text = "Administrador"

Page 74: Carlos Henrique Pereira [monografia]

74

Else frmMenu.StatuslblTipo.Text = "Comum" frmMenu.GráficosToolStripMenuItem.Enabled = False frmMenu.RelatóriosDeAtenToolStripMenuItem.Enabled = False frmMenu.ListaDeUsuáriosToolStripMenuItem.Enabled = False frmMenu.UsuáriosToolStripMenuItem.Enabled = False frmMenu.AtendenteToolStripMenuItem.Enabled = False frmMenu.AtendimentosToolStripMenuItem.Enabled = False frmMenu.MesasToolStripMenuItem.Enabled = False frmMenu.btnAtendentes.Enabled = False frmMenu.btnUsuarios.Enabled = False frmMenu.btnMesas.Enabled = False frmMenu.btnAtendimentos.Enabled = False End If MsgBox("Olá " & Me.txtNome.Text & ", seja bem vindo e bom trabalho.", MsgBoxStyle.Information) Me.txtNome.Clear() Me.txtSenha.Clear() Hide() frmMenu.Show() End If End If End If End If End If Catch ex As Exception End Try End Sub Private Sub EncerrarSistema() Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar a aplicação?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If sair = vbYes Then If TimeOfDay >= "6:00" And TimeOfDay <= "11:59" Then MessageBox.Show("Tenha um Boa Dia!", "Encerrando...") End Else If TimeOfDay >= "12:00" And TimeOfDay <= "17:59" Then MessageBox.Show("Tenha uma Boa Tarde!", "Encerrando...") End Else If TimeOfDay >= "18:00" And TimeOfDay <= "23:59" Then MessageBox.Show("Tenha uma Boa Noite!", "Encerrando...") End End If End If End If End If Catch ex As Exception End Try End Sub

Page 75: Carlos Henrique Pereira [monografia]

75

Private Sub btnSair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSair.Click EncerrarSistema() End Sub End Class

frmMenu 'BIBLIOTECA ADICIONADA PARA QUE O VB POSSO FALAR 'Imports ACTIVEVOICEPROJECTLib Public Class frmMenu 'VARIAVEIS CRIADAS 'Dim voz As New DirectSS Dim SAPI Dim data As String Private Sub ÚsuariosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Try frmRegistroUser.ShowDialog() Catch ex As Exception End Try End Sub Private Sub BackupMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BackupMenuItem.Click Try frmBackUp.ShowDialog() Catch ex As Exception End Try End Sub Private Sub GráficosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GráficosToolStripMenuItem.Click Try frmGraficoAtend.ShowDialog() Catch ex As Exception End Try End Sub Private Sub PainelMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PainelMenu.Click Try frmPainel.Show() Catch ex As Exception End Try End Sub Private Sub btnAumenta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAumenta.Click Try timerMensagen.Interval = timerMensagen.Interval - 10 Catch End Try End Sub

Page 76: Carlos Henrique Pereira [monografia]

76

Private Sub btnDiminui_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDiminui.Click Try timerMensagen.Interval = timerMensagen.Interval + 10 Catch End Try End Sub Private Sub timerMensagen_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerMensagen.Tick Try Dim H As Integer H = lblMensagem.Location.X If H <= -1395 Then H = 886 End If H = H - 2 lblMensagem.Location = New System.Drawing.Point(H) Catch ex As Exception End Try End Sub Private Sub frmMenu_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar o programa? Todos os terminais serão fechados!", _ MsgBoxStyle.Question + MsgBoxStyle.YesNo) If sair = vbYes Then End ElseIf sair = vbNo Then e.Cancel = True End If Catch ex As Exception End Try End Sub Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar o programa? Todos os terminais serão fechados!", _ MsgBoxStyle.Question + MsgBoxStyle.YesNo) If sair = vbYes Then End End If Catch ex As Exception End Try End Sub

Page 77: Carlos Henrique Pereira [monografia]

77

Private Sub frmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Me.StatuslblData.Text = Date.Today Me.EncerrarAtendimentoToolStripMenuItem.Enabled = False Catch ex As Exception End Try End Sub Private Sub timerHoras_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerHoras.Tick Try Me.StatuslblHora.Text = TimeOfDay.ToLongTimeString Catch ex As Exception End Try End Sub Private Sub MensagemMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MensagemMenuItem.Click Try frmMensagens.ShowDialog() Catch ex As Exception End Try End Sub Private Sub guiche1C_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guiche1C.CheckedChanged Try If Me.guiche1C.Checked = True Then Me.statusMesa.Text = "GUICHÊ 1 OCUPADO" Me.guiche2C.Enabled = False Me.guiche3C.Enabled = False Me.guiche4C.Enabled = False Me.guiche1P.Checked = True Me.guiche2P.Enabled = False Me.guiche3P.Enabled = False Me.guiche4P.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub guiche2C_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guiche2C.CheckedChanged Try If Me.guiche2C.Checked = True Then Me.statusMesa.Text = "GUICHÊ 2 OCUPADO" Me.guiche1C.Enabled = False Me.guiche3C.Enabled = False Me.guiche4C.Enabled = False Me.guiche2P.Checked = True Me.guiche1P.Enabled = False

Page 78: Carlos Henrique Pereira [monografia]

78

Me.guiche3P.Enabled = False Me.guiche4P.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub guiche3C_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guiche3C.CheckedChanged Try If Me.guiche3C.Checked = True Then Me.statusMesa.Text = "GUICHÊ 3 OCUPADO" Me.guiche1C.Enabled = False Me.guiche2C.Enabled = False Me.guiche4C.Enabled = False Me.guiche3P.Checked = True Me.guiche1P.Enabled = False Me.guiche2P.Enabled = False Me.guiche4P.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub guiche4C_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guiche4C.CheckedChanged Try If Me.guiche4C.Checked = True Then Me.statusMesa.Text = "GUICHÊ 4 OCUPADO" Me.guiche1C.Enabled = False Me.guiche2C.Enabled = False Me.guiche3C.Enabled = False Me.guiche4P.Checked = True Me.guiche1P.Enabled = False Me.guiche2P.Enabled = False Me.guiche3P.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub atualiza() Try Me.TbAtendimentoTableAdapter.Fill(Me.DbSysBankDataSet.tbAtendimento) Catch ex As Exception End Try End Sub Private Sub insertComum() Try

Page 79: Carlos Henrique Pereira [monografia]

79

If Me.guiche1C.Checked = True Or Me.guiche1P.Checked = True Then Me.CodigoMesaTextBox.Text = "01" Else If Me.guiche2C.Checked = True Or Me.guiche2P.Checked = True Then Me.CodigoMesaTextBox.Text = "02" Else If Me.guiche3C.Checked = True Or Me.guiche3P.Checked = True Then Me.CodigoMesaTextBox.Text = "03" Else If Me.guiche4C.Checked = True Or Me.guiche4P.Checked = True Then Me.CodigoMesaTextBox.Text = "04" End If End If End If End If Me.CodigoAtendenteTextBox.Text = Me.StatuslblCodigo.Text Me.NomeAtendenteTextBox.Text = Me.StatuslblNome.Text Me.NumSenhaTextBox.Text = "C" & Me.lblSenhaComum.Text Me.DataAtendimentoDateTimePicker.Text = Date.Today Me.TbAtendimentoTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text) atualiza() Catch ex As Exception End Try End Sub Private Sub insertPreferencial() Try If Me.guiche1C.Checked = True Or Me.guiche1P.Checked = True Then Me.CodigoMesaTextBox.Text = "01" Else If Me.guiche2C.Checked = True Or Me.guiche2P.Checked = True Then Me.CodigoMesaTextBox.Text = "02" Else If Me.guiche3C.Checked = True Or Me.guiche3P.Checked = True Then Me.CodigoMesaTextBox.Text = "03" Else If Me.guiche4C.Checked = True Or Me.guiche4P.Checked = True Then Me.CodigoMesaTextBox.Text = "04" End If End If End If End If Me.CodigoAtendenteTextBox.Text = Me.StatuslblCodigo.Text Me.NomeAtendenteTextBox.Text = Me.StatuslblNome.Text Me.NumSenhaTextBox.Text = "P" & Me.lblSenhaComum.Text Me.DataAtendimentoDateTimePicker.Text = Date.Today

Page 80: Carlos Henrique Pereira [monografia]

80

Me.TbAtendimentoTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text) atualiza() Catch ex As Exception End Try End Sub Private Sub Button_chamar_senhaC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChamarSenhaComum.Click 'ATENDIMENTO NORMAL Try If (guiche1C.Checked = False) And (guiche2C.Checked = False) And (guiche3C.Checked = False) And (guiche4C.Checked = False) Then MsgBox("Informe qual é o seu guiche para começar o atendimento!", MsgBoxStyle.Exclamation) Exit Sub End If If (guiche1C.Checked = True) Then guiche1P.Checked = True lblGuicheSenhaComum.Text = "0" & 1 frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text lblSenhaComum.Text += +1 frmPainel.lblSenhaNormal.Text = lblSenhaComum.Text If Not (frmPainel.lblSenhaNormal.Text = String.Empty) Then lblSenhaComum.Text = frmPainel.lblSenhaNormal.Text lblFichaComum.Text = lblSenhaComum.Text frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text insertComum() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaNormal.Text + "no Guichê 1") End If End If If (guiche2C.Checked = True) Then guiche2P.Checked = False lblGuicheSenhaComum.Text = "0" & 2 frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text lblSenhaComum.Text += +1 frmPainel.lblSenhaNormal.Text = lblSenhaComum.Text If Not (frmPainel.lblSenhaNormal.Text = String.Empty) Then lblSenhaComum.Text = frmPainel.lblSenhaNormal.Text lblFichaComum.Text = lblSenhaComum.Text frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text insertComum()

Page 81: Carlos Henrique Pereira [monografia]

81

SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaNormal.Text + "no Guichê 2") End If End If If (guiche3C.Checked = True) Then guiche3P.Checked = True lblGuicheSenhaComum.Text = "0" & 3 frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text lblSenhaComum.Text += +1 frmPainel.lblSenhaNormal.Text = lblSenhaComum.Text If Not (frmPainel.lblSenhaNormal.Text = String.Empty) Then lblSenhaComum.Text = frmPainel.lblSenhaNormal.Text lblFichaComum.Text = lblSenhaComum.Text frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text insertComum() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaNormal.Text + "no Guichê 3") End If End If If (guiche4C.Checked = True) Then guiche4P.Checked = True lblGuicheSenhaComum.Text = "0" & 4 frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text lblSenhaComum.Text += +1 frmPainel.lblSenhaNormal.Text = lblSenhaComum.Text If Not (frmPainel.lblSenhaNormal.Text = String.Empty) Then lblSenhaComum.Text = frmPainel.lblSenhaNormal.Text lblFichaComum.Text = lblSenhaComum.Text frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text insertComum() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaNormal.Text + "no Guichê 4") End If End If Catch End Try End Sub Private Sub btnChamarSenhaPreferencial_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChamarSenhaPreferencial.Click 'ATENDIMENTO PREFERENCIAL Try If (guiche1C.Checked = False) And (guiche2C.Checked = False) And (guiche3C.Checked = False) And (guiche4C.Checked = False) Then

Page 82: Carlos Henrique Pereira [monografia]

82

MsgBox("Informe qual é o seu guiche para começar o atendimento!", MsgBoxStyle.Exclamation) End If If (guiche1C.Checked = True) Then guiche1P.Checked = False lblGuicheSenhaPreferencial.Text = "0" & 1 frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text lblSenhaPreferencial.Text += +1 frmPainel.lblSenhaPreferencial.Text = lblSenhaPreferencial.Text If Not (frmPainel.lblSenhaPreferencial.Text = String.Empty) Then lblSenhaPreferencial.Text = frmPainel.lblSenhaPreferencial.Text lblFichaPreferencial.Text = lblSenhaPreferencial.Text frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text insertPreferencial() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaPreferencial.Text + "no Guichê 1") End If ElseIf (guiche2C.Checked = True) Then guiche2P.Checked = False lblGuicheSenhaPreferencial.Text = "0" & 2 frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text lblSenhaPreferencial.Text += +1 frmPainel.lblSenhaPreferencial.Text = lblSenhaPreferencial.Text If Not (frmPainel.lblSenhaPreferencial.Text = String.Empty) Then lblSenhaPreferencial.Text = frmPainel.lblSenhaPreferencial.Text lblFichaPreferencial.Text = lblSenhaPreferencial.Text frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text insertPreferencial() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaPreferencial.Text + "no Guichê 2") End If ElseIf (guiche3C.Checked = True) Then guiche3P.Checked = True lblGuicheSenhaPreferencial.Text = "0" & 3 frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text lblSenhaPreferencial.Text += +1 frmPainel.lblSenhaPreferencial.Text = lblSenhaPreferencial.Text If Not (frmPainel.lblSenhaPreferencial.Text = String.Empty) Then lblSenhaPreferencial.Text = frmPainel.lblSenhaPreferencial.Text lblFichaPreferencial.Text = lblSenhaPreferencial.Text frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text insertPreferencial()

Page 83: Carlos Henrique Pereira [monografia]

83

SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaPreferencial.Text + "no Guichê 3") End If ElseIf (guiche4C.Checked = True) Then guiche4P.Checked = True lblGuicheSenhaPreferencial.Text = "0" & 4 frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text lblSenhaPreferencial.Text += +1 frmPainel.lblSenhaPreferencial.Text = lblSenhaPreferencial.Text If Not (frmPainel.lblSenhaPreferencial.Text = String.Empty) Then lblSenhaPreferencial.Text = frmPainel.lblSenhaPreferencial.Text lblFichaPreferencial.Text = lblSenhaPreferencial.Text frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text insertPreferencial() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaPreferencial.Text + "no Guichê 4") End If End If Catch End Try End Sub Private Sub ConfigurarHorasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConfigurarHorasToolStripMenuItem.Click Try Shell("rundll32.exe shell32.dll, Control_RunDLL timedate.cpl") Catch ex As Exception End Try End Sub Private Sub BlocoDeNotasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BlocoDeNotasToolStripMenuItem.Click Try Shell("notepad.exe", vbNormalFocus) Catch ex As Exception End Try End Sub Private Sub AtendimentoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AtendimentoToolStripMenuItem.Click Try frmAtendimento.ShowDialog() Catch ex As Exception End Try End Sub

Page 84: Carlos Henrique Pereira [monografia]

84

Private Sub RelatóriosDeAtenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RelatóriosDeAtenToolStripMenuItem.Click Try Using frmRelAtendimentos As New frmRelAtendimentos frmRelAtendimentos.ShowDialog() End Using Catch ex As Exception End Try End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAtendimentos.Click Try frmAtendimento.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMensagens.Click Try frmMensagens.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAtendentes.Click Try frmAtendente.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMesas.Click Try frmMesas.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUsuarios.Click Try frmRegistroUser.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDateTime.Click Try Shell("rundll32.exe shell32.dll, Control_RunDLL timedate.cpl")

Page 85: Carlos Henrique Pereira [monografia]

85

Catch ex As Exception End Try End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPainel.Click Try frmPainel.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSair.Click Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar o programa? Todos os terminais serão fechados!", _ MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Atenção") If sair = vbYes Then End End If Catch ex As Exception End Try End Sub Private Sub IniciarAtendimentoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IniciarAtendimentoToolStripMenuItem.Click Try MsgBox("Verifique se a DATA e HORAS estão corretas. Caso não estiver, por favor atualiza no guia 'Utilitários - Configurar Horas'.", MsgBoxStyle.Information, "Atenção") Me.guiche1C.Enabled = True Me.guiche2C.Enabled = True Me.guiche3C.Enabled = True Me.guiche4C.Enabled = True Me.btnChamarSenhaComum.Enabled = True Me.btnChamarSenhaPreferencial.Enabled = True Me.guiche3P.Enabled = True Me.guiche1P.Enabled = True Me.guiche2P.Enabled = True Me.guiche4P.Enabled = True IniciarAtendimentoToolStripMenuItem.Enabled = False Me.EncerrarAtendimentoToolStripMenuItem.Enabled = True Catch ex As Exception End Try End Sub

Page 86: Carlos Henrique Pereira [monografia]

86

Private Sub EncerrarAtendimentoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EncerrarAtendimentoToolStripMenuItem.Click Try MsgBox("Atendimento Encerrado.", MsgBoxStyle.Information) Me.guiche1C.Enabled = False Me.guiche2C.Enabled = False Me.guiche3C.Enabled = False Me.guiche4C.Enabled = False Me.guiche1C.Checked = False Me.guiche2C.Checked = False Me.guiche3C.Checked = False Me.guiche4C.Checked = False Me.btnChamarSenhaComum.Enabled = False Me.btnChamarSenhaPreferencial.Enabled = False Me.guiche3P.Enabled = False Me.guiche1P.Enabled = False Me.guiche2P.Enabled = False Me.guiche4P.Enabled = False Me.guiche3P.Checked = False Me.guiche1P.Checked = False Me.guiche2P.Checked = False Me.guiche4P.Checked = False Me.lblFichaComum.Text = "000" Me.lblFichaPreferencial.Text = "000" Me.lblGuicheSenhaComum.Text = "00" Me.lblGuicheSenhaPreferencial.Text = "00" Me.lblSenhaComum.Text = "000" Me.lblSenhaPreferencial.Text = "000" frmPainel.lblMesaNormal.Text = "00" frmPainel.lblMesaPreferencial.Text = "00" frmPainel.lblSenhaNormal.Text = "0000" frmPainel.lblSenhaPreferencial.Text = "0000" Me.EncerrarAtendimentoToolStripMenuItem.Enabled = False IniciarAtendimentoToolStripMenuItem.Enabled = True Catch ex As Exception End Try End Sub Private Sub SistemaMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SistemaMenuItem.Click Try frmSobreSistema.ShowDialog() Catch ex As Exception End Try End Sub Private Sub VersãoDoWindowsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VersãoDoWindowsToolStripMenuItem.Click Try

Page 87: Carlos Henrique Pereira [monografia]

87

Process.Start("winver.exe") Catch End Try End Sub Private Sub SiteMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SiteMenuItem.Click Try Dim visita As Integer visita = MsgBox("Certeza que Deseja Abrir WebSite da Empresa?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If visita = vbYes Then System.Diagnostics.Process.Start("http://henriks-si.blogspot.com/") End If Catch ex As Exception End Try End Sub Private Sub UsuáriosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UsuáriosToolStripMenuItem.Click Try frmRegistroUser.ShowDialog() Catch ex As Exception End Try End Sub Private Sub AtendenteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AtendenteToolStripMenuItem.Click Try frmAtendente.ShowDialog() Catch ex As Exception End Try End Sub Private Sub AtendimentosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AtendimentosToolStripMenuItem.Click Try frmAtendimento.ShowDialog() Catch ex As Exception End Try End Sub Private Sub MesasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MesasToolStripMenuItem.Click Try frmMesas.ShowDialog() Catch ex As Exception End Try End Sub Private Sub AlterarMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlterarMenuItem.Click Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja alterar de usuário?", _ MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Atenção")

Page 88: Carlos Henrique Pereira [monografia]

88

If sair = vbYes Then Me.Hide() frmLogin.ShowDialog() End If Catch ex As Exception End Try End Sub Private Sub AlterarSenhaMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlterarSenhaMenuItem.Click Try frmAlteraSenha.ShowDialog() Catch ex As Exception End Try End Sub Private Sub ListaDeUsuáriosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListaDeUsuáriosToolStripMenuItem.Click Try frmListaUsuarios.ShowDialog() Catch ex As Exception End Try End Sub End Class

frmBackUp Imports System.IO Public Class frmBackUp Private Sub btnRealizarBackUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRealizarBackUp.Click Try Dim SaveDialog As New SaveFileDialog SaveDialog.Filter = "Arquivo BackUp|*.accdb" SaveDialog.Title = "Selecione o backup de destino" If SaveDialog.ShowDialog = Windows.Forms.DialogResult.Cancel Then MsgBox("Operação de Backup abortada pelo usuário", MsgBoxStyle.Information, "BackUp Não gerado") Exit Sub Else If File.Exists(SaveDialog.FileName) Then File.Delete(SaveDialog.FileName) End If File.Copy("C:\SysBank\Datas\dbSysBank.accdb", SaveDialog.FileName) Dim Writer As System.IO.TextWriter Writer = New StreamWriter(SaveDialog.FileName & ".txt", FileMode.Create) Writer.WriteLine(SaveDialog.FileName) Writer.Flush() Writer.Close() MsgBox("Backup criado com sucesso.", MsgBoxStyle.Information, "BackUp Gerado") End If Catch ex As Exception End Try End Sub

Page 89: Carlos Henrique Pereira [monografia]

89

Private Sub btnRestaurarBackUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRestaurarBackUp.Click Try Dim OpenDialog As New OpenFileDialog OpenDialog.Title = "Selecione o local para acessar o backup" OpenDialog.Filter = "Arquivo Backup|*.accdb" If OpenDialog.ShowDialog = Windows.Forms.DialogResult.Cancel Then MsgBox("Acesso ao backup abortado", MsgBoxStyle.Exclamation, "BackUp não realizado") Exit Sub Else If File.Exists("C:\SysBank\Datas\dbSysBank.accdb") Then File.Delete("C:\SysBank\Datas\dbSysBank.accdb") File.Delete(OpenDialog.FileName & ".txt") End If File.Move(OpenDialog.FileName, "C:\SysBank\Datas\dbSysBank.accdb") MsgBox("Backup Restaurado. Novas alterações terão efeito depois de reiniciar o aplicativo. O programa será encerrado agora.", MsgBoxStyle.Exclamation, "BackUp Acessado. Reinicar Aplicativo") Me.Close() End If Catch ex As Exception End Try End Sub End Class

frmAtendente Public Class frmAtendente Private Sub atualiza() Try Me.TbAtendenteTableAdapter.Fill(Me.DbSysBankDataSet.tbAtendente) Catch ex As Exception End Try End Sub Private Sub frmAtendente_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub Private Sub frmAtendente_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load atualiza() End Sub

Page 90: Carlos Henrique Pereira [monografia]

90

Private Sub limpacampos() Try Me.CodigoAtendenteTextBox.Clear() Me.NomeAtendenteTextBox.Clear() Me.NomeAtendenteTextBox.Focus() Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.NomeAtendenteTextBox.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.NomeAtendenteTextBox.Enabled = False Catch ex As Exception End Try End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try limpacampos() enabledtrue() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click Try If Me.NomeAtendenteTextBox.Text = "" Then MsgBox("Informe o nome do atendente!", MsgBoxStyle.Information, "Atenção") Else Me.TbAtendenteTableAdapter.InsertQuery(Me.NomeAtendenteTextBox.Text) MsgBox("Atendente Inserido com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse()

Page 91: Carlos Henrique Pereira [monografia]

91

End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True enabledtrue() Catch ex As Exception End Try End Sub Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.NomeAtendenteTextBox.Text = "" Then MsgBox("Informe o nome do antendente!", MsgBoxStyle.Information, "Atenção") Else Me.TbAtendenteTableAdapter.UpdateQuery(Me.NomeAtendenteTextBox.Text, Me.CodigoAtendenteTextBox.Text) MsgBox("Atendente Alterado com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim del As Integer del = MsgBox("Tem certeza que desja excluir o " & Me.NomeAtendenteTextBox.Text & "?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If del = vbYes Then Me.TbAtendenteTableAdapter.DeleteQuery(Me.CodigoAtendenteTextBox.Text) MsgBox("Atendente Excluído com Sucesso.", MsgBoxStyle.Information)

Page 92: Carlos Henrique Pereira [monografia]

92

atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnVoltar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVoltar.Click Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub End Class

frmAtendimento Public Class frmAtendimento Private Sub atualiza() Try Me.TbAtendimentoTableAdapter.Fill(Me.DbSysBankDataSet.tbAtendimento) Catch ex As Exception End Try End Sub Private Sub frmAtendimento_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try atualiza() enabledfalse() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False Catch ex As Exception End Try End Sub Private Sub frmAtendimento_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbAtendimento' table. You can move, or remove it, as needed. atualiza() End Sub

Page 93: Carlos Henrique Pereira [monografia]

93

Private Sub limpacampos() Try Me.CodigoAtendimentoTextBox.Clear() Me.CodigoAtendenteTextBox.Clear() Me.NomeAtendenteTextBox.Clear() Me.CodigoMesaTextBox.Clear() Me.NumSenhaTextBox.Clear() Me.DataAtendimentoDateTimePicker.Text = Date.Today Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.CodigoAtendenteTextBox.Enabled = True Me.NomeAtendenteTextBox.Enabled = True Me.CodigoMesaTextBox.Enabled = True Me.NumSenhaTextBox.Enabled = True Me.DataAtendimentoDateTimePicker.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.CodigoAtendenteTextBox.Enabled = False Me.NomeAtendenteTextBox.Enabled = False Me.CodigoMesaTextBox.Enabled = False Me.NumSenhaTextBox.Enabled = False Me.DataAtendimentoDateTimePicker.Enabled = False Catch ex As Exception End Try End Sub Sub insert_() Try Me.DataAtendimentoDateTimePicker.Text = Date.Today Me.TbAtendimentoTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text) MsgBox("Atendimento incluido com sucesso") atualiza() Catch ex As Exception End Try End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try limpacampos() enabledtrue()

Page 94: Carlos Henrique Pereira [monografia]

94

Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click Try If Me.CodigoAtendenteTextBox.Text = "" Or Me.NomeAtendenteTextBox.Text = "" Or Me.NumSenhaTextBox.Text = "" Then MsgBox("Verifique os campos.", MsgBoxStyle.Critical) Else Me.TbAtendimentoTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text) MsgBox("Um novo atendimento inserido com sucesso.", MsgBoxStyle.Information) Me.atualiza() enabledfalse() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try enabledtrue() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True Catch ex As Exception End Try End Sub

Page 95: Carlos Henrique Pereira [monografia]

95

Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.CodigoAtendenteTextBox.Text = "" Or Me.NomeAtendenteTextBox.Text = "" Or Me.NumSenhaTextBox.Text = "" Then MsgBox("Verifique os campos.", MsgBoxStyle.Critical) Else Me.TbAtendimentoTableAdapter.UpdateQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text, _ Me.CodigoAtendimentoTextBox.Text) MsgBox("Atendimento alterado com sucesso.", MsgBoxStyle.Information) Me.atualiza() enabledfalse() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim exc As Integer exc = MsgBox("Tem certeza que deseja excluir o atendimento do atendente " + Me.NomeAtendenteTextBox.Text + "?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If exc = vbYes Then Me.TbAtendimentoTableAdapter.DeleteQuery(Me.CodigoAtendimentoTextBox.Text) MsgBox("Oatendimento foi excluído com sucesso.", MsgBoxStyle.Information) Me.atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnVoltar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVoltar.Click Try atualiza() enabledfalse() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True

Page 96: Carlos Henrique Pereira [monografia]

96

Me.btnVoltar.Enabled = False Catch ex As Exception End Try End Sub End Class

frmGraficoAtend Public Class frmGraficoAtend Private Sub frmGraficoAtend_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbAtendimento' table. You can move, or remove it, as needed. Try Me.TbAtendimentoTableAdapter.Fill(Me.DbSysBankDataSet.tbAtendimento) Catch ex As Exception End Try End Sub End Class

frmMensagens Public Class frmMensagens Dim H, V As Integer Private Sub atualiza() Try Me.TbMensagensTableAdapter.Fill(Me.DbSysBankDataSet.tbMensagens) Catch ex As Exception End Try End Sub Private Sub frmMensagens_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbMensagens' table. You can move, or remove it, as needed. atualiza() End Sub Private Sub txtMP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMP.TextChanged Try 'COMANDO SERVE PARA QUE QUANDO O LABEL_255 CHEGAR A "0" NÃO PODERÁ SER INSERIDO NENHUM CARACTERE MAIS If (Label_255.Text <> 0) Then Label_255.Text = 255 - Len(txtMP.Text) If (Label_255.Text = 0) Then MsgBox("O número de caracteres excedeu!", MsgBoxStyle.Exclamation, "Sys Bank") End If End If Catch ex As Exception End Try End Sub

Page 97: Carlos Henrique Pereira [monografia]

97

Private Sub txtMmenuP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMmenuP.TextChanged Try If (Label_255.Text <> 0) Then Label_255.Text = 255 - Len(txtMmenuP.Text) If (Label_255.Text = 0) Then MsgBox("O número de caracteres excedeu!", MsgBoxStyle.Exclamation, "Sys Bank") End If End If Catch ex As Exception End Try End Sub Private Sub txtMPA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMPA.TextChanged Try If (Label_255.Text <> 0) Then Label_255.Text = 255 - Len(txtMPA.Text) If (Label_255.Text = 0) Then MsgBox("O número de caracteres excedeu!", MsgBoxStyle.Exclamation, "Sys Bank") End If End If Catch ex As Exception End Try End Sub Private Sub btnContador_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnContador.Click 'COMANDO SERVE PARA REINICIAR O LABEL_255 Me.Label_255.Text = 255 End Sub Private Sub btnLimpa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpa.Click Try 'COMANDO SERVE PARA LIMPAR O QUE O USUARIO ESCREVEU If (TabPage1.CausesValidation = True) Then txtMP.Clear() txtMP.Focus() End If If (TabPage2.CausesValidation = True) Then txtMmenuP.Clear() txtMmenuP.Focus() End If If (TabPage3.CausesValidation = True) Then txtMPA.Clear() txtMPA.Focus() End If Catch ex As Exception End Try End Sub Private Sub Button_altera_pela_tabela_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_altera_pela_tabela.Click

Page 98: Carlos Henrique Pereira [monografia]

98

'PROCEDIMENTO SERVE PARA ALTERAR UMA MENSAGEM DA PELA TABELA E DEPOIS ATUALIZAR Dim sistema As Integer 'codigo = Me.ID_MENSAGEMTextBox.Text 'mensagem = Me.NOME_MENSAGEMTextBox.Text 'Me.QueriesTableAdapter1.ALTERA_MENSAGEM(codigo, mensagem) Try sistema = InputBox("Informe o código para alteração sendo: Código '1' para enviar para painel,código '2' para enviar para o sistema e código 3 para enviar para o painel e para o sistema.") If (sistema = 1) Then H = frmMenu.lblMensagem.Location.X If H <= -66 Then H = 886 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmPainel.lblMensagemPainel.Text = Me.NomeMsgTextBox.Text frmPainel.lblMensagemPainel.Location = New System.Drawing.Point(H, V) MsgBox("Mesagem enviada ao sistema com sucesso!", MsgBoxStyle.Exclamation) atualiza() End If Catch End Try 'PROCEDIMENTO PARA ENVIAR PARA O PAINEL E PARA O SISTEMA Try If (sistema = 2) Then H = frmMenu.lblMensagem.Location.X If H <= -932 Then H = 1051 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmMenu.lblMensagem.Text = Me.NomeMsgTextBox.Text frmPainel.lblMensagemPainel.Text = Me.NomeMsgTextBox.Text frmMenu.lblMensagem.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem enviada ao sistema com sucesso!", MsgBoxStyle.Exclamation) End If Catch End Try 'PROCEDIMENTO PARA ENVIAR PARA O PAINEL E PARA O SISTEMA Try

Page 99: Carlos Henrique Pereira [monografia]

99

If (sistema = 3) Then H = frmMenu.lblMensagem.Location.X If H <= -932 Then H = 1051 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmMenu.lblMensagem.Text = Me.NomeMsgTextBox.Text frmPainel.lblMensagemPainel.Text = Me.NomeMsgTextBox.Text frmMenu.lblMensagem.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem enviada ao sistema com sucesso e ao painel!", MsgBoxStyle.Exclamation) End If Catch End Try 'PROCEDIMENTO PARA QUANDO OS NUMEROS FOREM DIFERENTES DE 1 E 2 E 3 Try If (sistema <> 1) And (sistema <> 2) And (sistema <> 3) Then MsgBox("Os códigos Disponivéis são: '1' - '2' - '3'!", MsgBoxStyle.Exclamation) End If Catch End Try End Sub Private Sub Button_conf_alte_msg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_conf_alte_msg.Click Try Dim H, V As Integer 'procedimento para enviar mensagem para a tela do programa If (Radio_painel.Checked = True) Then H = frmPainel.lblMensagemPainel.Location.X If (txtMP.Text = "") Then MsgBox("Atenção, informe uma mensagem para alteração!", MsgBoxStyle.Exclamation) ElseIf (txtMP.Text <> "") Then If H <= -932 Then H = 1051 End If V = frmPainel.lblMensagemPainel.Location.Y H = H - 1 frmPainel.lblMensagemPainel.Text = txtMP.Text frmPainel.lblMensagemPainel.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem altera e enviada ao sistema com sucesso!", MsgBoxStyle.Information) ElseIf (Radio_painel.Checked = False) Then

Page 100: Carlos Henrique Pereira [monografia]

100

MsgBox("Marque uma opção para onde irá enviar a mensagem!", MsgBoxStyle.Information) End If End If 'procedimento para enviar para o sistema dentro do programa If (Radio_sistema.Checked = True) Then H = frmMenu.lblMensagem.Location.X If (txtMmenuP.Text = "") Then MsgBox("Atenção, informe uma mensagem para alteração!", MsgBoxStyle.Exclamation, "Sys Bank") ElseIf (txtMmenuP.Text <> "") Then If H <= -66 Then H = 886 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmMenu.lblMensagem.Text = txtMmenuP.Text frmMenu.lblMensagem.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem altera e enviada ao sistema com sucesso!", MsgBoxStyle.Information, "Sys Bank") ElseIf (Radio_sistema.Checked = False) Then MsgBox("Marque uma opção para onde irá enviar a mensagem!", MsgBoxStyle.Information, "Sys Bank") End If End If 'procedimento para enviar para o tela e para o sistema If (Radio_ambos.Checked = True) Then H = frmMenu.lblMensagem.Location.X If (txtMPA.Text = "") Then MsgBox("Atenção, informe uma mensagem para alteração!", MsgBoxStyle.Exclamation, "Sys Bank") ElseIf (txtMPA.Text <> "") Then If H <= -932 Then H = 1051 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmMenu.lblMensagem.Text = txtMPA.Text frmPainel.lblMensagemPainel.Text = txtMPA.Text frmMenu.lblMensagem.Location = New System.Drawing.Point(H, V) frmPainel.lblMensagemPainel.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem altera e enviada ao sistema com sucesso!", MsgBoxStyle.Information, "Sys Bank") ElseIf (Radio_ambos.Checked = False) Then

Page 101: Carlos Henrique Pereira [monografia]

101

MsgBox("Marque uma opção para onde irá enviar a mensagem!", MsgBoxStyle.Information, "Sys Bank") End If End If Catch ex As Exception End Try End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If Me.CheckBox1.Checked = True Then Me.TabControl1.Enabled = False Else Me.TabControl1.Enabled = True End If End Sub Private Sub LIMPACAMPOS() Try Me.CodMsgTextBox.Clear() Me.NomeMsgTextBox.Clear() Me.NomeMsgTextBox.Focus() Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.NomeMsgTextBox.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.NomeMsgTextBox.Enabled = False Catch ex As Exception End Try End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try LIMPACAMPOS() ENABLEDTRUE() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnCancelar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click

Page 102: Carlos Henrique Pereira [monografia]

102

Try If Me.NomeMsgTextBox.Text = "" Then MsgBox("Informe o nome da mensagem!", MsgBoxStyle.Information, "Atenção") Else Me.TbMensagensTableAdapter.InsertQuery(Me.NomeMsgTextBox.Text) MsgBox("Mensagem Inserida com Sucesso", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnCancelar.Enabled = True enabledtrue() Catch ex As Exception End Try End Sub Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.NomeMsgTextBox.Text = "" Then MsgBox("Informe o nome da mensagem!", MsgBoxStyle.Information, "Atenção") Else Me.TbMensagensTableAdapter.UpdateQuery(Me.NomeMsgTextBox.Text, Me.CodMsgTextBox.Text) MsgBox("Mensagem Alterada com Sucesso", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse()

Page 103: Carlos Henrique Pereira [monografia]

103

End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim del As Integer del = MsgBox("Tem certeza que desja excluir a mensagem selecionada?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If del = vbYes Then Me.TbMensagensTableAdapter.DeleteQuery(Me.CodMsgTextBox.Text) MsgBox("Mensagem Excluída com Sucesso", MsgBoxStyle.Information) atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub Private Sub frmMensagens_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub

Page 104: Carlos Henrique Pereira [monografia]

104

End Class

frmMesas Public Class frmMesas Private Sub atualiza() Try Me.TbMesaTableAdapter.Fill(Me.DbSysBankDataSet.tbMesa) Catch ex As Exception End Try End Sub Private Sub limpacampos() Try Me.CodigoMesaTextBox.Clear() Me.CodigoAtendenteTextBox.Clear() Me.NomeAtendenteTextBox.Clear() Me.CodigoAtendenteTextBox.Focus() Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.CodigoAtendenteTextBox.Enabled = True Me.NomeAtendenteTextBox.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.CodigoAtendenteTextBox.Enabled = False Me.NomeAtendenteTextBox.Enabled = False Catch ex As Exception End Try End Sub Private Sub frmMesas_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub Private Sub frmMesas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Page 105: Carlos Henrique Pereira [monografia]

105

atualiza() End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try limpacampos() enabledtrue() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click Try If Me.NomeAtendenteTextBox.Text = "" Then MsgBox("Informe corretamente os dados!", MsgBoxStyle.Information, "Atenção") Else Me.TbMesaTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, Me.NomeAtendenteTextBox.Text) MsgBox("Mesa Inserida com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True enabledtrue() Catch ex As Exception End Try End Sub

Page 106: Carlos Henrique Pereira [monografia]

106

Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.NomeAtendenteTextBox.Text = "" Then MsgBox("Informe corretamente os dados!", MsgBoxStyle.Information, "Atenção") Else Me.TbMesaTableAdapter.UpdateQuery(Me.CodigoAtendenteTextBox.Text, Me.NomeAtendenteTextBox.Text, Me.CodigoMesaTextBox.Text) MsgBox("Mesa Alterada com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim del As Integer del = MsgBox("Tem certeza que desja excluir o " & Me.CodigoMesaTextBox.Text & "?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If del = vbYes Then Me.TbMesaTableAdapter.DeleteQuery(Me.CodigoAtendenteTextBox.Text) MsgBox("Mesa Excluída com Sucesso.", MsgBoxStyle.Information) atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnVoltar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVoltar.Click Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception

Page 107: Carlos Henrique Pereira [monografia]

107

End Try End Sub End Class

frmPainel Public Class frmPainel Private Sub Timer_letra_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_letra.Tick Try Dim H, V As Integer H = Me.lblMensagemPainel.Location.X If H <= -1395 Then H = 13 End If V = Me.lblMensagemPainel.Location.Y() H = H - 1 Me.lblMensagemPainel.Location = New System.Drawing.Point(H, V) Catch ex As Exception End Try End Sub Private Sub Timer_hora_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_hora.Tick Try Me.lblHoraPainel.Text = TimeOfDay.ToLongTimeString Catch ex As Exception End Try End Sub Private Sub frmPainel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load lblDataPainel.Text = Date.Today If Keys.A Then Hide() End If End Sub End Class

frmRelAtendimentos Public Class frmRelAtendimentos Private Sub frmRelAtendimentos_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try Me.ReportViewer1.Clear() Me.txtBusca.Clear() Catch ex As Exception End Try End Sub Private Sub frmRelAtendimentos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'dbSysBankDataSet.tbAtendimento' table. You can move, or remove it, as needed.

Page 108: Carlos Henrique Pereira [monografia]

108

Me.tbAtendimentoTableAdapter.Fill(Me.dbSysBankDataSet.tbAtendimento) 'TODO: This line of code loads data into the 'dbSysBankDataSet.tbAtendimento' table. You can move, or remove it, as needed. End Sub Private Sub btnFiltrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFiltrar.Click Try If Me.cbBusca.Text = "Nome" Then Me.tbAtendimentoTableAdapter.BuscaNomeAtendente(Me.dbSysBankDataSet.tbAtendimento, "%" & Me.txtBusca.Text & "%") Me.ReportViewer1.RefreshReport() If Me.cbBusca.Text = "Numero Senha" Then Me.tbAtendimentoTableAdapter.BuscaNumSenha(Me.dbSysBankDataSet.tbAtendimento, "%" & Me.txtBusca.Text & "%") Me.ReportViewer1.RefreshReport() End If End If Catch ex As Exception End Try End Sub Private Sub btnTodos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTodos.Click Try Me.tbAtendimentoTableAdapter.Fill(Me.dbSysBankDataSet.tbAtendimento) Me.ReportViewer1.RefreshReport() Catch ex As Exception End Try End Sub Private Sub btnData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnData.Click Try If Me.cbBusca.Text = "Data" Then Me.tbAtendimentoTableAdapter.BuscaDataAtendimento(Me.dbSysBankDataSet.tbAtendimento, Me.DateTimePicker1.Text) Me.ReportViewer1.RefreshReport() End If Catch ex As Exception End Try End Sub End Class

frmSobreSistema Public Class frmSobreSistema Private Sub frmSobreSistema_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Set the title of the form. Dim ApplicationTitle As String If My.Application.Info.Title <> "" Then ApplicationTitle = My.Application.Info.Title

Page 109: Carlos Henrique Pereira [monografia]

109

Else ApplicationTitle = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName) End If Me.Text = String.Format("About {0}", ApplicationTitle) ' Initialize all of the text displayed on the About Box. ' TODO: Customize the application's assembly information in the "Application" pane of the project ' properties dialog (under the "Project" menu). Me.lblNome.Text = My.Application.Info.ProductName Me.lblVersao.Text = String.Format("Version {0}", My.Application.Info.Version.ToString) Me.lblCopy.Text = My.Application.Info.Copyright Me.lblEmpresa.Text = My.Application.Info.CompanyName End Sub End Class

frmAlteraSenha Public Class frmAlteraSenha Private Sub frmAlteraSenha_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbUsuarios' table. You can move, or remove it, as needed. Try Me.TbUsuariosTableAdapter.Fill(Me.DbSysBankDataSet.tbUsuarios) If Me.txtNome.Text <> "" Then Me.TbUsuariosTableAdapter.BuscaNomeUsers(Me.DbSysBankDataSet.tbUsuarios, Me.txtNome.Text) End If Catch ex As Exception End Try End Sub Private Sub btnAltera_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAltera.Click Try If Me.txtSenhaAtual.Text = "" Or Me.txtNovaSenha.Text = "" Or Me.txtRepitaNovaSenha.Text = "" Then MsgBox("Preencha os campos corretamente!", MsgBoxStyle.Critical) Me.txtSenhaAtual.Focus() Else If Me.txtSenhaAtual.Text <> Me.SenhaTextBox.Text Then MsgBox("A senha não confere com a original.", MsgBoxStyle.Critical) Me.txtSenhaAtual.Focus() Else If Me.txtNovaSenha.Text <> Me.txtRepitaNovaSenha.Text Then MsgBox("A senhas não conferem.", MsgBoxStyle.Critical) Me.txtNovaSenha.Clear() Me.txtRepitaNovaSenha.Clear() Me.txtNovaSenha.Focus() Else If Me.txtSenhaAtual.Text = Me.SenhaTextBox.Text Then Me.TbUsuariosTableAdapter.UpdateQuery(Me.txtNome.Text, _

Page 110: Carlos Henrique Pereira [monografia]

110

Me.txtNovaSenha.Text, _ Me.TipoComboBox.Text, _ Me.CodigoTextBox.Text) MsgBox("Sua senha foi alterada com sucesso.", MsgBoxStyle.Information) Me.txtNovaSenha.Clear() Me.txtSenhaAtual.Clear() Me.txtRepitaNovaSenha.Clear() Me.txtSenhaAtual.Focus() End If End If End If End If Catch ex As Exception End Try End Sub Private Sub btnCancela_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancela.Click Try Me.txtNovaSenha.Clear() Me.txtSenhaAtual.Clear() Me.txtRepitaNovaSenha.Clear() Me.txtSenhaAtual.Focus() Hide() Catch ex As Exception End Try End Sub End Class

frmListaUsuarios Public Class frmListaUsuarios Private Sub frmListaUsuarios_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbUsuarios' table. You can move, or remove it, as needed. Try Me.TbUsuariosTableAdapter.Fill(Me.DbSysBankDataSet.tbUsuarios) Catch ex As Exception End Try End Sub End Class

frmRegistroUser Public Class frmRegistroUser Private Sub atualiza() Try Me.TbUsuariosTableAdapter.Fill(Me.DbSysBankDataSet.tbUsuarios) Catch ex As Exception End Try End Sub

Page 111: Carlos Henrique Pereira [monografia]

111

Private Sub frmRegistroUser_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub Private Sub frmRegistroUser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load atualiza() End Sub Private Sub btnLista_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLista.Click Try frmListaUsuarios.ShowDialog() Catch ex As Exception End Try End Sub Private Sub limpaCampos() Try Me.CodigoTextBox.Clear() Me.NomeTextBox.Clear() Me.SenhaTextBox.Clear() Me.TipoComboBox.SelectedIndex = 0 Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.NomeTextBox.Enabled = True Me.SenhaTextBox.Enabled = True Me.TipoComboBox.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.NomeTextBox.Enabled = False Me.SenhaTextBox.Enabled = False

Page 112: Carlos Henrique Pereira [monografia]

112

Me.TipoComboBox.Enabled = False Catch ex As Exception End Try End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try limpaCampos() enabledtrue() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnCancelar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click Try If Me.NomeTextBox.Text = "" Or Me.SenhaTextBox.Text = "" Then MsgBox("Informe corretamente os dados!", MsgBoxStyle.Information, "Atenção") Else Me.TbUsuariosTableAdapter.InsertQuery(Me.NomeTextBox.Text, Me.SenhaTextBox.Text, Me.TipoComboBox.Text) MsgBox("Usuário Inserido com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False

Page 113: Carlos Henrique Pereira [monografia]

113

Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnCancelar.Enabled = True enabledtrue() Catch ex As Exception End Try End Sub Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.NomeTextBox.Text = "" Or Me.SenhaTextBox.Text = "" Then MsgBox("Informe corretamente os dados!", MsgBoxStyle.Information, "Atenção") Else Me.TbUsuariosTableAdapter.UpdateQuery(Me.NomeTextBox.Text, Me.SenhaTextBox.Text, Me.TipoComboBox.Text, Me.CodigoTextBox.Text) MsgBox("Usuário Alterado com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim del As Integer del = MsgBox("Tem certeza que desja excluir o usuário " & Me.NomeTextBox.Text & "?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If del = vbYes Then Me.TbUsuariosTableAdapter.DeleteQuery(Me.CodigoTextBox.Text) MsgBox("Usuário Excluído com Sucesso.", MsgBoxStyle.Information) atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Try Me.btnNovo.Enabled = True

Page 114: Carlos Henrique Pereira [monografia]

114

Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub End Class

ANEXO II

Page 115: Carlos Henrique Pereira [monografia]

115

Page 116: Carlos Henrique Pereira [monografia]

116

Page 117: Carlos Henrique Pereira [monografia]

117

Page 118: Carlos Henrique Pereira [monografia]

118

Page 119: Carlos Henrique Pereira [monografia]

119

Page 120: Carlos Henrique Pereira [monografia]

120

Page 121: Carlos Henrique Pereira [monografia]

121

Page 122: Carlos Henrique Pereira [monografia]

122

Page 123: Carlos Henrique Pereira [monografia]

123

Page 124: Carlos Henrique Pereira [monografia]

124

Page 125: Carlos Henrique Pereira [monografia]

125