Você está na página 1de 51

MINISTRIO DA EDUCAO

SECRETARIA DE EDUCAO PROFISSIONAL E TECNOLGICA

RELATRIO DE ESTGIO

TCNICO EM INFORMTICA

TIAGO JOS FERREIRA

Vilhena/RO 2012

TIAGO JOS FERREIRA

RELATRIO DE ESTGIO

Relatrio de Estgio apresentado ao Instituto Federal de Educao, Cincia e Tecnologia de Rondnia, Campus Vilhena, como requisito para obteno do ttulo de Tcnico em

Informtica/Subsequente ao Ensino Mdio.

INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA. CAMPUS VILHENA


Vilhena/RO, 2012

INSTITUTO FEDERAL DE EDUCAO, CIENCIA E TECNOLOGIA. CAMPUS VILHENA

RELATRIO DE ESTGIO

TIAGO JOS FERREIRA

Relatrio de Estgio apresentado ao Instituto Federal de Educao, Cincia e Tecnologia de Rondnia, Campus Vilhena, como requisito para obteno do ttulo de Tcnico em Informtica, acompanhado e aprovado pelo Professor Orientador Gleiser Rodrigues de Melo,

em _____/_____/______. _________________________________________ Gleiser Rodrigues de Melo

Vilhena/RO, 2012

DEDICATRIA

Dedico este trabalho a minha esposa Natalia, por sua pacincia e incentivo mesmo nos momentos de ausncia; Aos meus irmos Elias e Messias que permaneceram ao meu lado no decorrer do curso.

AGRADECIMENTOS
Agradeo a Deus por permitir que eu conclusse este curso; Aos meus Professores pelo empenho e pacincia; professora Valeria Arenhardt pelo incentivo e dedicao; A Empresa Alpha Software por permitir o enriquecimento de experincias; A todos aqueles que de uma forma ou outra contriburam para a realizao deste trabalho de estgio.

O galo cata-ventos na torre da igreja, embora feito de ferro, logo seria quebrado pelo vento da tempestade se no entendesse a nobre arte de girar a cada Sopro. Heinrich Heine

E tambm presente no tomars: porque o presente cega os que tm vista, e perverte as palavras dos justos. xodo 23:8

NDICE
LISTA DE FIGURAS _______________________________________________________ LISTA DE TABELAS _______________________________________________________ LISTA DE ABREVIATURAS _________________________________________________ INTRODUO____________________________________________________________ 1. IDENTIFICAO DA EMPRESA __________________________________________ 1.1. Nome da Empresa __________________________________________ 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 2. 6 6 7 8 9 9

Ramo de Atividade __________________________________________ 9 Endereo da Empresa _______________________________________ 9 Histrico da Empresa ________________________________________ 9 Colaboradores, Organograma Funcional e Departamental ___________ 9 Layout da Empresa _________________________________________ 10 Produtos _________________________________________________ 14 Misso da Empresa ________________________________________ 14

OBJETIVO __________________________________________________________ 14 2.1. Objetivo Geral _____________________________________________ 14 2.2. Objetivo Especfico _________________________________________ 14 FUNDAMENTAO TERICA __________________________________________ 14 3.1. Modelos de Desenvolvimento de Software_______________________ 14 3.2. Engenharia de Software Modelo em Cascata ___________________ 15 EXECUO DO ESTGIO _____________________________________________ 17 4.1. Planejamento e Execuo das Atividades _______________________ 17 4.1.1. Apresentao da Empresa/Produto ___________________________ 17 4.1.2. Suporte _________________________________________________ 18 4.1.3. Requisitos de Alteraes, Implementaes e Correes de Erros ____ 20 4.2. Desenvolvimento de um software ______________________________ 22 4.2.1. Anlise do sistema ________________________________________ 22 4.2.1.1. Nota Fiscal Eletrnica NF-e _______________________________ 22 4.2.1.2. Levantamento dos Requisitos ______________________________ 23 4.2.1.3. Entrevista para obteno de requisitos de software ______________ 24 4.2.2. Requisitos Funcionais do AphaDanfe __________________________ 25 4.2.3. Requisitos No-Funcionais do AlphaDanfe ______________________ 26 4.2.4. Desenvolvimento da Aplicao _______________________________ 27 4.2.5. Interface grfica do "AlphaDanfe" _____________________________ 28

3.

4.

5. 6. 7. 8.

DISCUSSO DOS RESULTADOS _______________________________________ CONSIDERAES FINAIS _____________________________________________ REFERENCIAS _____________________________________________________ Anexos _____________________________________________________________

31 31 33 34

LISTA DE FIGURAS
Figura 1 - Logotipo da empresa Alpha Software ___________________________ 9 Figura 2 - Organograma Funcional e Departamental da Alpha Software _______ 10 Figura 3 - Fachada do prdio da Alpha Software _________________________ 11 Figura 4 - Departamento de Atendimento e Suporte da Alpha Software _______ 11 Figura 5 - Departamento de Atendimento e Suporte da Alpha Software _______ 12 Figura 6 - Sala de Atendimento e Consultoria da Alpha Software ____________ 12 Figura 7 - Sala de Departamento Comercial da Alpha Software ______________ 13 Figura 8 - Equipamentos de Testes para softwares Comerciais ______________ 13 Figura 9 - Diagrama do Modelo em Cascata _____________________________ 15 Figura 10 Parte de um Documento XML (Nota Fiscal Eletrnica) ___________ 28 Figura 11 - Ecr inicial do programa Alpha Danfe _________________________ 29 Figura 12 Desenvolvimento no Microsoft Visual Studio C# Express 2010 _____ 29 Figura 13 Abrindo um documento XML _______________________________ 30 Figura 14 Exibindo dados parciais de um documento XML ________________ 30

LISTA DE TABELAS
Tabela 1 Requisitos Funcionais _____________________________________ 26 Tabela 2 Requisitos No-Funcionais _________________________________ 26

LISTA DE ABREVIATURAS
C# - CSharp Linguagem de Programao criada pela Microsoft. Danfe Documento Auxiliar da Nota Fiscal Eletrnica. DLL Dynamic-Link Library - Biblioteca de Conexo Dinmica. Funes e rotinas de programao. ERP Enterprise Resource Planning ou SIGE - Sistemas Integrados de Gesto Empresarial. FIREBIRD um sistema gerenciador de banco de dados. FTP File Transfer Protocol Protocolo de Transferncia de Arquivo. HD Hard Disk Disco Rgido. ibExpert Ferramenta para administrao de bancos de dados Interbase e Firebird. Interbase SGBD desenvolvido pela empresa Borland. NF-e Nota Fiscal Eletrnica. ODBC Open Data Base Connectivity - Padro para acesso a SGBD. PDF Portable Document Format Documento de formato portvel. SGBD Sistema Gestor de Base de Dados; Gerencia um banco de dados. SHELL Linguagem de script (programao) usada em vrios sistemas operacionais. SINIEF 07/05 Sistema Nacional de Informaes Econmicas e Fiscais. Team View Programa de computador que permite controlar remotamente qualquer computador que esteja ligado Internet. XML Extensible Markup Language Linguagem de Marcao Extensvel. Usada para armazenar dados em um documento digital. XP eXtreme Programming - Programao Extrema um conjunto de prticas simples e concretas que se combinam em um processo de desenvolvimento gil.

INTRODUO
Atualmente nenhuma empresa ou organizao sobrevive sem o auxlio da informtica, por meio dela que tudo resolvido. Existe informtica em praticamente tudo que fazemos e em quase todos os produtos que consumimos. O mercado de trabalho exige profissionais de informtica devidamente capacitados e eficazes, com solues inovadoras e criativas para automatizar seus processos com o fim nico de manterem-se de p de igualdade no mundo competitivo do trabalho. Desta forma, procuramos compreender o real valor do profissional da informtica, compreender os desafios, os tropeos e, sobretudo, as realizaes, lembrando sempre que este profissional ser um eterno aprendiz e que todo o conhecimento adquirido riqueza. Buscando dar subsdios as estes argumentos, o Curso Subsequente de Tcnico em Informtica do Instituto Federal de Educao, Cincia e Tecnologia de Rondnia - Campus Vilhena institui o estgio obrigatrio a fim de proporcionar ao educando a iniciao no mundo profissional. Segundo o Art. 1. d o Regulamento de Estgio da Educao Profissional Tcnica de Nvel Mdio do Instituto Federal de Rondnia - Resoluo n 4/CONSUP/IFRO, de 15 de abril de 2011. - e de acordo com a Lei n. 11.788, art. 1.,
[...] estgio ato educativo escolar supervisionado, desenvolvido ambiente de trabalho, que visa preparao para o trabalho produtivo educandos que estejam frequentando o ensino regular em instituies educao superior, de educao profissional, de ensino mdio, educao especial e dos anos finais do ensino fundamental, modalidade profissional da educao de jovens e adultos. no de de da na

