customização crystal reports

31
UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação São Carlos - SP Customização de resultados para clientes utilizando Crystal Reports Guilherme Calabria Filho

Upload: guilherme-calabria-filho

Post on 23-Jun-2015

1.107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Customização Crystal Reports

1

UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação

São Carlos - SP

Customização de resultados para clientes utilizando Crystal Reports

Guilherme Calabria Filho

Page 2: Customização Crystal Reports

2

Customização de resultados para clientes utilizando Crystal Reports

Guilherme Calabria Filho

Supervisor: Rodrigo Merlo

Monografia de conclusão de curso apresentada ao

Instituto de Ciências Matemáticas e de Computação –

ICMC-USP - para obtenção do título de Bacharel em

Informática.

Área de Concentração: Desenvolvimento de sistemas de

informação

USP – São Carlos

Junho de 2010

Page 3: Customização Crystal Reports

i

VAI SER ALGUMAS DESSAS

AQUI... não sei qual ainda...

"Somente o homem, dentre

todas as criaturas da terra

tem o poder de mudar seu

padrão de pensamento e se

tornar o arquiteto de seu

destino."

"Na teoria, não há nenhuma

diferença entre teoria e

prática. Mas, na prática, há."

Jan Van de Snepscheut

"A vida só pode ser

compreendida, olhando-se

para trás; mas só pode ser

vivida olhando-se para

frente."

Soren Kierkegaard

"Os espartanos nunca

perguntaram quantos eram os

inimigos, mas onde era que

eles se encontravam. "

Agis II

Page 4: Customização Crystal Reports

ii

Dedicatória

Dedico esse trabalho a toda minha família, por sempre me proteger e me fortalecer nos

momentos de fraqueza e sempre me acompanhar nos momentos de felicidade e alegria.

Page 5: Customização Crystal Reports

iii

Agradecimentos

Agradeço a minha família por toda dedicação e apoio recebidos durante esta fase de

minha vida. Em especial ao meu pai Guilherme Calabria que sempre me apoia e me ensina a

viver com sua experiência e dedicação, minha mãe Mônica Calabria pelo seu amor

incondicional, paciência e franqueza e minha querida irmã Gabriela Calabria por me mostrar

o que é ser um grande profissional e ser humano.

Ao excelentíssimo Senhor Alfred Achkar por me fornecer essa grande oportunidade de

emprego, que espero poder retribuir com qualidade equivalente.

Ao Rodrigo Merlo, meu supervisor, que com muita alta estima sempre encontra a

melhor solução para os problemas.

Minha enorme gratidão para meus amigos Jaime Cazzoti, que sempre me apoiou em

todos os requisitos burocráticos estudantis e ao meu grande amigo Ricardo Marcacini que

com seu humor peculiar sempre me faz rir.

Page 6: Customização Crystal Reports

iv

Resumo

No mundo competitivo atual, cada vez mais empresas precisam de sumarização das

informações, pois, são através dessas informações que elas irão tomar decisões para definir

seu destino visando manter-se no mercado. Este trabalho de conclusão de curso apresenta

diversas customizações de resultados, os quais por sua vez fornecem relatórios sobre suas

produções e métodos para melhorar os procedimentos do cliente.

Page 7: Customização Crystal Reports

v

Sumário

LISTA DE ABREVIATURAS ........................................................................................ VI

LISTA DE FIGURAS .................................................................................................... VII

CAPÍTULO 1: INTRODUÇÃO ........................................................................................ 1

1.1 RELATÓRIO .................................................................................................................. 1

1.2 A EMPRESA ONDE O ESTÁGIO FOI REALIZADO ............................................................... 1

1.3 OBJETIVOS DO TRABALHO............................................................................................ 2

1.4 ORGANIZAÇÃO DA MONOGRAFIA ................................................................................. 2

CAPÍTULO 2: FERRAMENTAS UTILIZADAS ........................................................... 3

2.1. CONSIDERAÇÕES INICIAIS ........................................................................................... 3

2.2. DBDESIGNER 4 ........................................................................................................... 3

2.3. NETBEANS IDE 6.8 ..................................................................................................... 4

2.4. CRYSTAL REPORTS XI................................................................................................. 5

CAPÍTULO 3: TAREFAS E CUSTOMIZAÇÕES......................................................... 7

3.1. TREINAMENTO CRYSTAL REPORTS .............................................................................. 7

3.2. MAPEAMENTOS DA BASE DE DADOS ............................................................................ 9

3.3. FICHA TÉCNICA ......................................................................................................... 11

3.4. PROGRAMAÇÃO EMBARCADA .................................................................................... 13

CAPÍTULO 4: CONCLUSÃO ........................................................................................ 16