Outrossim, este trabalho tem como objetivo apresentar um relatrio das principais atividades que foram desenvolvidas durante o estgio na empresa Alpha Software, empresa do setor de desenvolvimento de softwares de automao comercial localizada nesta cidade de Vilhena-RO, ocasio em pude aprimorar os conhecimentos tericos adquiridos ao longo do curso, o que me permitiu vivenciar a profisso na sua forma prtica e plena, percebendo os obstculos do dia-a-dia.

1. IDENTIFICAO DA EMPRESA
1.1. Nome da Empresa
Alpha Consultoria em Informtica. Razo Social: Nei Neri Cardoso Gonalves ME. CNPJ: 07.160.720/0001-63.

Figura 1 - Logotipo da empresa Alpha Software

1.2.

Ramo de Atividade
A empresa Alpha Software atua na rea de consultoria tcnica em informtica com

nfase em vendas e manuteno de sistema de informao e automao comercial.

1.3.

Endereo da Empresa
Alpha Consultoria em Informtica est localizada na Avenida Juracy Correa Muller

n 5670, bairro Jardim Eldorado Vilhena RO, CEP 76980-000. Telefone: (69) 3321-5902 (69) 3322-4180 Email: alpha@alphasoftware.com.br

1.4.

Histrico da Empresa
A empresa Alpha Software nasceu no ano de 2004 a partir da necessidade de mo

de obra especializada em sistemas de automao comercial bem como o suprimento de softwares ERP para os diversos seguimentos comerciais do municpio de Vilhena RO.

1.5.

Colaboradores, Organograma Funcional e Departamental


A empresa conta com um total de oito colaboradores empenhados nas mais

diversas atividades da empresa, tais como: Gerencia Financeiro, Desenvolvimento de Softwares, Suporte/Correo de Erros e Vendas. Abaixo (Figura 2) Organograma da Empresa. 9

Figura 2 - Organograma Funcional e Departamental da Alpha Software

1.6.

Layout da Empresa
Algumas fotos da empresa Alpha Software:

10

Figura 3 - Fachada do prdio da Alpha Software

Figura 4 - Departamento de Atendimento e Suporte da Alpha Software

11

Figura 5 - Departamento de Atendimento e Suporte da Alpha Software

Figura 6 - Sala de Atendimento e Consultoria da Alpha Software

12

Figura 7 - Sala de Departamento Comercial da Alpha Software

Figura 8 - Equipamentos de Testes para softwares Comerciais

13

1.7.

Produtos
Seu principal produto o ALPHA ERP que atende empresas do comrcio em geral

e, aliado ao ALPHA FROTAS atende tambm empresas no ramo de transporte que somados hoje so utilizados por mais de 200 empresas nos estados de Rondnia, Mato Grosso, Amazonas e Par.

1.8.

Misso da Empresa

Com a misso de oferecer a informao ao alcance de seus clientes, a Alpha Software vem a cada dia buscando novas tecnologias e melhoramento em seus servio e produtos e assim ajudando seus clientes em solues inovadoras.

2. OBJETIVO
2.1. Objetivo Geral
Conhecer e acompanhar o processo produtivo de uma empresa de

desenvolvimento de software, a fim de obter experincia profissional na rea de informtica, aplicando os conhecimentos adquiridos ao longo do Curso Subsequente ao Ensino Mdio de Tcnico em Informtica realidade cotidiana de uma empresa localizada no municpio de Vilhena-RO.

2.2.

Objetivo Especfico
Acompanhar o trabalho desenvolvido pelo departamento de Suporte e manuteno de Software; Acompanhar o trabalho de anlise de requisitos, projeto e desenvolvimento de Software; Analisar a rotina real de trabalho e confrontar os resultados com os conhecimentos adquiridos em sala de aula

3. FUNDAMENTAO TERICA
3.1. Modelos de Desenvolvimento de Software
H uma gama de modelos que orientam o desenvolvimento de programas de computador. O objetivo aqui no falar de cada um deles, mas citar o modelo escolhido pela empresa Alpha Software no desenvolvimento de seus programas, o modelo Cascata. 14

Conforme PRESSMAN (1995, p.32),


[...] chamado modelo cascata, o paradigma do ciclo de vida requer uma abordagem sistemtica, sequencial ao desenvolvimento do software, que se inicia no nvel de sistema e avana ao longo da anlise, projeto, codificao e manuteno.

Tradicional, o modelo em cascata, apesar de parecer o mais simples e organizado, pode, como qualquer outro modelo, caso no seja muito bem planejado ensejar em inmeras falhas durante o seu desenvolvimento.

3.2.

Engenharia de Software Modelo em Cascata1


O modelo Cascata um modelo de engenharia projetado para ser aplicado no

desenvolvimento do software. A ideia principal que o dirige que as diferentes etapas de desenvolvimento seguem uma sequncia:

Figura 9 - Diagrama do Modelo em Cascata

Texto baseado nas pag. 32 a 35 do livro:

PRESSMANN, Roger S. Engenharia de Software. So Paulo: Makron Books, 1995. Baseado nas pag. 37 a 39 do livro: SOMMERVILLE, Ian. Engenharia de Software. So Paulo: Addison Wesley, 6 ed. 2003.

15

A sada da primeira etapa flu para a segunda etapa e a sada da segunda etapa flu para a terceira e assim por diante. As atividades a executar so agrupadas em tarefas, executadas sequencialmente, de forma que uma tarefa s poder ter incio quando a anterior tiver terminado. Anlise e definio dos requisitos Nesta etapa, estabelecem-se os requisitos do produto que se deseja desenvolver, o que consiste usualmente nos servios que se devem fornecer, limitaes e objetivos do software. Sendo isso estabelecido, os requisitos devem ser definidos de uma maneira apropriada para que sejam teis na etapa seguinte. Esta etapa inclui tambm a documentao e o estudo da facilidade e da viabilidade do projeto com o fim de determinar o processo de incio de desenvolvimento do projeto do sistema; pode ser vista como uma concepo de um produto de software e tambm como o incio do seu ciclo de vida. Projeto do sistema O projeto do sistema um processo de vrios passos que se centraliza em quatro atributos diferentes do sistema: estrutura de dados, arquitetura do software, detalhes procedais e caracterizao das interfaces. O processo de projeto representa os requisitos de uma forma que permita a codificao do produto ( uma prvia etapa de codificao). Da mesma maneira que a anlise dos requisitos, o projeto documentado e transforma-se em uma parte do software. Implementao Esta a etapa em que so criados os programas. Se o projeto possui um nvel de detalhe elevado, a etapa de codificao pode implementar-se automaticamente. A princpio, sugere-se incluir um teste unitrio dos mdulos nesta etapa; nesse caso, as unidades de cdigo produzidas so testadas individualmente antes de passar a etapa de integrao e teste global. Teste do sistema Concluda a codificao, comea a fase de teste do sistema. O processo de teste centraliza-se em dois pontos principais: as lgicas internas do software e as funcionalidades externas. Esta fase decide se foram solucionados erros de comportamento do software e assegura que as entradas definidas produzam resultados reais que coincidam com os requisitos especificados. Manuteno Essa etapa consiste na correo de erros que no foram previamente detectados, em melhorias funcionais e de preferncia e outros tipos de suporte. A etapa de manuteno 16

parte do ciclo de vida do produto de software e no pertence estritamente ao seu desenvolvimento. Melhorias e correes podem ser consideradas como parte do desenvolvimento.

4. EXECUO DO ESTGIO
4.1. Planejamento e Execuo das Atividades
O estgio realizado no perodo de 26 de setembro de 2011 a 15 de Dezembro de 2011, com durao total de 207 horas. Em conjunto com o responsvel pela empresa ficou acertado que o estgio se faria da seguinte forma:

4.1.1. Apresentao da Empresa/Produto


Durao: (03) trs horas. Neste primeiro contato, foi apresentada a empresa seu espao fsico , os colaboradores, os setores, os padres de atendimento ao cliente, os padres de documentao e a apresentao dos produtos e atividades atendidas. Foram apresentadas as regras de funcionamento da empresa, tais como o organograma funcional dos colaboradores, o diagrama do padro de atendimento e suporte via chat e via telefone. Realizamos a instalao de programas necessrios realizao de suporte ao Software Alpha para os clientes. Foram instalados os programas Alpha Control (desenvolvido pela empresa), o SGBD Firebird 2.1 e o programa de manipulao de SGBD IbExpert. Em geral, em termos de organizao, a empresa mostrou-se eficiente nos controles de suas atividades dirias e rigoroso controle das normas estabelecidas, sobretudo quanto ao atendimento e suporte ao Cliente.

Atividade importante realizada no dia 27/09/2011 Solucionando problema de Conexo do Firebird com a Base de Dados. Houve um problema na instalao do Firebird no computador que os estagirios iriam utilizar. J estava instalado o Servidor de Banco de Dados Relacional Interbase 2007 que possui um mdulo de acesso aos dados muito parecido ao do Firebird visto que, este 17

ultimo uma vertente do Interbase. Aps a desinstalao do Interbase foi instalado o Firebird, porm, este no conseguia acessar o banco de dados. Aps varias tentativas de correo ao erro e algumas pesquisas descobriu-se que uma dll da pasta

"C:/Windos/System32", a dll "gds32.dll", continha informaes para o acesso apenas do Interbase e por este motivo no era possvel fazer a conexo do Firebird com a base de Dados. A Soluo foi desinstalar o Firebird, excluir a dll "gds32.dll", reiniciar o sistema e reinstalar o Firebird juntamente com o Driver ODBC (que acessa o Banco de dados).

4.1.2. Suporte
Durao de (12) doze horas. Neste contexto, o estagirio foi envolvido nas atividades de rotina de suporte ao cliente. O atendimento ao cliente realizado por meio de: Telefone; E-mail; Chat; Acesso Remoto e; Atendimento in-loco.

Assim, os colaboradores do suporte recebem as mais diversas solicitaes sobre problemas e erros do software, verificam as causas e solucionam o problema por meio de acesso remoto onde, atravs de uma conexo segura com a internet, o colaborador consegue acessar o computador do cliente e, assim, realizar a manuteno e solucionar os problemas. Utilizam, para isso, o programa Team View para realizar o acesso remoto. Tambm so solucionados problemas por meio de telefone onde o colaborador instrui o usurio acerca dos procedimentos que deve realizar para solucionar os problemas. O atendimento via chat similar ao atendimento via telefone, a diferena que as instrues so passadas por meio de um programa de bate-papo (programa chamado: Brazip). Quando estas formas de atendimento no so eficientes, a empresa utiliza o atendimento in-loco, ou seja, um tcnico vai at o cliente e soluciona os problemas. Toda solicitao registrada no controle de atendimentos, para fins futuros de estatsticas e eventuais mudanas no sistema a partir dos principais erros e problemas apresentados. Controlando, desta forma, a qualidade do produto.

18

Neste perodo realizamos as tarefas de manuteno e suporte, porm, a produtividade foi um pouco prejudicada devido falta de conhecimento do cdigo de programao e da base de dados desenvolvidos pela empresa. Os cdigos fontes so protegidos e o seu acesso restrito aos desenvolvedores. A maior parte dos erros relatados e resolvidos ocasionada pela m utilizao do sistema (Alpha) por parte do usurio, erro na entrada de dados e digitao de datas erradas. Pequenos detalhes que se observados, poderiam facilmente ser evitados. A tarefa de suporte mais utilizada a de liberao de licenas mensais do Apha Software. Todo inicio de ms este procedimento e realizado pelos funcionrios do suporte. O sistema tem um prazo mensal de funcionamento, aps o pagamento do boleto da mensalidade necessrio entrar em contato com cada cliente e pass-los uma chave de ativao para que o software funcione por mais um ms. Esta forma de validao de pagamento e validao de licenas poderia ser mais bem elaborada. Foi levada, pelos estagirios, uma sugesto que poderia melhorar este processo.

Sugesto de processos para a operao liberao de licena do software. Atualmente o processo de desenrola da seguinte forma: 1. O cliente faz o pagamento da mensalidade por meio de boleto bancrio; 2. O banco repassa Alpha Software as informaes sobre o pagamento dos clientes; 3. Um relatrio dos clientes adimplentes entregue aos funcionrios do suporte; 4. Com as informaes do relatrio o suporte entra em contato com cliente;

5. O suporte solicita a disponibilidade do cliente em fazer a liberao do sistema. s vezes o cliente est atarefado e no pode participar do processo de liberao, assim, ser necessrio entrar em contato com o cliente

posteriormente. Caso haja disponibilidade por parte do cliente, o processo de liberao, geralmente, toma duas formas mais comuns: 5.1. Por telefone: O suporte auxilia o usurio (cliente) de como deve

proceder para fornecer a senha do contrato. Com essa informao, o suporte acessa o sistema de gerencia de licenas e fornece ao cliente o n de contra senha e o n do registro da licena. O processo geralmente bem rpido, porem, toma certo tempo do suporte e do cliente. 5.2. Por acesso a rea de trabalho remota: Geralmente ocorre quando o
19

cliente no sabe como proceder, mesmo com o auxilio do suporte, para

realizar os processos de liberao do software Alpha. Assim, o cliente solicita ao suporte que acesse o computador de sua empresa remotamente para que o suporte faa toda a operao. 6. O suporte realiza a operao de liberao de licena e, em seguida, retorna ao processo n 1 e faz novamente a liberao para outro cliente.
Como pode ser observado, existe uma rotina (algoritmo) para realizao deste processo. Um software poderia ser desenvolvido e implementado para realizar

automaticamente todo o processo de validao e ativao de licenas, evitando, assim, a utilizao de recursos da empresa e eventuais gastos com pessoal (suporte) e de telecomunicaes (telefone, por exemplo).

Atividades Importantes no perodo: Realizamos todas as liberaes de licena de funcionamento de software prevista no ms de Outubro de 2011; Realizamos a implantao do sistema Alpha nas empresas (Escritrio Sartor Av. Jos do Patrocnio) e (VPS Assessoria Rural Av. Sabino Bezerra de Queiroz n3536). Instalao e execuo de ajustes no Banco de Dados Firebird destas empresas e configurao da rede de computadores para o perfeito funcionamento do sistema; Acompanhamento do funcionrio da Alpha Software no treinamento com Vdeoaulas sobre o sistema Alpha. Realizamos atendimento in-loco na Empresa MAXMAD madeiras. O cliente relatou que no conseguia enviar o "xml" (nota fiscal eletrnica) para um cliente da cidade

de Curitiba-PR. Aps algumas verificaes, conseguiu-se configurar o programa de envio NF-e, o unidanfe, para enviar por e-mail os referidos documentos eletrnicos ao

destinatrio; A pedido do gerente da empresa, para controle gerencial, realizamos uma anlise detalhada de todos os suportes e atendimentos realizados pela empresa no ultimo ano. Relatrio dos Atendimentos na Seo Anexos.

4.1.3. Requisitos de Alteraes, Implementaes e Correes de Erros


Durao de (35) trinta horas. Durante o atendimento no suporte, frequentemente os clientes solicitam a adio ou mesmo a retirada de alguma funo do programa. A estas funcionalidades damos o nome 20

de requisitos de software. No funo do suporte implementar estes requisitos e por este motivo toda solicitao de alterao no programa enviada para o setor de desenvolvimento que analisa a importncia daquela funcionalidade para o cliente e para o sistema, j que este um programa disponibilizado a todos os clientes e uma alterao poderia afetar de forma negativa as tarefas dos demais clientes.

Caso 1. Requisitos de Software de um Restaurante Um determinado restaurante fez a aquisio do Sistema de Automao Comercial Alpha Software. O cliente exigiu que houvesse relatrios de vendas individuais por garons e tambm um relatrio simplificado que mostrasse todas as vendas realizadas em um dia de trabalho. O objetivo do cliente era quantificar as vendas de seus garons e assim poder remuner-los no sistema de comisso por vendas. Aps analise do setor de desenvolvimento, fomos incumbidos de confeccionar tais relatrios. Assim, conforme a solicitao, foram feitos dois relatrios, um com informaes detalhadas de vendas e outro com informaes simplificadas. No Primeiro, o usurio tem a opo de filtrar as informaes por perodo de tempo (filtro por datas) e pelo nome do garom. O relatrio exibe a data da venda, os produtos, a unidade (quantitativo), o preo unitrio, preo total, valor da comisso por venda, e valor total da comisso pela venda de todos os produtos. O segundo relatrio, simplificado, mostra essas informaes, porem, no d a opo de filtragem de dados, mostra os dados de todos os funcionrios - garons-.

Caso 2. Requisitos de Software de uma Loja de Materiais de Construo Realizamos atendimento de amostragem a um possvel cliente que trabalha no ramo de materiais para construo. Foi instalado o sistema para o funcionamento por dez dias e foi feito uma apresentao funcional do sistema, pois, o cliente estava interessado na aquisio do software para sua empresa. O cliente solicitou alguns requisitos funcionais que o sistema ainda no possua. O sistema deveria permitir a retirada de dinheiro do caixa para pagamento de contas, mesmo que estas contas no constem no cadastro de contas a pagar; O sistema deve consultar essas retiradas (espcie de sangria) pelo nome da pessoa que recebeu essa conta. Isto, explicou o cliente, seria uma forma mais simples e 21

rpida de fazer um pagamento retirando o dinheiro do caixa; O sistema deve emitir ou tornar visvel de alguma forma a listagem dos produtos mais vendidos e a sua frequncia de vendas e, o mais importante, a sua quantidade em estoque. Isto, explicou o cliente, tem o objetivo de mostrar que um determinado produto tem tima procura e que deve sempre mant-lo em estoque. Da mesma forma, esta funo deve exibir a rotatividade de um determinado produto do estoque. Ex.: O produto cimento possui uma media de vendas de 30 sacas por dia, ento o sistema deve informar que a quantidade de 300 sacas no estoque suficiente para 10 dias teis. Prevenindo o departamento de compras que este produto deve ser adquirido. Igualmente ser possvel saber se um determinado produto no possui sada e ou um produto de difcil venda. Estes requisitos foram levados at o setor de anlise e desenvolvimento para as providncias necessrias.