4.1. CONTRIBUIÇÕES ........................................................................................................ 16

4.2. CONSIDERAÇÕES SOBRE O CURSO DE GRADUAÇÃO ................................................... 16

4.3. TRABALHOS FUTUROS ............................................................................................... 16

REFERÊNCIAS ............................................................................................................... 17

ANEXO A – ARQUIVO CSV DE EXEMPLO ............................................................. 18

ANEXO B – CÓDIGO PARA CONVERSÃO ENTRE CSV PARA SQL.................. 19

Page 8: Customização Crystal Reports

vi

Lista de Abreviaturas

ERP Enterprise Resource Planning

ASP Application Service Provider

HTML Hyper Text Markup Language

CSV Comma Separated Values

API Application Programming Interface

IDE Integrated Development Environment

ODBC Open Data Base Connectivity

GNU GNU is Not Unix

GPL General Public License

SGBD Sistema Gerenciador de Banco de Dados.

Page 9: Customização Crystal Reports

vii

Lista de Figuras

Figura 1 - Modelo ER gerado pelo DBDesigner. ........................................................... 3

Figura 2 - Área de trabalho do Netbeans ........................................................................ 4

Figura 3 - Área de trabalho do Crystal Reports. ............................................................. 5

Figura 4 - Relatório criado com posicionamento do campo e descrição da estrutura. ... 7

Figura 5 - Janela inicial do Audience. ............................................................................ 8

Figura 6 - Parte do modelo ER gerado. ........................................................................ 10

Figura 7 - Exemplo de uma ficha técnica. .................................................................... 12

Figura 8 - Emulador para codificação da aplicação. ..................................................... 14

Figura 9 - Imagem do formulário para escolha do produto .......................................... 15

Page 10: Customização Crystal Reports

1

CAPÍTULO 1: INTRODUÇÃO

1.1 Relatório

Um relatório é uma apresentação organizada dos dados, ele é utilizado para

proporcionar, a empresa, subsídios para tomar decisões baseadas em dados efetivos. As

informações podem reportar resultados parciais ou totais de uma atividade, pesquisa,

projeto ou outro evento qualquer.

Como um evento pode produzir uma grande quantidade de dados sempre irá existir

uma dificuldade, de tamanho equivalente, de seu entendimento. Também não há um

algoritmo genérico de sumarização de dados suficientemente bom que atenda todas as

áreas. Esses motivos fortalecem o objetivo desse projeto, que visa a customização dos

relatórios e de suas técnicas de trabalho.

O Crystal Reports é uma ferramenta que oferece uma gama de opções para controle

sobre o tamanho, aparência e organização de todos os elementos de um relatório sendo

possível inclusive, alterar a ordenação dos dados de maneira dinâmica. Esses são os

principais motivos para realização desse projeto.

1.2 A empresa onde o estágio foi realizado

A Verup Sistemas e Informática é uma empresa especializada em softwares de

gestão, do tipo Enterprise Resource Planning (ERP), para o mercado de moda. A empresa

está no mercado há 32 anos e hoje utiliza o modelo Application Service Provider (ASP)

para o funcionamento do sistema. O modelo ASP concentra todos os dados em um único

ponto, fornecendo para quem está recebendo os dados, segurança e disponibilidade.

A empresa na qual o projeto foi idealizado, trata-se de uma das principais

fornecedoras de ERP para o setor têxtil da indústria brasileira. Ela atua em todo território

nacional, com grande ênfase no estado de São Paulo para empresas de pequeno a médio

porte.

Localizada em Cotia – São Paulo, ela conta com cerca de dezesseis funcionários

distribuídos em diversos setores. Seu principal produto é o Audience®. Além da venda e

Page 11: Customização Crystal Reports

2

do treinamento para o Audience®, ela também fornece soluções de Datacenter para seus

clientes.

A equipe de desenvolvedores é composta por três integrantes, cada um com suas

especificas funções: desenvolvimento do software, atualizações de segurança e suporte

técnico ao departamento de suporte ao cliente.

O Audience®, sistema desenvolvido pela Verup, em formato Cobol, utiliza

arquivos de dados próprios da AcuCorp e desta forma não existe possibilidade de acesso

aos arquivos de dados por ferramentas externas, somente pelo Cobol.

Este projeto de conclusão de curso foi incluído no departamento de

desenvolvimento da empresa. Uma vez que os resultados e demonstrativos gerados pelo

sistema são apresentados em formato HTML, este projeto consiste nas transformações dos

resultados e demonstrativos para o formato Crystal Reports. Este formato trará aos clientes

mais benefícios, como por exemplo, a customização de cada resultado e outros diversos