4.2.

Desenvolvimento de um software
Durao (150) cento e cinquenta horas. Foi planejado pela empresa Alpha Software o desenvolvimento de um programa

para controle e gerenciamento de arquivos XML para documentos eletrnicos como a NF-e. Ficou acertado que a equipe de estagirios desenvolveria o software em modelo tipo cascata onde seriam analisados os requisitos junto ao cliente que neste cenrio ser a prpria Alpha Software. Sobre o modelo cascata: [...] o paradigma do ciclo de vida requer uma sistemtica, sequencial ao
desenvolvimento do software, que se inicia no nvel do sistema e avana ao longo da anlise, projeto, codificao, teste e manuteno. (PRESSMANN, 1995, p. 32).

4.2.1. Anlise do sistema


A problemtica requer que seja feita uma anlise completa do software solicitado. Assim, nesta primeira fase que se definiro os detalhes, os objetivos, as restries e funes que o programa deve cumprir.

4.2.1.1.

Nota Fiscal Eletrnica NF-e

A Nota Fiscal Eletrnica um documento de existncia apenas digital, emitido e armazenado eletronicamente, com o intuito de documentar, para fins fiscais, uma operao de circulao de mercadorias ou uma prestao de servios, ocorrida entre as partes. Sua 22

validade jurdica garantida pela assinatura digital do remetente (garantia de autoria e de integridade) e a Autorizao de uso fornecida pelo Fisco, antes da ocorrncia do fato gerador. Possui validade em todos os estados da Federao e j uma realidade na legislao brasileira desde outubro de 2005, com a aprovao do Ajuste SINIEF 07/05 que instituiu nacionalmente a Nota Fiscal Eletrnica e o Documento Auxiliar da Nota Fiscal Eletrnica DANFE. A NF-e substitui a nota fiscal modelo 1 e 1-A em todas as hipteses previstas na legislao em que esses documentos possam ser utilizados. Isso inclui, por exemplo: a Nota Fiscal de entrada, operaes de importao, operaes de exportao, operaes interestaduais ou ainda operaes de simples remessa. O DANFE Documento Auxiliar da Nota Fiscal Eletrnica uma representao grfica na NF-e, ele deve ser impresso e acompanhar as mercadorias quando em transporte, deve possuir a codificao da chave de acesso da NF-e, assim como um cdigo de barras que represente a mesma chave de acesso para consulta de autenticidade junto ao sitio da Receita Federal. O DANFE no possui validade fiscal, nem substitui uma Nota Fiscal. um mero instrumento informativo, que auxilia no acesso s informaes da NF-e. Dados os detalhes sobre a NF-e, o objetivo do software era armazenar os XMLs das NF-e, convert-los em um formato legvel e passvel de impresso e envi-los por email.

4.2.1.2.

Levantamento dos Requisitos

Os requisitos so uma coleo de sentenas que devem descrever de modo claro, sem ambiguidades, conciso e consistente todos os aspectos significativos do sistema proposto. Eles devem conter informaes suficientes para permitir que os implementadores construam um sistema que satisfaa os requerentes, e nada mais. Conforme proposto por Sommerville (2003, p. 83), um requisito tratado como funcional quando descreve um servio ou funo que o sistema deve realizar. Paralelamente pode haver requisitos no funcionais, que so restries impostas tanto ao sistema quanto ao seu desenvolvimento. Para o levantamento dos requisitos de software, foi utilizado o recurso de entrevista ao cliente que neste caso foi a prpria Alpha Software. Por meio desta entrevista obteve-se um questionrio com as devidas respostas com as quais tornaram possveis o levantamento dos requisitos funcionais e as restries do software. Segue abaixo na integra a entrevista elaborada para levantamento de Requisitos de Software aplicada empresa Alpha Software.

23

4.2.1.3.
software.

Entrevista para obteno de requisitos de software

Segue entrevista realizada pelos estagirios para obteno de requisitos de

Entrevistado: Nei Neri Cardozo Gonalves Entrevistador: Jean P. Campos e Tiago J. Ferreira Questionrio: (1) De forma geral qual ser a funo do programa? R: Ler o arquivo XML autorizado da NF-e. Exibir o Danfe na tela, conforme projeto da NF-e. (2) Que tipos de usurios usaro o sistema? R: Usurios ambientados com a logstica administrativa e contbil da empresa, com um sistema ERP, no que concerne a funcionamento (e talvez administradores do mesmo). (3) Precisa Gravar o Danfe? Se sim, quis os formatos de mdia? R: Deve gerar o arquivo PDF, para um futuro pensar em formato prprio que de certa forma leva a ideia de marketing do software. Deve ainda gravar nas mais diversas mdias (HD, pendrive, FTP (este para a verso paga). (4) Ser necessrio o envio do Danfe por e-mail, acompanha a NF-e? R: O envio do XML obrigatrio, o atual sistema envia na verso gratuita seu arquivo proprietrio e na verso paga envia tambm o arquivo PDF. (5) Deve conter polticas de Back-up? R: Sim, e essa possibilidade deve ser flexvel, pois o cliente precisar escolher como pode fazer isso, a partir do Banco de Dados ou a partir dos arquivos em mdia, de quanto em quanto tempo, qual o destino e forma de organizao dos mesmos (data, CNPJ, entre outros). (6) Quais os dados devem ser armazenados pelo sistema? (como contatos Lista de e-mails ou mesmo o xml). R: Para facilitar a transmisso de e-mail o sistema deve poder armazenar CNPJ, e-mail e o prprio XML. (7) Como o software vai se integrar com o sistema ERP do usurio? R: Integrao com o ERP (chamada de comandos Shell) ou por manipulao do usurio. O sistema deve dar opes de configurao para impresso, permitindo a escolha da impressora. A partir do questionrio foi possvel a elaborao de um Documento de Requisitos que segue em anexo. 24

4.2.2. Requisitos Funcionais do AphaDanfe


Por questo de nomenclatura, o software recebeu como prefixo o nome da empresa responsvel Alpha somado a sua funcionalidade como sufixo Danfe. Assim o sistema passou a chamar-se projeto AlphaDanfe.
Requisitos Funcionais: So Declaraes de funes que o sistema deve fornecer, como o sistema deve reagir a entradas especficas e como deve se comportar em determinadas situaes. Em alguns casos, os requisitos funcionais podem tambm explicitamente declarar o que o sistema no devem fazer. (SOMMERVILLE, 2003, p. 83).

Os requisitos funcionais referem-se aos requisitos que esto relacionados com a maneira com que o sistema deve operar, onde se especificam as entradas e sadas do sistema e o relacionamento comportamental entre elas, assim como a iterao com o usurio. Desta forma, os requisitos encontrados para o ciclo atual do projeto AlphaDanfe so: (Tabela 1)
ID [RF01] Requisito Ler o arquivo XML devidamente autorizado da NFe Exibir o Danfe Prioridade (X) Essencial ( ) Importante ( ) Desejvel Descrio Permitir que o software leia a estrutura XML da NFe para que possa gerar a estrutura do Danfe. Exibir na tela a NFe conforme estrutura do Danfe segundo a legislao vigente. Gerar arquivo PDF tal qual a visualizao do Danfe em tela Possibilitar a gravao do Danfe em arquivo estrutural com formato proprietrio do sistema de gerenciamento de Danfe. Possibilitar a gravao do Danfe (em PDF e/ou formato prprio) em diversas mdias (HD, Pendrive, FTP, entre outros). Executar backups programados. Enviar os arquivos escolhidos pelo usurio para a conta de e-mail do cliente da empresa. Fornecer a possibilidade de armazenamento de informaes do cliente e Caso de Uso

[RF02]

(X) Essencial ( ) Importante ( ) Desejvel ( ) Essencial (X) Importante ( ) Desejvel ( ) Essencial ( ) Importante (X) Desejvel

[RF03]

Gerar arquivo PDF Gerar Danfe em formato prprio

[RF04]

[RF05]

Gravar os arquivos em mdias

( ) Essencial (X) Importante ( ) Desejvel

[RF06]

Backup

[RF06]

Enviar e-mail

( ) Essencial (X) Importante ( ) Desejvel ( ) Essencial (X) Importante ( ) Desejvel ( ) Essencial (X) Importante ( ) Desejvel

[RF07]

Armazenar dados

25

[RF08]

Imprimir Danfe

(X) Essencial ( ) Importante ( ) Desejvel

da prpria NFe em banco de dados e/ou pasta do sistema. Possibilitar a impresso do Danfe.

Tabela 1 Requisitos Funcionais

4.2.3. Requisitos No Funcionais do AlphaDanfe

Requisitos no funcionais: So restries sobre os servios ou as funes oferecidos pelo sistema. Entre eles destacam-se restries de tempo, restries sobre o processo de desenvolvimento, padres, entre outros. (SOMMERVILLE, 2003, p. 83).

Os requisitos no funcionais so aqueles que no esto especificamente relacionados com a funcionalidade do sistema. Eles impem restries no produto a ser desenvolvido e/ou no processo de desenvolvimento do sistema como tambm especificam restries externas as quais o produto precisa atender. Eles referem-se a questes como: segurana, confiabilidade, usabilidade, desempenho, entre outros. Desta forma, os requisitos no funcionais encontrados para o ciclo atual do projeto AlphaDanfe so: (Tabela 2)
ID [RNF01] Descrio Usabilidade: O usurio do sistema deve ter facilidade de uso do sistema, ou seja, a interface dever ser autoexplicativa, simples e de fcil operao, o que dispensar treinamento. Para confirmao disso, ser realizado um teste de usabilidade. Portabilidade: O sistema dever funcionar nas ltimas verses do sistema Windows. Escalabilidade: O sistema dever crescer acompanhando a legislao vigente, no que concerne ao sistema tributrio. Plataforma de desenvolvimento: o sistema ser desenvolvido na plataforma .NET da Microsoft com auxlio do banco de dados SQLServer Express. Licena: O sistema ser proprietrio e estar disponvel em duas verses: Freeware e Plus.
Tabela 2 Requisitos No Funcionais

[RNF02] [RNF03] [RNF04]

[RNF05]

Atividades Importantes do perodo: Treinamento com o gerente da empresa sobre o funcionamento da parte fiscal do sistema. O funcionamento do sistema de notas fiscais eletrnicas NF-e, notas fiscais de servios NFS-e e do documento de Conhecimento de Transporte eletrnico CT-e.

26

Explicou como funciona o processo de envio do arquivo de XML (nota fiscal eletrnica este arquivo), cada campo necessrio para o envio correto do arquivo para os servidores da Sefin. Explicou que para isso necessrio a instalao de um certificado digital adquirido atravs do contador da empresa. Este certificado possui os principais dados da empresa e utilizado para enviar os arquivos xml das notas fiscais eletrnicas.

4.2.4. Desenvolvimento da Aplicao


A partir dos requisitos j levantados, iniciamos o desenvolvimento da aplicao utilizando o Microsoft Visual Studio C# Express, verso gratuita do sistema. Basicamente, o objetivo do programa coletar as informaes armazenadas em um determinado arquivo XML o prprio NF-e e exibi-las em um formulrio para que possa ser lida e ou impressa. O XML (Extensible Markup Language linguagem de marcao extensvel) uma linguagem aberta utilizada para armazenar informaes em um arquivo e, assim, ser lido ou manipulado por qualquer computador equipado com software de manipulao de XML. Deitel (2003, p.724). Ainda conforme Deitel (2003, p. 724) o XML uma tecnologia aberta, portvel, amplamente suportada para descrever dados. O XML est se tornando o padro para armazenar dados intercambiveis entre aplicativos. Usando o XML, os autores de documentos podem descrever qualquer tipo de dados, incluindo formulas matemticas, instrues de configuraes de software, msicas, receitas e relatrios financeiros. Abaixo, temos um exemplo de nota Fiscal Eletrnica: (Figura 10).

27

Figura 10 Parte de um Documento XML (Nota Fiscal Eletrnica)

Como pode ser observado, o documento XML de NF-e composto por cdigos. Os dados ficam armazenados entre as "tags" (marcas) que so os nomes includos entre os sinais de menor e maior (<>). As tags delimitam os caracteres que compe os dados. Ex.: A linha nmero 28 deste XML: <xNome>SOCIEDADE BRASILEIRA DE MATEMATICA</xNome> Podemos facilmente identificar esta tag que armazena o nome de uma empresa. Ela inicia com "<xNome>" e Finaliza com "</xNome>". Tudo o que houver entre esses delimitadores de tag so os dados que identificam o nome uma determinada empresa. Logicamente, o individuo no tem a obrigatoriedade de decifrar os dados contidos em um documento de NF-e como este, assim, o programa trata de ler todas as informaes contidas no documento e exibe as informaes em um formato entendvel, o que chamamos de DANFE.

4.2.5. Interface grfica do "AlphaDanfe"


No final do perodo de estgio, com o sistema ainda incompleto, tnhamos o seguinte visual do sistema: (Figura 11 e Figura 12). 28

Figura 11 - Ecr inicial do programa Alpha Danfe

Figura 12 Desenvolvimento no Microsoft Visual Studio C# Express 2010

Ao fim do estgio, o sistema no foi concludo, a quantidade de horas no foram suficientes para realizar todo o projeto. Veja abaixo (Figura informaes no ecr:
13)

o sistema em operao mostrando parcialmente as

29

Figura 13 Abrindo um documento XML

Abaixo, (Figura 14) o sistema exibindo parcialmente documento XML selecionado:

Figura 14 Exibindo dados parciais de um documento XML

Todo o cdigo do sistema, em C#, est em anexo a este relatrio na seo "Anexos".

30

5. DISCUSSO DOS RESULTADOS


Ao final do estgio, no conseguimos concluir o sistema de gerao de Danfe. O sistema parou na fase de "Implementao" da cadeia sugerida pelo modelo de engenharia de software em cascata. (3.2 Engenharia de Software Modelo em Cascata) Foram realizadas as fases de anlise e projeto, a implementao ficou no estgio de em construo, faltaram ainda os estgios de testes e o de manuteno. Apenas no final destes ciclos o programa estaria funcional e pronto para o uso. A parte de implementao foi sem dvida a parte mais trabalhosa de todo o projeto. A grande dificuldade foi a de ler todos os dados de um arquivo XML. Os referidos no possuem uma formulao engessada (fixa), h informaes que constam em um XML que no constam e/ou no so obrigatrios constarem em outros. Isto foi o que causou a maior dificuldade que, aliado a falta de experincia dos estagirios, causou atrasos no tornando possvel a concluso do Sistema. O modelo em cascata, utilizado por muitas empresas de desenvolvimento de software, mostrou-se uma tcnica de engenharia de software eficiente. Contudo, h outras tcnicas chamadas tcnicas de desenvolvimento geis que mostram-se eficientes e menos burocrticas. Possuem o foco na qualidade, no quesito humano mais que em ferramentas e processos, em software funcionando mais que documentao abrangente e na capacidade de realizao de mudanas. Um destes modelos o chamado Modelo XP2. O modelo XP no foi testado durante o estgio.

6. CONSIDERAES FINAIS
O estgio de fundamental importncia para a vida profissional do acadmico. O perodo de realizao de atividades prticas trouxe a realidade da rotina de um trabalhador de Tecnologia da Informao. Durante o perodo de estgio, foram aplicados todos os conceitos vistos em sala de aula. Foram desempenhadas funes tcnicas, de vendas,

levantamento de estatsticas, solues de problemas e, por fim, a realizao de um projeto de construo de software. Este ultimo foi uma experincia prtica excitante que apesar de no ter sido concluda em sua plenitude serviu como exemplo para a prtica profissional.
2 eXtreme Programming: Programao Extrema um conjunto de prticas simples e concretas que se combinam em um processo de desenvolvimento gil.

31

Segundo Sommerville (2003, p.62) O gerenciamento eficaz de um projeto de software depende de um planejamento acurado do andamento do projeto., assim, a no concluso do projeto de desenvolvimento do AlphaDanfe deixa claro que se o planejamento e prazos no forem devidamente estudados certamente prejudicar o andamento do projeto, deixando evidente que A falta de prticas eficazes leva imprevisibilidade, a erros repetidos e esforos em vo.( MARTIN, 2011, p. 31). Contudo, no se considera um fracasso. Pelo contrrio, a experincia com erros cometidos uma didtica eficaz, ensina e previne novos erros. E assim mesmo, o tcnico em informtica est sempre aprendendo com seus erros, transformando seus fracassos em novas possibilidades. Desta forma, todo o estgio foi de extremo proveito e, certamente, servir de um bom inicio para a vida profissional.

32

7. REFERENCIAS
[1] PRESSMANN, Roger S. Engenharia de Software. So Paulo: Makron Books, 1995. [2] DEITEL H. M.; DEITEL P. J.; LISTIFIELD J.; NIETO T. R.; YAEGER C.; ZLATKINA M. C# Como Programar. So Paulo: Pearson Education, 2003. [3] SOMMERVILLE Ian, Engenharia de Software, So Paulo: Addison-Wesley, 6 edio, 2003. [4] MARTIN, Robert C.; MARTIN, Micah. Princpios, padres e prticas geis em C#. Porto Alegre: Bookman, 2011.

33

8. Anexos
Cdigo do Sistema em C#
using using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms; System.Xml; System.Collections;

namespace AphaDanfe { public partial class frmPrincipal : Form { // Variaveis da tag "ide" string ide_cUF = ""; string ide_naturezaOperacao = ""; string ide_serieNotaFiscal = ""; string ide_tipoNotaFiscal = ""; string ide_numeroNotaFiscal = ""; string ide_dataEmissao = ""; string ide_dataSaida = ""; string ide_horaSaidaEntrega = ""; //variaveis da tag "emit" string em_CNPJ = ""; string em_NomeEmitente = ""; string em_NomeFantasia = ""; string em_IE = ""; //variaveis da tag "/emit/enderEmit" string em_logradouro = ""; string em_numero = ""; string em_endEmitComplemento = ""; string em_Bairro = ""; string em_municipio = ""; string em_UF = ""; string em_CEP = ""; string em_fone = ""; // // ~IDENTIFICAAO DO EMITENTE // string identificacaoEmitente = ""; string enderecoEmitente = ""; string cidadeEmitente = ""; // //variaveis da tad "/dest" string dest_CPF_CNPJ = ""; string dest_Nome = ""; string dest_IE = ""; //variaveis da tag "/dest/enderDest" string dest_logradouro = ""; string dest_nro = ""; string dest_complemento = ""; string dest_bairro = ""; string dest_municipio = ""; string dest_UF = ""; string dest_CEP = "";

34

string dest_fone = ""; //ArrayList da tag "/prod" [produtos] ArrayList codPproduto = new ArrayList(); ArrayList nomeProduto = new ArrayList(); ArrayList ncmProduto = new ArrayList(); ArrayList cfopProduto = new ArrayList(); ArrayList unidProduto = new ArrayList(); ArrayList quantProduto = new ArrayList(); ArrayList valorUniProduto = new ArrayList(); ArrayList valorTtlProduto = new ArrayList();

public frmPrincipal() { InitializeComponent(); } private void tspPrincipal_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void mnuPrincipal_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void configurarToolStripMenuItem_Click(object sender, EventArgs e) { } private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { } private void tsbAbrirDanfe_Click(object sender, EventArgs e) { { //crio uma variavel que ir armazenar o caminho do diretorio onde se encontra o arquivo .XML string caminho_xml; //Crio uma condio para abrir a caixa de dialogo if (opf_abrir_danfe.ShowDialog() == System.Windows.Forms.DialogResult.OK) { //defino que o diretorio a ser inicializado o c: opf_abrir_danfe.InitialDirectory = "c:\\"; //seto a variavel para receber o caminho do arquivo .xml caminho_xml = opf_abrir_danfe.FileName; label_status_bar.Text = caminho_xml; //**inicio o acesso aos dados do xml ** XmlDocument dados_xml = new XmlDocument(); dados_xml.Load(caminho_xml);

35

/***************************************************IDENTIFICAO DA NFe******************************************* * * [ IDENTIFICAO ] Lendo o n "ide" - Identificao * ************************************************************************************** *****************************/ //Pegando elemento pelo nome da TAG [ide - idenfificao da NFe] XmlNodeList identList = dados_xml.GetElementsByTagName("ide"); //crio uma lista de itens do n "ide" foreach (XmlNode ide in identList) { // Pegando O cdigo da UF ide_cUF = ide["cUF"].InnerText; // Pegando a Natureza da Operao ide_naturezaOperacao = ide["natOp"].InnerText; // pegando a Serie da Nota Fiscal ide_serieNotaFiscal = ide["serie"].InnerText; // Pegando o Tipo de Nota Fiscal 1.Entrada 0.Sada ide_tipoNotaFiscal = ide["tpNF"].InnerText; // Pegando o Nmero da Nota Fiscal [nNF] ide_numeroNotaFiscal = ide["nNF"].InnerText; // Pegando a data de Emisso [dEmi] ide_dataEmissao = ide["dEmi"].InnerText; // Pegando a Data de SaidaEntrega [dSaiEnt] ide_dataSaida = ide["dSaiEnt"].InnerText; // Pegando a Hora Da Sada [hSaiEnt] ide_horaSaidaEntrega = ide["hSaiEnt"].InnerText; } //*****************************************************Fim da Coleta das informaes da NFe*********************************** //**********************************************************DADOS DO EMITENTE ***********************************************// /* * [ EMITENTE ] */ //************************************************************************************ ****************************************// //Pegando elemento pelo nome da TAG [emit - identificao do emitente] XmlNodeList emitList = dados_xml.GetElementsByTagName("emit"); //crio uma lista de itens do n "emit" foreach (XmlNode emit in emitList) { // Pegando o CNPJ do Emitente [CNPJ] em_CNPJ = emit["CNPJ"].InnerText; // Pegando a Nome do Emitente [xNome] em_NomeEmitente = emit["xNome"].InnerText; // Pegando a inscrio estadual do emitente [IE] em_IE = emit["IE"].InnerText; // Pegando o Nome Fantasia do Emitente [xFant] try { em_NomeFantasia = emit["xFant"].InnerText; } catch (Exception) { } }

36

// // [ ENDEREO DO EMITENTE] caminho[/emit/enderEmit] // //Pegando elemento pelo nome da TAG [/emit/enderEmit - endereo do emitente] XmlNodeList enderEmitList = dados_xml.GetElementsByTagName("enderEmit"); //crio uma lista de itens do n "/emit/enderEmit" foreach (XmlNode enderEmit in enderEmitList) { // pegando o logradouro do emitente [xLgr] em_logradouro = enderEmit["xLgr"].InnerText; // Pegando o Numero do Endereo do Emitente [nro] em_numero = enderEmit["nro"].InnerText; // Pegando o Bairro do Emitente [xBairro] em_Bairro = enderEmit["xBairro"].InnerText; // Pegando o Nome do Municipio do Emitente[xMun] em_municipio = enderEmit["xMun"].InnerText; // Pegando a UF do Emitente [UF] em_UF = enderEmit["UF"].InnerText; // Pegando o CEP do remetente [CEP] em_CEP = enderEmit["CEP"].InnerText; // Pegando o telefone do emitente [fone] em_fone = enderEmit["fone"].InnerText; // Pegando o Complemento do endereo do emitente [xCpl] try { em_endEmitComplemento = enderEmit["xCpl"].InnerText; } catch (Exception) { } //********************************CONCATENANDO OS DADOS DO EMITENTE PARA EXIBIR NO RELATRIO******************************-// //-----------------------------------------------------------------------------------------------------------------------//Juntando o nome do emitente com o nome fantasia do mesmo e guardando em uma unica variavel // if (em_NomeFantasia != null) //se o nome faantasia do emitente no for nulo { identificacaoEmitente = em_NomeEmitente + "-" + em_NomeFantasia; //junta o nome com o nome fantasia separado por "-" } else//seno, se o nome fantasia for nulo, { identificacaoEmitente = em_NomeEmitente; }//adiciona apenas o nome do emitente. //-------------------------------------------------------------------------------------------------------------------------//-------------------------------------------------------------------------------------------------------------------------//juntando as variaveis de endereo do emitente para colocar no relatorio // enderecoEmitente = em_logradouro + ", " + em_numero + " - " + em_endEmitComplemento + " - " + em_Bairro; //--------------------------------------------------------------------------------------------------------------------------

37

//Juntando as variaveis de municipio para colocar no relatorrio // cidadeEmitente = em_CEP + " " + em_municipio + " - " + em_UF; //******************************************************Fim das coletas das informaoes do Emitente****************************** } /***********************************************Coleta de informaes do destinatrio************************************************ * [ DESTINATRIO] caminho [/dest] */ //************************************************************************************ *********************************************** //Pegando elemento pelo nome da TAG [/dest - dados do destinatario] XmlNodeList destList = dados_xml.GetElementsByTagName("dest"); //crio uma lista de itens do n "/dest" foreach (XmlNode dest in destList) { //pegando o nome do destinatario [xNome] dest_Nome = dest["xNome"].InnerText; //pegando o IE do Destinatario [IE] dest_IE = dest["IE"].InnerText; } // Itens de CNPJ ou CPF. Pode vir um ou outro. XmlNodeList destCPF_CNPJList = dados_xml.GetElementsByTagName("dest"); //crio uma lista de itens do n "/dest" foreach (XmlNode destCPF_CNPJ in destCPF_CNPJList) //pegando o CPF do Destinatario [CPF] ou [CNPJ] { try { dest_CPF_CNPJ = destCPF_CNPJ["CPF"].InnerText; } catch (Exception) { dest_CPF_CNPJ = destCPF_CNPJ["CNPJ"].InnerText; } }

/* * [ ENDEREO DESTINATRIO] caminho [/dest/enderDest] */ //Pegando elemento pelo nome da TAG [/dest/enderDest - endereo do destinatario] XmlNodeList enderDestList = dados_xml.GetElementsByTagName("enderDest"); //crio uma lista de itens do n "/dest/enderDest" foreach (XmlNode enderDest in enderDestList) { //pegndo o logradouro do Destinatrio ["xLgr"] dest_logradouro = enderDest["xLgr"].InnerText; //pegando o numero da casa [nro] dest_nro = enderDest["nro"].InnerText; //pegando o Bairro do destinatario [xBairro] dest_bairro = enderDest["xBairro"].InnerText; //pegando o municipio do destinatario [xMun] dest_municipio = enderDest["xMun"].InnerText; //pegando o UF do destinatario [UF] dest_UF = enderDest["UF"].InnerText; }

38

//Itens do endereo do destinatrio que podem estar auxentes em algumas xmls XmlNodeList enderAuxenteDestList = dados_xml.GetElementsByTagName("enderDest"); //crio uma lista de itens do n "/dest/enderDest" foreach (XmlNode enderAuxenteDest in enderAuxenteDestList) { try { //pegando o Complemento de endereo [xCpl] do Destinatrio dest_complemento = enderAuxenteDest["xCpl"].InnerText; } catch (Exception) { } try { //pegando o CEP do destinatario [CEP] dest_CEP = enderAuxenteDest["CEP"].InnerText; } catch (Exception) { } try { //pegando o telefone do destinatario [fone] dest_fone = enderAuxenteDest["fone"].InnerText; } catch (Exception) { } }

////////////////////////////////////////////// // PRODUTOS DA NOTA FISCAL ELETRONICA // ////////////////////////////////////////////// //Pegando elemento pelo nome da TAG [/det nItem="1"/prod produtos da NFe] XmlNodeList prodList = dados_xml.GetElementsByTagName("prod"); //crio uma lista de itens apartir do n "/prod" foreach (XmlNode prod in prodList) { //adicionando o codigo [cProd] do produto arralist codPproduto.Add(prod["cProd"].InnerText); //adicionando o nome [xProd] do produto arralist nomeProduto.Add(prod["xProd"].InnerText); //adicionando o NCM [NCM] do produto arralist ncmProduto.Add(prod["NCM"].InnerText); //adicionando o CFOP [CFOP] do produto arralist cfopProduto.Add(prod["CFOP"].InnerText); //adicionando Unidade [uCom] do produto arralist unidProduto.Add(prod["uCom"].InnerText); //adicionando a Quantidade [qCom] do produto arralist quantProduto.Add(prod["qCom"].InnerText); //adicionando o Valor Unitario [vUnCom] do produto arralist valorUniProduto.Add(prod["vUnCom"].InnerText); //adicionando o Valor Total [vProd] do produto arralist valorTtlProduto.Add(prod["vProd"].InnerText); } /************************************************************************************* **********************

39

* ITENS DA NFe

CRIANDO UMA BASE DE DADOS XML PARA ARMAZENAR OS

************************************************************************************** ********************* * leia-me * Para inserir os dados obtidos acima em um relatorio, precisei criar dois arquivos xml(BD.xml e Produtos.xml) * e os adicionei ao projeto na pasta resources, estes tem o objetivo de armazenar as informaoes coletadas e, * em seguida, criei datasets que buscavam essas informes e jogavam no relatorio. * Os dois arquivos xml geraram dois arquivos "xsd"(dados.xsd e dadosProdutos.xsd) que tambem foram adicionados * ao progeto com o objetivo de servirem de banco de dados (em tempo de execuo) para o relatrio. * Adicioei tambem ao progeto um item de relatorio de o nomeei "Danfe.rdlc" que o arquivo de configuraes do relatrio. * Depois adicionei um "reportView" e o configurei com as informaes do item de relatorio "Danfe.rdcl". ************************************************************************************** **********************/ //O arquivo BD.xml j esta criado na pasta raiz do progrma /debug //manipulando o arquivo xml BD.xml XmlTextWriter nfe = new XmlTextWriter("BD.xml", null); //inicio o documento nfe.WriteStartDocument(); //crio o n - tag - "Identificacao_NFE" nfe.WriteStartElement("Identificacao_NFE"); //crio o n "Identificao_NFE/UF" e seto o valor dela com a variavel ide_cUF nfe.WriteElementString("Id_UF", ide_cUF); nfe.WriteElementString("Id_NaturezaOperacao", ide_naturezaOperacao); nfe.WriteElementString("Id_NserieNF", ide_serieNotaFiscal); nfe.WriteElementString("Id_TipoNF", ide_tipoNotaFiscal); nfe.WriteElementString("Id_NumeroNF", ide_numeroNotaFiscal); nfe.WriteElementString("Id_DataEmissao", ide_dataEmissao); nfe.WriteElementString("Id_DataSaida", ide_dataSaida); nfe.WriteElementString("Id_HoraSaidaEntrega", ide_horaSaidaEntrega); //inicio da insero dos dados do Emitente nfe.WriteElementString("Emi_CNPJ", em_CNPJ); nfe.WriteElementString("Emi_identificacao", identificacaoEmitente); nfe.WriteElementString("Emi_IE", em_IE); nfe.WriteElementString("Emi_endereco", enderecoEmitente); nfe.WriteElementString("Emi_cidade", cidadeEmitente); nfe.WriteElementString("Emi_Fone", em_fone); //inicio da insero das informaes do Destinatrio nfe.WriteElementString("Dest_CPF_CNPJ", dest_CPF_CNPJ); nfe.WriteElementString("Dest_Nome", dest_Nome); nfe.WriteElementString("Dest_IE", dest_IE); nfe.WriteElementString("Dest_Logradouro", dest_logradouro); nfe.WriteElementString("Dest_NumeroEnd", dest_nro); nfe.WriteElementString("Dest_ComplementoEnd", dest_complemento); nfe.WriteElementString("Dest_Bairro", dest_bairro);

40

nfe.WriteElementString("Dest_Municipio", dest_municipio); nfe.WriteElementString("Dest_UF", dest_UF); nfe.WriteElementString("Dest_CEP", dest_CEP); nfe.WriteElementString("Dest_Fone", dest_fone); //Termino a insero de elementos - tag - "Identificacao_NFE" nfe.WriteEndElement(); //fecho o arquivo BD.xml nfe.Close(); // //CRIANDO A FUNO QUE ADICIONA UMA BASE DE DADOS (DATASET) DO ARQUIVO BD.XML // //crio o dataset bd DataSet bd = new DataSet(); // o dataset bd l o arquivo xml bd.ReadXml("BD.xml"); //o dataset bd cria um esquema de dados do tipo xml que um arquivo com o nome de dados.xsd bd.WriteXmlSchema("dados.xsd"); //************************************************************************************ **********

//************************************************************************************ *********** // // Inicio a criao Base de dados Produtos no XML // //************************************************************************************ *********** //manipulando o arquivo Produtos.xml previamente criado na raiz do programa /debug XmlTextWriter produt = new XmlTextWriter("Produtos.xml", null); //inicio o documento produt.WriteStartDocument(); produt.WriteStartElement("Produtos"); //inicio a insero das tags. Pego uma lista qualquer para serivir de Base, nesse caso, a lista codProduto //para i igual a 0, enquanto a quantidade de itens da listview for maior que i, incrementa i for (int i = 0; codPproduto.Count > i; i++) { //adiciono mais uma tag com o nome de item produt.WriteStartElement("item"); //dou a tag "item" um atributo de nome "prod" que serivr como contador de itens da nfe (i+1); produt.WriteStartAttribute("prod" + (i + 1)); //A tag item receber outro atributo com nome de Prod_Cod que ter o valor do indice [i] da lista codProduto produt.WriteAttributeString("Prod_Cod", Convert.ToString(codPproduto[i])); //A tag item receber outro atributo com nome de Prod_Prod_Nome que ter o valor do indice [i] da lista nomeProduto produt.WriteAttributeString("Prod_Nome", Convert.ToString(nomeProduto[i]));

41

produt.WriteAttributeString("Prod_NCM", Convert.ToString(ncmProduto[i])); produt.WriteAttributeString("Prod_CFOP", Convert.ToString(cfopProduto[i])); produt.WriteAttributeString("Prod_UN", Convert.ToString(unidProduto[i])); produt.WriteAttributeString("Prod_Quant", Convert.ToString(quantProduto[i])); produt.WriteAttributeString("Prod_ValorUnit", Convert.ToString(valorUniProduto[i])); produt.WriteAttributeString("Prod_ValorTotal", Convert.ToString(valorTtlProduto[i])); produt.WriteEndElement(); } //Termino a insero de elementos - tag - "Identificacao_NFE" produt.WriteEndElement(); //fecho o arquivo BD.xml produt.Close(); // //CRIANDO A FUNO QUE ADICIONA UMA BASE DE DADOS (DATASET) DO ARQUIVO Produtos.XML // //crio o dataset bdProd DataSet bdProd = new DataSet(); // o dataset bd l o arquivo xml bdProd.ReadXml("Produtos.xml"); //o dataset bd cria um esquema de dados do tipo xml que um arquivo com o nome de dados.xsd bdProd.WriteXmlSchema("dadosProdutos.xsd"); /* INFORMAES PARA EU LEMBRAR DE COMO FIZ */ //nesse ponto do codigo eu executei a aplicao e li um arquivo de xml de nota fiscal. //ento o programa gereou o arquivo de esquema "dados.xsd". //fechei o programa e reconstrui a aplicao. Cliquei com o botao direito no nome do progeto no Soluction Explorer e cliquei em Rebuild //Depois adicionei um arquivo de relatrio. Cliquei no Nome do projeto do solucion explorer e cliquei em adicionar novo idem -> item de relatorio. Dei o nome de "danfe.rdlc" //Adicionei uma fonte de dados do tipo Objeto. //tomei por base o tutorial "Relatrio a partir de um documento xml.pdf" /************************************************************************************* **********/ //torno o painel principal vivivel panel1.Visible = true;

} } } /* Utilizei o evento formClosed do form para limpar as informaes do BD.xml*/ private void frmPrincipal_FormClosed(object sender, FormClosedEventArgs e) { /*//limpa o arquivo bd.xml XmlTextWriter nfe = new XmlTextWriter("BD.xml", null);

42

nfe.WriteStartDocument(); nfe.WriteStartElement("Identificacao_NFE"); nfe.WriteElementString("UF", ""); nfe.WriteElementString("NaturezaOperacao", ""); nfe.WriteElementString("NserieNF", ""); nfe.WriteElementString("TipoNF", ""); nfe.WriteElementString("NumeroNF", ""); nfe.WriteElementString("DataEmissao",""); nfe.WriteElementString("DataSaida", ""); nfe.WriteElementString("HoraSaidaEntrega", ""); nfe.WriteEndElement(); nfe.Close(); */ } private void frmPrincipal_Load(object sender, EventArgs e) { DataSet bd = new DataSet(); bd.ReadXml("BD.xml"); Identificacao_NFEBindingSource.DataSource = bd; DataSet bdProduto = new DataSet(); bdProduto.ReadXml("Produtos.Xml"); itemBindingSource.DataSource = bdProduto; this.reportViewer1.RefreshReport(); } private void reportViewer1_Load(object sender, EventArgs e) { } } }