benefícios que serão apresentados a seguir.

1.3 Objetivos do Trabalho

O principal objetivo do projeto é realizar a conversão de todos os resultados

exportados pelo Audience®, de formato HTML para Crystal Reports. Para que isso seja

possível, será realizado o mapeamento de todas as exportações do formato Comma

Separated Values (CSV). Além da conversão de resultados para Crystal Reports, este

projeto teve também como objetivo a criação de um setor no departamento de

desenvolvimento, o de customizações. Através deste novo departamento a empresa poderá

fornecer um serviço complementar de customização de resultados, de maneira prática,

rápida, segura e eficiente.

1.4 Organização da Monografia

Esta monografia está organizada da seguinte maneira: no Capítulo 2 serão exibidas

as ferramentas utilizadas para realização das tarefas, destacando o motivo de suas escolhas

e mostrando determinados detalhes das mesmas. No Capítulo 3 serão detalhadas todas as

atividades realizadas durante o estágio. Por sua vez, no Capítulo 4 serão apresentados os

objetivos alcançados através da realização deste projeto.

Page 12: Customização Crystal Reports

3

CAPÍTULO 2: Ferramentas Utilizadas

2.1. Considerações Iniciais

Nesse capítulo são apresentadas as ferramentas utilizadas nas tarefas realizadas.

Para melhor entendimento destas ferramentas em alguns casos poderão ser fornecidas

descrições das tarefas onde essas ferramentas foram aplicadas, a descrição completa das

tarefas será apresentada no Capítulo 3.

2.2. DBDesigner 4

DBDesigner 4 é uma ferramenta para projetar um banco de dados que integra as

funções de: modelagem, projeto, implementação e manutenção em um mesmo ambiente. É

desenvolvida pela fabFORCE (www.fabforce.net) e distribuída sob a licença GNU is Not

Unix(GNU) General Public License (GPL). Ele é desenvolvido e otimizado para o Sistema

Gerenciador de Banco de Dados (SGBD) Mysql, mas é compatível com Oracle, MSSQL e

qualquer banco de dados ODBC.

Essa ferramenta possibilita a engenharia reversa, gerando o modelo ER, que

descreve o modelo de dados de um sistema com alto nível de abstração. A aplicação de

Engenharia reversa pode ser de grande ajuda para auxiliar no desenvolvimento de sistemas

[Ferrara, 2009]. Com o alto nível de abstração é possível um melhor entendimento da

estrutura e da lógica de um banco de dados.

Figura 1 - Modelo ER gerado pelo DBDesigner.

Page 13: Customização Crystal Reports

4

2.3. Netbeans IDE 6.8

O Netbeans, um dos mais antigos projetos criados para suportar a linguagem Java

[Mesenas, 2008], ele é um ambiente de desenvolvimento multiplataforma. Escrita

totalmente em Java e distribuída sob as condições da Sun Public License(SPL), uma

variação da Mozilla Public License(MPL), esta licença tem como objetivo garantir a

redistribuição de conhecimento à comunidade de desenvolvedores quando novas

funcionalidades forem incorporadas à ferramenta [Redação Oficina da Net, 2008]. Esse

ambiente de desenvolvimento integrado (IDE) suporta diversas linguagens entre elas: Java,

C/C++, PHP, Groovy e Ruby. Essa ferramenta auxilia programadores a escrever, compilar

e “debugar“ suas aplicações.

Ele possui um grande conjunto de biblioteca e API's além de uma vasta

documentação, bem organizada em português. Sendo uma distribuição open source (código

aberto) esse IDE conta com diversas comunidades, fóruns e grupos, isso lhe fornece uma

grande equipe de suporte técnico grátis.

Entre seus principais recursos estão:

auto-completar avançado;

ajuda local e online; debug apurado de aplicações e componentes;

Figura 2 - Área de trabalho do Netbeans

Page 14: Customização Crystal Reports

5

2.4. Crystal Reports XI

O Crystal Reports é uma ferramenta para geração de relatórios e é compatível a

diversos tipos de dados. É fornecida pela SAP sob a licença: Contrato de licença de usuário

final (EULA).

Com ele você pode acrescentar funcionalidades a um relatório para que fique

atraente aos olhos dos usuários.

Entre as vantagens de sua utilização na elaboração de um relatório estão:

Capacitação aos usuários finais, o poder de explorar os relatórios com a

classificação e parametrização.

Minimização do esforço da equipe de TI no desenvolvimento de relatórios

interativos.

Utilização dos dados a partir de diversas fontes incluindo: tabelas Microsoft

Excel, Oracle, Mysql e arquivos texto.

Compatível com diversas linguagens de programação