43

Relatrio de Anlise de Atendimentos Perodo de Funcionamento de 09-2010 14-10-2011, 14:40

Quantidade por Tipo de Atendimento at o dia 18/10/2011, 08:30 horas

= 2596

Atualizao de Verso Desenvolvimento Duvidas Erros Financeiro Importao de Dados Instalao Instalao Certificado Digital Instalao de Estao Liberao Pr-Venda Ps-Venda Reatualizao Recebimento Sugesto de Melhoria Suporte Suporte em Micro Testes de Verso Treinamento Treinamento de Implantao

Ttl Geral 209 12 57 86 6 2 55 22 40 7 9 12 7 33 55 1677 74 4 168 61

% 8,05 0,46 2,20 3,31 0,23 0,08 2,12 0,85 1,54 0,27 0,35 0,46 0,27 1,27 2,12 64,60 2,85 0,15 6,47 2,35

Allan
40 52 56

Todo o Sistema % Pessoal % 19,14 7,29 91,23 65,12 9,47 10,20

12 13

21,82 32,50

2,19 2,37

2 11 17 199 60 3 60 24 549

28,57 33,33 30,91 11,87 81,08 75,00 35,71 39,34

0,36 2,00 3,10 36,25 10,93 0,55 10,93 4,37

Ttl de Atendimentos