Figura 3 - Área de trabalho do Crystal Reports.

O Crystal Reports divide o relatório nas seguintes partes:

1. Report Header – Geralmente usado para fazer a capa do relatório já que só

será exibida na primeira página.

Page 15: Customização Crystal Reports

6

2. Page Header - Utilizada para que seja colocado um titulo para o relatório,

um campo que sirva como cabeçalho, a faixa de valores selecionados, e outras

informações que se queira apresentar no topo de cada página de seu relatório.

3. Details - O volume maior de dados do relatório aparecerá nesta seção. É

aqui onde são inseridos os campos das suas tabelas de dados.

4. Report Footer – Sendo a última seção do relatório. Pode-se colocar um

resumo ou comentário. Normalmente utilizado para colocar os subtotais, médias e

totais, resumindo as informações do relatório.

5. Page Footer – Usualmente contém o número da página e alguma outra

informação que será mostrada no final de cada página.

6. Group Header – É uma seção criada pelo programa quando se deseja

realizar um agrupamento de dados. Tipicamente usado para mostrar o nome do

grupo.

7. Group Footer – Quando se agrupam dados podem-se exibir subtotais ou

resumos do grupo.

Crystal Query Designer - é um gerador de Query que elimina a necessidade de

entendimento, bem como os erros de codificação, da linguagem SQL. As queries geradas

por este aplicativo são utilizadas no Crystal Report para listar as informações desejadas.

Parâmetros - quando o relatório é executado o usuário poderá ser requisitado a

informar valores. Estes valores podem ser utilizados para mudar títulos de relatórios,

critérios de seleção de registros e ordenação dos campos.

Page 16: Customização Crystal Reports

7

CAPÍTULO 3: Tarefas e Customizações

3.1. Treinamento Crystal Reports

Para iniciar o estágio foram fornecidos ao estagiário os seguintes manuais:

Designer I, da LCA informática e Crystal Reports Designer, da ETZ informática. Foi

realizado o treinamento da ferramenta Crystal Reports com esses manuais e com diversos

materiais suplementares encontrados na internet.

Ao iniciar um novo relatório pelo Crystal Reports é realizada uma conexão com o

banco de dados, onde são exibidas todas as tabelas e os campos disponíveis para serem

utilizados no relatório. Ao selecionar um campo, basta manter ele selecionado e arrasta-lo

até a posição do relatório desejada. Essa posição segue uma grade para alinhamento dos

objetos.

Ao se incluir um novo campo no relatório, o criador de QUERY do Crystal Reports

é atualizado instantaneamente. O criador do relatório pode visualizar a query gerada e

também pode incluir uma própria para obter determinados campos de determinadas

tabelas, essa opção irá fornecer mais um item na lista de tabelas disponíveis.

Figura 4 - Relatório criado com posicionamento do campo e descrição da estrutura.

Page 17: Customização Crystal Reports

8

Junto com a apresentação do Crystal Reports foi apresentado o sistema Audience®,

na qual o projeto é baseado. O sistema Audience® trabalha no modelo ASP, esse modelo

concentra os dados em um servidor. Todas as tarefas realizadas pelos usuários são

processadas no servidor. Com isso não importa onde o usuário esteja ele terá acesso a

todos os dados da sua empresa, fornecendo mobilidade e segurança.

Figura 5 - Janela inicial do Audience.

O Audience® é dividido por módulos, dentro de cada um pode ser realizado

diversas tarefas, por exemplo, no módulo Cliente é possível: o cadastramento de clientes,

Curva ABC de clientes e Exportação de clientes. Assim fornece uma maneira simples de se

agrupar e dividir as operações disponíveis de acordo com seus objetivos.

Sendo ele um ERP para indústrias da moda, suas ferramentas são direcionadas para

esse seguimento, por exemplo, em cadastro de produto é possível definir uma grade de

tamanhos personalizada para cada produto adicionado.

Sua utilização é simples, ao selecionar a tarefa desejada, pelo mouse, pressiona-se a

tecla Enter, para confirmar sua escolha, assim a tarefa será processada, geralmente é aberta

uma nova janela a frente da principal para receber dados necessários, antes de conclui-la.

Page 18: Customização Crystal Reports

9

3.2. Mapeamentos da base de dados

Mesmo com o entendimento parcial do sistema Audience® e do Crystal Reports

não foi possível visualizar de maneira abrangente como os dados se relacionavam e como

seria a extração de informações, por isso segue-se a próxima etapa.

Como a Verup utiliza arquivos de dados AcuCorp, não há nenhum SGBD que tenha

acesso a base de dados para lhe fornecer um modelo ER. Como não há um modelo ER para

sua base de dados e para que fosse criado esse modelo, foi realizado o mapeamento da base

de dados, do sistema Audience®, utilizando os seguintes procedimentos:

1. Todas as exportações, em CSV, foram convertidas para o modelo entidade

relacionamento (ER). Como as exportações realizadas pelo Audience® seguem uma

padronização, foi possível gerar um script para sua conversão, utilizando os nomes dos

campos para os relacionamentos. Um arquivo no formato CSV está disponibilizado no

Anexo A. Partes do script estão disponibilizadas no Anexo B.

2. Na execução do script foi criado um arquivo contendo todas as tabelas, com

seus respectivos campos. Nesse arquivo já há o relacionamento entre as tabelas. Após

a execução do script, todo o modelo em SQL, criado, foi importado no SGBD Mysql.

3. Nessa etapa foi realizada a verificação dos dados gerados, houveram

algumas modificações em relações as chaves estrangeiras, já que, em algumas tabelas

elas não são ON DELETE CASCADE, função em que ao se deletar um item todos os

itens que se referenciam a ele também são removidos. Após as modificações do

modelo gerado foi realizada a Engenharia Reversa do DBDesigner 4.

Page 19: Customização Crystal Reports

10

Figura 6 - Parte do modelo ER gerado.

Com engenharia reversa, foi produzido um modelo ER com determinada

complexidade, pois conta com: cerca de 80 tabelas, mais de 2600 atributos e diversos tipos

de relacionamentos.

Através dessas tarefas e com esse mapeamento foi possível realizar uma

documentação detalhada das exportações do sistema. Essa documentação é possível

visualizar como os dados se relacionam e de onde podemos extrair determinadas

informações. Com a conclusão da documentação, ela foi encaminhada para um funcionário

com maior experiência na empresa para sua verificação.

Esse documento é hoje utilizado como suporte ao departamento de atendimento ao

cliente, quando há alguma dúvida sobre as exportações ou de onde pode ser realizada o

integrantes da equipe de suporte ao cliente, recorre a esse documento, fornecendo um

ganho de velocidade.

Page 20: Customização Crystal Reports

11

3.3. Ficha técnica

A primeira customização em que o estagiário trabalhou foi a de uma ficha técnica

de produtos. Nela são visualizadas informações detalhadas do consumo de materiais para

determinado produto.

Na ficha técnica são listadas todas as cores do produto, se relacionando com

determinadas quantidades de materiais utilizados. Isso fornece ao usuário todo consumo de

matéria prima que o produto está utilizando, assim havendo uma análise de viabilidade do

produto.

A grande dificuldade nessa ficha técnica foi gerar o agrupamento dos dados para

serem exibidos de maneira coerente e simples. Pois existem tabelas de produtos, cores dos

produtos, materiais, cores de materiais, empenho dos materiais para os produtos. Então foi

utilizado à opção de sub-relatório do Crystal Reports. Usualmente essa não seria a melhor

opção, mas pela quantidade de tabelas que estariam sendo referenciadas foi a única

disponível. Na criação de um sub-relatório podem-se enviar informações, através de

parâmetros, para a criação de uma nova QUERY utilizada nesse novo relatório.

No setor de Page Header do relatório existe um sub-relatório onde são exibidas as

cores do produto, definindo áreas onde serão exibidas as quantidades dos materiais

utilizados para a determinada relação cor produto/cor material. Na parte Details do

relatório, onde é informado qual material e sua quantidade utilizada, há outro sub-relatório

como parâmetros, são enviados o código e cor do produto e o código e cor do material

para buscar os dados de quantidade utilizada do material.

Abaixo segue um exemplo de uma ficha técnica, onde pode ser visualizado o

agrupamento dos dados. Sendo que o produto exibido pode ser encontrado nas cores

amarelo, azul e branco. E abaixo desse agrupamento mostra-se a quantidade de material

utilizada junto com sua respectiva cor.

Page 21: Customização Crystal Reports

12

Figura 7 - Exemplo de uma ficha técnica.

Em detalhe pode-se visualizar na quinta linha da lista de materiais que determinado

material não foi utilizado para o produto na cor amarela, pois não se encontra preenchido.

Outras exportações foram trabalhas pelo estagiário como, por exemplo, a

exportação de movimentos do estoque, que pela sua baixa complexidade não há motivos

para detalhamentos.

Page 22: Customização Crystal Reports

13

3.4. Programação embarcada

Outra customização realizada foi a criação de um software de força de venda.

Determinado cliente está montando um showroom, para realização de vendas. Como

existirão muitos produtos para serem exibidos, não há como disponibilizar todas as

informações disponíveis, por exemplo, todas as cores disponíveis dos produtos. Por esse