Todo o Sistema Atualizao de Verso Desenvolvimento Duvidas Erros Financeiro Importao de Dados Instalao Instalao Certificado Digital Instalao de Estao Liberao Pr-Venda Ps-Venda Ttl Geral 209 12 57 86 6 2 55 22 40 7 9 12 % 8,05 0,46 2,20 3,31 0,23 0,08 2,12 0,85 1,54 0,27 0,35 0,46

Edinaldo %
2 2 2

Pessoal % 0,96 0,68 16,67 0,68 2,33 0,68

6 1 5 4 2 5

10,91 4,55 12,50 57,14 22,22 41,67

2,05 0,34 1,71 1,37 0,68 1,71 44

Reatualizao Recebimento Sugesto de Melhoria Suporte Suporte em Micro Testes de Verso Treinamento Treinamento de Implantao

7 33 55 1677 74 4 168 61

0,27 1,27 2,12 64,60 2,85 0,15 6,47 2,35

1 6 4 202 12 18 21 293

14,29 18,18 7,27 12,05 16,22 10,71 34,43

0,34 2,05 1,37 68,94 4,10 6,14 7,17

Ttl de Atendimentos

Atualizao de Verso Desenvolvimento Duvidas Erros Financeiro Importao de Dados Instalao Instalao Certificado Digital Instalao de Estao Liberao Pr-Venda Ps-Venda Reatualizao Recebimento Sugesto de Melhoria Suporte Suporte em Micro Testes de Verso Treinamento Treinamento de Implantao