motivo o cliente deseja, de maneira prática, rápida e offline, exibir essas e outras

informações.

Foi adquirido o equipamento PHL8112 da empresa Opticon. Esse equipamento é

equipado com o Windows CE 5.0, 128MB de SDRAM e um processador Intel PXA270.

Como as informações acessadas deverão ser off-line, o dispositivo será sincronizado toda

vez que retornar a base.

Esse software foi codificado em Java ME. A plataforma Java Micro Edition é o

conjunto de tecnologias que permitem o desenvolvimento de aplicações Java para

dispositivos com processamento, memória e vídeo limitados, como celulares e

smartphones [ZANFOLIM, 2009].

A principal ideia para esse software é fornecer detalhes sobre os produtos no show

room do cliente, assim economizando espaço por só exibir uma cor e um tamanho de cada

produto. Para isso o software contará com uma cópia, reduzida, da base de dados dos

produtos. Como o dispositivo, PHL8112, conta com um leitor de código de barras, a busca

pelos detalhes do produto será através dele.

Esses dispositivos contem uma tela, touch screen, de 3,5. Isso não fornece uma

grande área de trabalho. Para realizar uma boa interação usuário máquina, utilizamos o

framework Kuix (http://www.kalmeo.org/projects/kuix). Ele é distribuído pela empresa

Kalmeo, que é uma empresa francesa, de soluções móveis, sob a licença GPL. Kuix

significa: Kalmeo User Interface eXtensions for J2ME. Ele providencia uma diversificada

gama de elementos gráficos como: botões, campos de texto, listas, menus entre outros.

Page 23: Customização Crystal Reports

14

Figura 8 - Emulador para codificação da aplicação.

Ao pressionar o botão iniciar, o software irá pedir que o representante identifique-

se e que identifique qual cliente ele atenderá. Após a identificação é exibido um campo

texto, para o qual o representante deve utilizando o leitor de código de barras efetuará a

leitura da etiqueta do produto. Com essa leitura o sistema automaticamente exibe uma lista

contendo todas as cores do produto, abaixo dessa lista há 10(dez) campos textos onde será

possível determinar a quantidade de cada tamanho desejada pelo cliente. Acima de cada

campo há uma etiqueta com o tamanho.

Page 24: Customização Crystal Reports

15

Figura 9 - Imagem do formulário para escolha do produto

Nesse programa é possível alterar um item já adicionado, assim permitindo ao

cliente a mudança de escolha. Mas ao se concluir a compra, existe um formulário com a

lista de itens já adicionados com um botão para conclusão, não é permitida mas nenhuma

alteração, pois somente esse arquivo concluído será importado pelo sistema Audience para

a efetivação da venda.

Também é instalado no dispositivo um framework disponibilizado pelo fabricante,

que permite a configuração do dispositivo a fim de restringir as funcionalidades do mesmo.

Restringindo somente o uso do software da Verup.

Page 25: Customização Crystal Reports

16

CAPÍTULO 4: CONCLUSÃO

4.1. Contribuições

O anglicismo “customizações”, não significa somente introduzir modificações de

software que o tornem aderentes às necessidades particulares de uma empresa. Mas sim

uma oportunidade de negócio. Assim como mostrado nesse trabalho, há diversas

customizações que podem ser realizadas. Por isso, a criação de um departamento

especifico de customização fornece maior estabilidade para determinação de custos e

prazos.

Como contribuição pessoal, o trabalho proporcionou uma grande experiência

profissional por utilizar novas ferramentas (Crystal Reports) e novas metodologias. A

experiência, também, de trabalhar em uma nova área, como programação para dispositivos

móveis, fornece uma visão mais abrangente sobre tecnologias.

4.2. Considerações sobre o Curso de Graduação

Em relação ao curso de bacharelado em Informática oferecido pelo ICMC-USP, a

grade curricular forneceu o conhecimento básico necessário para o desenvolvimento do

projeto aqui proposto. Disciplinas como: Introdução à Teoria da Computação I e II,

Computação Orientada a Objetos, Algoritmos e Estrutura de Dados, Interação Usuário

Computador e Engenharia de Sistemas de Informação foram valiosas para realização das

tarefas ao longo do estágio.

Sugerem-se trabalhos práticos mais conceituados, pois é através de pesquisas em

diversas fontes que se pode obter uma visão mais profunda ou mais global do assunto.

4.3. Trabalhos Futuros

Como dito anteriormente exportações com baixas complexidades também foram

trabalhadas, como existem diversas exportações ainda no formato antigo, há um interesse

em converter todas as exportações para um modelo único. E a longo prazo a criação do

departamento de customização se o mercado mostrar interesse.

Page 26: Customização Crystal Reports

17

REFERÊNCIAS

MESENAS, Ivan. Netbeans 6.1 Desenvolvendo em Java e Ruby. Rio de Janeiro: Alta

Books, 2008.

FERRARA, Davi Adiel. Engenharia Reversa e Reengenharia de sistemas embarcados

visando melhoria de manutenção. São Carlos, 2009. Trabalho de conclusão de curso

(Graduação em Bacharel em informática), Instituto de Ciências Matemáticas e de

Computação, 2009.

REDAÇÃO OFICINA DA NET. O que é o Netbeans?. São Paulo: 2008. Disponível em:

<http://www.oficinadanet.com.br/artigo/1061/o_que_e_o_netbeans>. Acesso em: 30 mar.

2010.

ZANFOLIM, L. C; FERNANDES, R. C. Desenvolvendo um Estudo de Caso Utilizando a

Plataforma JAVA ME. Dourados, 2009. Trabalho de conclusão de curso(Ciência da

Computação), Universidade Estadual de Mato Grosso do Sul, 2009.

Page 27: Customização Crystal Reports

18

ANEXO A – Arquivo CSV de exemplo

[vpclie3.csv]

ColNameHeader=True

Format=Delimited(;)

DateTimeFormat=yyyy/mm/dd

MaxScanRows=0

CharacterSet=ANSI

DecimalSymbol=,

Col1=vup-numrclie integer

Col2=vup-coleprod integer

Col3=vup-etiqprod integer

Col4=vup-deptprod integer

Col5=vup-grupprod integer

Col6=vup-famiprod integer

Col7=cl3-qtdecole integer

Col8=cl3-vlorcole integer

Col9=cl3-qtdeetiq integer

Col10=cl3-vloretiq integer

Col11=cl3-qtdegrup integer

Col12=cl3-vlorgrup integer

Col13=cl3-qtdedept integer

Col14=cl3-vlordept integer

Col15=cl3-qtdefami integer

Col16=cl3-vlorfami integer

Col17=cl3-daticlie date

Col18=cl3-prgiclie char width 8

Col19=cl3-usriclie integer

Col20=cl3-datmclie date

Col21=cl3-prgmclie char width 8

Col22=cl3-usrmclie integer

Page 28: Customização Crystal Reports

19

ANEXO B – Código para conversão entre CSV

para SQL

/*Script para geração de tabelas em SQL para cada exportação do Audience*/

package verup;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

/**@author Guilherme Calabria Filho*/

public class Main {

public static void main(String[] args) throws FileNotFoundException, IOException {

/*Diretório padrão de exportação do Audience*/

String diretorio = "C:\\Audience\\arq";

File file = new File(diretorio); File afile[] = file.listFiles(); int i = 0;

/*Listas de tabelas a serem criadas*/

List<tabelaSQL> tabelas = new ArrayList<tabelaSQL>();

gerarSQL novoSQL = new gerarSQL();

for(int j=afile.length;i<j;i++){

File arquivos = afile[i];

if(arquivos.isDirectory()){

try{

tabelas = novoSQL.lerDirAud(arquivos.getCanonicalPath(),tabelas);

}catch(Exception e){

System.out.println("main Exception:\n"+e.toString());

}

}

}

String SQLQUERY = ""; String tabelaDoc = ""; String primaryKey; int j;

for(tabelaSQL nome:tabelas){

i=0; j=0; primaryKey ="";

SQLQUERY += "CREATE TABLE IF NOT EXISTS `"+nome.nomeTabela+"` (";

tabelaDoc += nome.nomeTabela+"\r\nDescrição:\r\nCampos:\r\n";

for(String campo:nome.nomeCampo) {

if((campo.startsWith("vup"))&&j>15)

System.out.println(nome.nomeTabela+"=>"+campo.toString());

if((campo.startsWith("vup")||j==0||i==0)&&j<15) {

j++;

primaryKey += "`"+campo+"`,";

}

if(nome.tamanho.get(i).toString().equalsIgnoreCase("-1")){

SQLQUERY += "`"+campo+"` "+nome.tipo.get(i)+", ";

tabelaDoc += "`"+campo+"` "+nome.tipo.get(i)+" = \r\n";

Page 29: Customização Crystal Reports

20

}

else{

SQLQUERY+="`"+campo+"`+nome.tipo.get(i)+"("+nome.tamanho.get(i)+"),\r\n";

tabelaDoc+="`"+campo+"`"+nome.tipo.get(i)+"("+nome.tamanho.get(i)+") = \r\n";

}

i++;

}

SQLQUERY+="PRIMARY KEY("+primaryKey.substring(0,primaryKey.length()-1)+")

);\r\n ";

}

File arquivo = new File("C:\\Audience\\arq","SQLS.txt");

FileOutputStream saida = new FileOutputStream(arquivo);

saida.write(SQLQUERY.getBytes());

File arquivo2 = new File("C:\\Audience\\arq","tabDoc.txt");

FileOutputStream saida2 = new FileOutputStream(arquivo2);

saida2.write(tabelaDoc.getBytes());

saida2.close(); saida.close();

}

}

/*Código da classe tabelaSQL*/

package verup;

import java.util.ArrayList;

import java.util.List;

public class tabelaSQL {

public String nomeTabela;

public Integer posicao;

public List<String> nomeCampo = new ArrayList<String>();

public List<String> tipo = new ArrayList<String>();

public List<String> tamanho = new ArrayList<String>();

public tabelaSQL(String nome,Integer local){

this.nomeTabela = nome;

posicao = local;

}

public void addCampo(String name,String type,String size){

Boolean added = false;

for(String nome:nomeCampo){

if(nome.equalsIgnoreCase(name)){

added = true;

}

}

if(!added){

nomeCampo.add(name);

tipo.add(type);

tamanho.add(size);

}

}

}

Page 30: Customização Crystal Reports

21

/*Código da classe gerarSQL*/

package verup;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.List;

public class gerarSQL {

/*Recebe um diretório padrão de exportação AUDIENCE*/

public List<tabelaSQL> lerDirAud(String diretorio,List<tabelaSQL> tabelas) {

try{

List<String> camposTab =new ArrayList<String>();

File verifica = new File(diretorio+"\\schema.ini");

if(verifica.exists()){

/*Lendo arquivo que contêm dados sobre a exportação*/

FileInputStream stream = new FileInputStream(diretorio+"\\schema.ini");

InputStreamReader streamReader = new InputStreamReader(stream);

BufferedReader reader = new BufferedReader(streamReader);

String line;String aux = null; int numlinha=0; int indiceTabelas=0;int tamanho;

String campo[];String campoDet[]; tabelaSQL newTable = null; Boolean jaexiste = false;

while((line=reader.readLine())!=null){

/*Caráter que indica o inicio da descrição de uma exportação*/

if(line.indexOf("[")!=-1){

/*Controle se a tabela já foi adicionada na lista*/

jaexiste =false;

aux = line.replace("[", "");

try{

/*Buscando tabela atual, na lista de tabelas já adicionadas*/

for(tabelaSQL nome : tabelas){

/*Se já foi adicionado só adiciona os campos*/

if(nome.nomeTabela.equalsIgnoreCase(aux.replace(".csv]",""))){

jaexiste = true;

/*Recebendo tabela*/

newTable = tabelas.get(nome.posicao);

break;

}

indiceTabelas++;

}

}

catch(Exception ex){

System.out.println("Exception ao fazer tabelas.get:"+ex.toString()+"\n");

}

/*Se a tabela ainda não estiver adicionada*/

if(!jaexiste){

if(!aux.replace(".csv]", "").isEmpty()){

/*Adicionando tabela, retirando os caracteres não necessários */

Page 31: Customização Crystal Reports

22

newTable = new tabelaSQL(aux.replace(".csv]",""),tabelas.size());

tabelas.add(tabelas.size(),newTable);

}

}

else{

/*Já existe*/

}

/*Leitura da linha 0 da descrição da tabela*/

numlinha=0;

}

else{

/*Se já for inicio das colunas*/

if(numlinha==7){

try{

/*Adicionando campos a tabela*/

campo = line.split("=");

campoDet = campo[1].split(" ");

/*Substituindo valores dos tipos de dados para um valor válido ao MYSQL*/

aux = campoDet[1].replace("integer", "int");

aux = aux.replace("floating", "float");

if(campoDet[1].equalsIgnoreCase("char")){

tamanho = Integer.parseInt(campoDet[3]);

if(tamanho>255) tamanho =255;

}

else tamanho=-1;

/*Adicionando campo*/

newTable.addCampo(campoDet[0], aux, Integer.toString(tamanho));

}

catch(Exception ex) {

System.out.println("Exception gerarSQL linha 78:"+ex.toString()+"\n"+line);

}

}

/*As primeiras linhas não são utilizáveis*/

/*Chegou na ultima linha antes das colunas*/

if(line.equalsIgnoreCase("DecimalSymbol=,")){

numlinha = 7;

}

}

}

}

else System.out.println("Não existe arquivo"+diretorio);

}catch(Exception e)

{

System.out.println("gerarSQL Exception:\n"+e.toString());

}

return tabelas;

}}