Ttl Geral 209 12 57 86 6 2 55 22 40 7 9 12 7 33 55 1677 74 4 168 61

% 8,05 0,46 2,20 3,31 0,23 0,08 2,12 0,85 1,54 0,27 0,35 0,46 0,27 1,27 2,12 64,60 2,85 0,15 6,47 2,35

Hlio
30 1 2 8 1 31 2 11 3

Todo o Sistema Pessoal % % 14,35 6,07 8,33 0,20 3,51 0,40 9,30 1,62 16,67 0,20 0,00 0,00 56,36 6,28 9,09 0,40 27,50 2,23 42,86 0,61

3 13 2 340 1 35 11 494

42,86 39,39 3,64 20,27 1,35 20,83 18,03

0,61 2,63 0,40 68,83 0,20 7,09 2,23

Ttl de Atendimentos

Todo o Sistema Atualizao de Verso Desenvolvimento Duvidas Erros Financeiro Importao de Dados Ttl Geral 209 12 57 86 6 2 % 8,05 0,46 2,20 3,31 0,23 0,08

Nei Neri %
77 5 7 4 2

Pessoal % 36,84 14,95 41,67 0,97 1,36 0,78 0,39 45

8,14 66,67 100,00

Instalao Instalao Certificado Digital Instalao de Estao Liberao Pr-Venda Ps-Venda Reatualizao Recebimento Sugesto de Melhoria Suporte Suporte em Micro Testes de Verso Treinamento Treinamento de Implantao

55 22 40 7 9 12 7 33 55 1677 74 4 168 61

2,12 0,85 1,54 0,27 0,35 0,46 0,27 1,27 2,12 64,60 2,85 0,15 6,47 2,35

2 7 3 3 12 384 1 7 1 515

5,00 77,78 25,00 0,00 9,09 21,82 22,90 25,00 4,17 1,64

0,39 1,36 0,58 0,00 0,58 2,33 74,56 0,19 1,36 0,19

Ttl de Atendimentos

Atualizao de Verso Desenvolvimento Duvidas Erros Financeiro Importao de Dados Instalao Instalao Certificado Digital Instalao de Estao Liberao Pr-Venda Ps-Venda Reatualizao Recebimento Sugesto de Melhoria Suporte Suporte em Micro Testes de Verso Treinamento Treinamento de Implantao

Ttl Geral 209 12 57 86 6 2 55 22 40 7 9 12 7 33 55 1677 74 4 168 61

% 8,05 0,46 2,20 3,31 0,23 0,08 2,12 0,85 1,54 0,27 0,35 0,46 0,27 1,27 2,12 64,60 2,85 0,15 6,47 2,35

Thiago
60 4 3 13 1 6 19 9

Todo o Sistema Pessoal % % 28,71 8,05 33,33 0,54 5,26 0,40 15,12 1,74 16,67 0,13 0,00 0,00 10,91 0,81 86,36 2,55 22,50 1,21

4 1 20 552 1 48 4 745

33,33 14,29 0,00 36,36 32,92 1,35 28,57 6,56

0,54 0,13 0,00 2,68 74,09 0,13 6,44 0,54

Ttl de Atendimentos

46

Quantitativo de atendimentos Total de Atendimentos Por Usurios Usuario Allan Edinaldo Hlio Nei Neri Thiago TTL de Atendimentos Qtivo Geral 544 292 494 515 741 % 21,04 11,29 19,10 19,91 28,65 Q Aberto 11 15 8 14 79 % 8,66 11,81 6,30 11,02 62,20 Q Fechado % 533 21,68 277 11,26 486 19,76 501 20,37 662 26,92 2459

2586 TTL Aberto

127 TTL Fechado

Quantitativo Por Formas de Atendimento Usurios Tipos Acesso Remoto Chat E-Mail In-Loco MSN Na Alpha Skype Telefone QTD QTD QTD QTD QTD QTD QTD QTD Qtivo Geral 1004 18 57 1202 3 59 9 234 % 38,82 0,70 2,20 46,48 0,12 2,28 0,35 9,05 TTL Allan 16 2,94 26 8,90 17 3,44 544 TTL Edinaldo 292 TTL Hlio 494 TTL Nei Neri 3 403 1 0,55 74,08 0,18 6 1,21 20 5 104 3,88 0,97 20,19 112 38,36 Allan 121 % 22,24 Edinaldo 5 % 1,71 Hlio 153 3 1 314 % 30,97 0,61 0,20 63,56 Nei Neri 185 5 48 148 % 35,92 0,97 9,32 28,74 Thiago 5 5 2 33 4 71 741 % 0,67 0,67 0,27 4,45 0,54 9,58 149 51,03 396 53,44

225 30,36

515 TTL Thiago

Você também pode gostar