Programa para monitoramento de produtos...

93
UNIVERSIDADE FEDERAL DE SANTA CATARINA Sistema para avaliação de produtos pré- medidos SAPPM Cassiano Wesley Seugling

Transcript of Programa para monitoramento de produtos...

Page 1: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

UNIVERSIDADE FEDERAL DE SANTA CATARINA

Sistema para avaliação de produtos pré-medidosSAPPM

Cassiano Wesley Seugling

Florianópolis - SC

2007/2

Page 2: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

UNIVERSIDADE FEDERAL DE SANTA CATARINADEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

CURSO DE SISTEMAS DE INFORMAÇÃO

Sistema para avaliação de produtos pré-medidosSAPPM

Cassiano Wesley Seugling

Trabalho de conclusão de curso apresentado como parte dos requisitos para a obtenção do grau de Bacharel em Sistemas de Informação.

Florianópolis - SC

2007/2

2

Page 3: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

Cassiano Wesley Seugling

Sistema para avaliação de produtos pré-medidosSAPPM

Trabalho de conclusão de curso apresentado como parte dos requisitos para aobtenção do grau de Bacharel em Sistemas de Informação

Banca Examinadora:

_________________________________Prof. Dr. Dalton Francisco de AndradeUniversidade Federal de Santa Catarina

Orientador

______________________________Profa. Maria Marta Leite

Universidade Federal de Santa Catarina

______________________________Prof. Dr. Ronaldo dos Santos Mello

Universidade Federal de Santa Catarina

3

Page 4: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

RESUMO

A credibilidade da medição dos produtos pré-medidos no mercado atual é essencial

e necessária onde quer que exista conflito de interesse, ou onde quer que medições

incorretas levem a riscos indesejáveis aos indivíduos ou a sociedade.

Hoje existe a necessidade de assegurar um comércio justo protegendo o

consumidor enquanto comprador de produtos, e o vendedor, enquanto fornecedor destes.

Assim este trabalho tem como objetivo desenvolver uma aplicação para avaliação

do conteúdo efetivo de produtos pré-medidos, aqueles produzidos e medidos sem a

presença do consumidor e com conteúdo nominal igual, comercializados nas grandezas de

massa e volume, sob o ponto de vista do setor produtivo.

O sistema deverá avaliar se o produto fabricado está de acordo com os

Regulamentos Técnicos Metrológicos do INMETRO, antes de ser exposto a

comercialização.

Espera-se que o setor produtivo possa reduzir seus custos com um maior

aproveitamento das tolerâncias permitidas, e minimizar a incidência da entrega de

produtos não-conformes ao mercado.

Palavras-chave: Produto pré-medido; Indicação quantitativa; INMETRO.

4

Page 5: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

ABSTRACT

 The credibility of the measurement of the products daily pay measured in the

current market is essential and necessary where there is conflict of interest, or where 

incorrect measurements lead to undesirable risks to the individuals or the society.

 Today there is the necessity of securing a just commerce protecting the consumer

while buyer of products, and the seller, while supplier of this.

The main goal of this work is to develop an application for evaluation of the effective

content of daily pay-measured products, those produced and measured without the

presence of the consumer and with equal nominal content, commercialized in the

largenesses of mass and volume, under the point of view of the productive sector.

The system should have to evaluate if the manufactured product is in accordance with the

Regulations Metrological Technician of the INMETRO, or not before being displayed to

commercialization.

One expects that the productive sector can reduce its costs with a bigger

exploitation of the allowed tolerances, and minimize the incidence of the delivery of not-in

agreement products to the market.

Word-key: daily pay-measured product, quantitative indication, INMETRO.

5

Page 6: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

LISTAS DE FIGURAS

FIGURA 1: Usuários do sistema p. 23

FIGURA 2: Pacote da área do usuário p. 24

FIGURA 3: Diagrama de caso de uso para produto p. 25

FIGURA 4: Diagrama de caso de uso para técnicos p. 25

FIGURA 5: Diagrama de caso de uso para valores brutos p. 26

FIGURA 6: Pacote de área do laudo p. 26

FIGURA 7: Diagrama de caso de uso para valores brutos p. 27

FIGURA 8: Diagrama de caso de uso para valores de embalagens p. 28

FIGURA 9: Modelo conceitual p. 28

FIGURA 10: Tela inicial p. 29

FIGURA 11: Tela cadastro técnico p. 30

FIGURA 12: Tela cadastro de produto p. 30

FIGURA 13: Tela laudos p. 31

FIGURA 14: Tela embalagem p. 32

FIGURA 15: Tela valor bruto p. 32

FIGURA 16: Relatório do exame p. 33

FIGURA 17: Diagrama de entidade relacional p. 34

FIGURA 18: Modelagem do banco de dados p. 35

6

Page 7: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

LISTAS DE TABELAS

TABELA 1: Tolerância para o critério individual p. 16

TABELA 2: Número de unidades toleradas abaixo do critério individual p. 17

TABELA 3: Constante utilizada no critério da média p. 18

7

Page 8: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

LISTAS DE ABREVIATURAS

INMETRO - Instituto Nacional de Metrologia, Normalização e Qualidade Industrial

R.T.M. - Regulamento Técnico Metrológico

CONMETRO - Conselho Nacional de Metrologia, Normalização e Qualidade Industrial

SINMETRO - Sistema Nacional de Metrologia, Normalização e Qualidade Industrial

S.I. - Sistema Internacional de Unidades

IPEM - Instituto de Pesos e Medidas

ER - Entidade Relacionamento

SQL - Structured Query Language

UML - Unified Modeling Language

OIML - Organização Internacional de Metrologia Legal

8

Page 9: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

SUMÁRIO

1 Introdução p. 101.1 Objetivos p. 11

1.1.1 Objetivo Geral p. 111.1.2 Objetivos Específicos p. 11

1.2 Justificativa p. 111.3 Metodologia p. 11

2 INMETRO p. 132.1 Metrologia Legal p. 132.2 Fiscalização p 14

3 O Procedimento de Avaliação p. 153.1 Os Critérios de Aprovação do Produto p. 15

3.1.1 Critério Individual p. 163.1.2 Critério para a Média p. 17

4 Passos para o Desenvolvimento do Aplicativo p. 194.1 A Fase Planejar e Elaborar p. 194.2 A Fase Construir p. 204.3 A Fase Analisar p. 214.4 A Fase Projetar p. 224.5 A Fase Testar p. 224.6 A Fase Instalar p. 22

5 Sistema Proposto p. 235.1 Definição dos Usuários do Sistema p. 235.2 Definindo as Áreas do Sistema e os Casos de Uso p. 24

5.2.1 Produto p. 245.2.2 Técnico p. 255.2.3 Laudo p. 26

5.3 Área do Laudo p. 265.3.1 Valores do Peso Bruto do Produto p. 275.3.2 Valores do Peso da Embalagem Vazia do Produto p. 27

5.4 Modelo Conceitual p. 286 Implementação p. 296.1 A Abertura do Sistema p. 29

6.2 Tela Cadastro Técnico p. 306.3 Tela Cadastro de Produto p. 306.4 Tela Laudos p. 316.5 Tela Embalagem p. 316.6 Tela Valores Bruto p. 326.7 Relatório p. 33

7 Banco de Dados do SAPPM p. 348 Conclusão p. 369 Referências p. 3710 Anexos p. 38

9

Page 10: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

1 INTRODUÇÃO

O surgimento das grandes redes de supermercados, na década de 70, marcou o

início da massificação de produtos comercializados em acondicionamentos próprios, nos

quais a clareza da indicação da quantidade contida em cada produto assumia grande

importância.

O controle metrológico do Instituto Nacional de Metrologia, Normalização e

Qualidade Industrial - INMETRO - abrange todos os tipos de produtos pré-medidos. Em

algumas mercadorias, como fios elétricos e papel higiênico, por exemplo, é verificado o

comprimento. Em outros produtos, como palitos de dente e fósforos, é verificado o número

de unidades. Entretanto, a grande maioria do trabalho recai sobre produtos com indicação

em unidade de massa ou volume, principalmente os que integram a cesta básica.

Hoje existe um grande número de empresas sendo autuadas pelo INMETRO em

relação a quantidade efetiva de produtos pré-medidos. Se um produto for comercializado

com sua quantidade nominal inferior a indicação quantitativa, o consumidor perde ao

adquirir o produto, pois está pagando por uma quantidade que não está levando. Por outro

lado, se o produto for comercializado com a quantidade nominal superior a indicação

quantitativa, a empresa que fabricou o produto perde.

Dessa forma, o sistema a ser desenvolvido buscará informar se os produtos

fabricados estão de acordo com os Regulamentos Técnicos Metrológicos do INMETRO de

modo que os produtos fabricados sejam disponibilizados para comercialização, sem que

haja prejuízo para o fabricante ou para o consumidor. O produto será analisado após sua

produção e antes de ser comercializado, ou seja, dentro da fábrica.

Os consumidores se beneficiarão pois comprarão produtos com conteúdo nominal

correto, conforme indicado na embalagem do produto. Nas empresas haverá mais

controle, minimizando desperdícios do produto.

10

Page 11: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

1.1 OBJETIVOS

1.1.1 OBJETIVO GERAL

O objetivo geral deste trabalho é desenvolver uma aplicação para viabilizar a

avaliação do conteúdo nominal de produtos pré-medidos fabricados nas grandezas de

massa e volume. O aplicativo deve informar ao fabricante informações sobre a aprovação

ou não do lote de produtos segundo as respectivas especificações técnicas, facilitando a

decisão de comercialização.

1.1.2 OBJETIVOS ESPECÍFICOS

Os objetivos específicos do presente trabalho são:

a) Estudar os Regulamentos Técnicos Metrológicos do INMETRO;

b) Análise e projeto do sistema utilizando UML;

c) Implementação do aplicativo utilizando linguagem orientada a objetos;

d) Construção de um modelo relacional ER e implementação utilizando Banco de Dados.

1.2 JUSTIFICATIVA

A grande maioria das empresas expõe seus produtos a venda sem que haja qualquer

tipo de análise metrológica, e acabam sendo autuadas por órgãos competentes. Acredita-

se na grande importância em relacionar o conhecimento adquirido no curso de Sistemas

de Informação com o processo de análise metrológica, criando um aplicativo que poderá

dar garantia às empresas de que os produtos expostos a venda estejam de acordo com os

Regulamentos Técnicos Metrológicos (R.T.M.) do INMETRO.

1.3 METODOLOGIA

Todo sistema precisa ser bem pensado e analisado, a fim de se obter a melhor

solução para um determinado problema.

O objetivo é de construir um aplicativo para computadores utilizando os conceitos

de programação orientada a objetos. Porém, a construção de um bom programa orientado

11

Page 12: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

a objetos vai além do saber dominar uma linguagem orientada a objetos, como por

exemplo, Java ou Delphi. Este é apenas o primeiro passo para construção. É fundamental

para obtenção do sucesso do trabalho uma boa análise e um bom projeto.

Assim, o trabalho se baseará na metodologia proposta no livro de Craig Larman:

Utilizando UML e Padrões. Este livro apresenta um exemplo de processo de

desenvolvimento, o qual descreve uma possível ordem de atividades e um ciclo de vida de

desenvolvimento. Contudo, ele não prescreve um processo ou metodologia definitiva; ele

fornece um exemplo de passos comuns.

No presente trabalho iremos nos ater somente a parte da análise do projeto

descrevendo então requisitos do sistema, bem como casos de uso e por fim o modelo

conceitual.

Para isso será realizado um estudo sobre os R. T. M. do INMETRO, para identificar

os requisitos e elaborar as etapas de construção do aplicativo.

Posteriormente serão definidas as ferramentas e as linguagens a serem utilizada no

desenvolvimento do aplicativo a ser implementado.

12

Page 13: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

2 INMETRO

O Instituto Nacional de Metrologia, Normalização e Qualidade Industrial, é uma

autarquia federal, vinculada ao Ministério do Desenvolvimento, Indústria e Comércio

Exterior, que atua como Secretaria Executiva do Conselho Nacional de Metrologia,

Normalização e Qualidade Industrial (Conmetro), colegiado interministerial, que é o órgão

normativo do Sistema Nacional de Metrologia, Normalização e Qualidade Industrial

(Sinmetro).

Durante o Primeiro Império, foram feitas diversas tentativas de uniformização das

unidades de medir brasileiras. Em 26 de junho de 1862, Dom Pedro II promulgava a Lei

Imperial nº 1157 e com ela oficializava, em todo o território nacional, o sistema métrico

decimal francês. Com o crescimento industrial do século seguinte, fazia-se necessário

criar no país instrumentos mais eficazes de controle que viessem a impulsionar e proteger

produtos e consumidores.

Em 1961 foi criado o Instituto Nacional de Pesos e Medidas (INPM), que implantou

a rede Nacional de Metrologia Legal, os atuais IPEMs, e instituiu o Sistema Internacional

de Unidades (S.I.) em todo o território nacional. Logo, porém, verificou-se que isso não era

o bastante. Era necessário acompanhar o mundo na sua corrida tecnológica, no

aperfeiçoamento, na exatidão e, principalmente, no atendimento às exigências do

consumidor. Era necessário qualidade.

Em 11 de dezembro de 1973, nascia o Instituto Nacional de Metrologia,

Normalização e Qualidade Industrial - INMETRO. No âmbito de sua ampla missão

institucional, o INMETRO objetiva fortalecer as empresas nacionais, aumentando sua

produtividade por meio da adoção de mecanismos destinados à melhoria da qualidade de

produtos e serviços. Sua missão é trabalhar decisivamente para o desenvolvimento sócio-

econômico e para a melhoria da qualidade de vida da sociedade brasileira, contribuindo

para a inserção competitiva, para o avanço científico e tecnológico do país e para a

proteção do cidadão, especialmente nos aspectos ligados à saúde, segurança e meio-

ambiente (INMETRO, 2007).

2.1 METROLOGIA LEGAL

A Metrologia Legal tem como objetivo principal proteger o consumidor tratando das

unidades de medida, métodos e instrumentos de medição, de acordo com as exigências

técnicas e legais obrigatórias.

13

Page 14: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

Com a supervisão do Governo, o controle metrológico estabelece adequada

transparência e confiança com base em ensaios imparciais. A exatidão dos instrumentos

de medição garante a credibilidade nos campos econômico, saúde, segurança e meio

ambiente.

No Brasil as atividades da Metrologia Legal são uma atribuição do INMETRO, que

também colabora para a uniformidade da sua aplicação no mundo, pela sua ativa

participação no Mercosul e na OIML - Organização Internacional de Metrologia Legal.

A Metrologia Legal atende tais necessidades principalmente através de

regulamentos, os quais são implementados para assegurar um nível adequado de

credibilidade nos resultados de medição. Em todas as suas aplicações, a metrologia legal

cobre unidades de medida, instrumentos de medição e outras matérias tais como os

produtos pré-medidos.

Produto Pré-medido é todo produto embalado e/ou medido sem a presença do

consumidor e, em condições de comercialização (INMETRO, 2007).

2.2 FISCALIZAÇÃO

O capítulo V da Regulamentação Metrológica aprovada pela resolução

CONMETRO 11/88 estabelece que todo produto pré-medido deve trazer de modo bem

visível e inequívoco, a indicação da quantidade líquida ou da quantidade mínima expressa

em unidades legais, ou o número de unidades contidas no acondicionamento.

A fiscalização é efetuada com base na regulamentação citada e em outras definidas

pelo INMETRO como por exemplo o R. T. M. aprovado pela Portaria INMETRO no 074/95,

que estabelece os critérios para a verificação do conteúdo efetivo de produtos pré-

medidos, com conteúdo nominal igual, expresso em unidades do Sistema Internacional de

Unidades.

A elaboração da regulamentação se baseia geralmente nas Recomendações da

Organização Internacional de Metrologia Legal - OIML, à qual o Brasil está filiado como

pais membro, e na colaboração dos fabricantes, representados por suas entidades de

classe, e entidades representativas dos consumidores, pela participação nos Grupos de

Trabalho de Regulamentação Metrológica.

14

Page 15: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

3 O PROCEDIMENTO DE AVALIAÇÃO

Os Regulamentos Técnicos Metrológicos são normas que têm caráter compulsório

e devem, portanto, ser obrigatoriamente respeitados. Constituem uma forma dos órgãos

governamentais estabelecerem regras à sociedade e são muito utilizados como

instrumento regulador do mercado interno, facilitando ou dificultando importações e

exportações.

É com base nos R.T.M. das Portarias INMETRO 074/1995 e 096/2000 que é

exercido o ofício da avaliação da quantidade de produtos pré-medidos com indicação em

massa ou volume.

O processo de avaliação inicia com a verificação do tamanho do lote fabricado no

estabelecimento para, em seguida, proceder-se a coleta da amostra do produto para

verificar indícios de irregularidade na massa ou volume do produto. O tamanho da amostra

pode variar de 05 (cinco) a 80 (oitenta) unidades, dependendo da quantidade do lote de

produtos fabricados.

Lote é o conjunto de produtos de um mesmo tipo, marca e conteúdo nominal,

processados por um mesmo fabricante, ou fracionados em um espaço de tempo

determinado, em condições essencialmente iguais. Caso esta quantidade supere 10000

(dez mil) unidades, o excedente poderá formar novos(s) lotes(s).

Amostra do lote é a quantidade de produtos pré-medidos retirados aleatoriamente

do lote e que serão efetivamente verificados.

Em um primeiro momento, para um fabricante ou produtor, parece ser importante

apenas conhecer os erros máximos admissíveis e procurar não extrapolá-los. No entanto o

entendimento de todo o processo de conferência da quantidade do produto é

imprescindível para a melhor adaptação e controle do processo de acondicionamento. Os

pontos críticos desta avaliação são os critérios de aprovação da amostra.

3.1 OS CRITÉRIOS DE APROVAÇÃO DO PRODUTO

Para estar conforme com o R.T.M. uma amostra deve satisfazer simultaneamente o

critério individual e o critério para a média. O primeiro está relacionado com a diferença

permitida para menos entre o valor nominal indicado na embalagem e conteúdo efetivo

real de cada unidade da amostra. Já o critério para a média se refere ao conjunto das

unidades e estabelece valores mínimos para a média da amostra.

15

Page 16: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

3.1.1 CRITÉRIO INDIVIDUAL

A avaliação da indicação quantitativa é efetuada em balança eletrônica de exatidão

adequada. Para produtos líquidos é também necessário o picnômetro, instrumento que

auxilia na conversão do volume para massa pelo processo gravimétrico. Devido à variação

do volume de produtos líquidos, proporcionada pela variação de temperatura, o

regulamento estabelece o intervalo de 20oC à 25oC para o cálculo do peso específico nas

avaliações.

A primeira etapa de avaliação é determinar o conteúdo efetivo do produto,

descontando-se a massa da embalagem da massa total do produto.

Conforme a Tabela 1, o critério individual estabelece uma tolerância individual

admissível (T), calculada com base no conteúdo nominal do produto, e que deve ser

obedecida por cada item da amostra. Para uma amostra de arroz de 1.000g, por exemplo,

a tolerância individual para cada item da amostra é de 15g. Cada unidade deve pesar no

mínimo 985g para que a amostra seja aprovada neste critério.

Tabela 1: Tolerância para o critério individual

Conteúdo Nominal Qn

(g ou ml)

Tolerância Individual TPercentual

de Qn(%)

Massa ou volume(g ou ml)

5 a 50 9 -50 a 100 - 4,5

100 a 200 4,5 -200 a 300 - 9300 a 500 3 -500 a 1000 - 15

1000 a 10000 1,5 -10000 a 15000 - 150acima de 15000 1 -

Fonte: Adaptado das Portarias Inmetro 074/1995 e 096/2000

Este critério é definido pela seguinte expressão:

X > Qn – T (1)

onde:

16

Page 17: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

X é o conteúdo efetivo de cada unidade da amostra

Qn é o conteúdo nominal do produto e T é a tolerância individual.

No critério individual admite-se um máximo de “c” unidades abaixo de (Qn – T),

cujos valores são estabelecidos pela Tabela 2.

Tabela 2: Número de unidades toleradas abaixo do critério individual

Tamanhodo lote

Tamanhoda amostra c

5 a 13 todas 014 a 49 14 0

50 a 149 20 1150 a 4000 32 2

4001 a 10000 80 5

Fonte: Adaptado das Portarias Inmetro 074/1995 e 096/2000

Para produtos que por sua falta de homogeneidade, descontinuidade, instabilidade

de peso no decorrer do tempo ou outro fator que aumente de modo considerável a

dispersão de seu conteúdo efetivo, é concedido o dobro da tolerância (2T). Enquadram-se

nesta tolerância os produtos com as seguintes particularidades:

produtos com indicação de peso drenado;

produtos cujo peso da menor unidade supera 1,5 vezes a tolerância T;

produtos com perda significativa de peso por secagem ou outros efeitos de

armazenamento, definidos pelo INMETRO;

produtos congelados.

O sal, o alho, alguns tipos de biscoitos, dentre outros, são exemplos de produtos

com alguma destas características, sendo que para estes, admite-se uma tolerância de

Qn –2 T.

3.1.2 CRITÉRIO PARA A MÉDIA

O critério para a média varia com o tamanho da amostra, que é maior quanto maior

for o lote exposto a venda. Genericamente, este critério é definido pela seguinte

expressão:

_ X > Qn - K . s

17

Page 18: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

onde:

_X é a média aritmética da amostra

Qn é como em (1)

K é uma constante vinculada ao tamanho da amostra, conforme Tabela 3

s é o desvio padrão da amostra

Observa-se que uma das variáveis da equação, para um determinado produto, é o

desvio padrão, ou seja, quanto maior o desvio padrão, menor é o valor mínimo para a

aprovação e mais tolerante se torna o critério. O desvio padrão é alto quando se tem maior

dispersão dos valores medidos em relação a média.

Tabela 3: Constante utilizada no critério da média

Tamanhodo lote

Tamanhoda amostra k

5 5 2,0596 6 1,6467 7 1,4018 8 1,2379 9 1,118

10 10 1,02811 11 0,99512 12 0,89713 13 0,847

14 a 49 14 0,80550 a 149 20 0,640

150 a 4000 32 0,4854001 a 10000 80 0,295

Fonte: Adaptado das Portarias Inmetro 074/1995 e 096/2000

Este critério não permite que o processo de acondicionamento do produto utilize

como controle nivelador a tolerância concedida pelo critério individual, o que seria

interessante para empresas que detêm exatidão e precisão no processo de embalagem de

seus produtos. Para esta situação, este critério faz uma aproximação do conteúdo efetivo

da média da amostra ao valor nominal indicado pelo produtor.

18

Page 19: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

4 PASSOS PARA O DESENVOLVIMENTO DO APLICATIVO

Em sua metodologia, Craig Larman esclarece que “Em um nível alto, os principais

passos para desenvolver uma aplicação são:

1. Planejar e Elaborar: Planejamento, definição de requisitos, construção de

protótipos e assim por diante.

2. Construir: A construção do sistema.

3. Instalar: A implantação do sistema para uso”.

Ele complementa dizendo que “Um processo de desenvolvimento de software é um

método para organizar as atividades relacionadas com a criação, entrega e manutenção

de sistemas de software”.

4.1 A FASE PLANEJAR E ELABORAR

Para Craig Larman, “A fase Planejar e Elaborar de um projeto inclui a concepção

inicial, a investigação de alternativas, o planejamento, a especificação de requisitos e

assim por diante”.

Uma lista de artefatos que esta fase do projeto deve gerar é listada abaixo:

1. Plano: cronograma, recursos, orçamento, etc.

2. Relatório de Investigação Preliminar: motivação, alternativas, necessidades de

negócio.

3. Especificação de Requisitos: exposição declarativa dos requisitos;

4. Casos de Uso: descrição em prosa de processos do domínio;

5. Diagramas de Casos de Uso: ilustração de todos os casos de uso e seus

relacionamentos.

6. Rascunho do modelo conceitual: um modelo conceitual preliminar aproximado,

para ajuda na sua compreensão de como ele se relaciona com os casos de uso e a

especificação dos requisitos.

A construção dos artefatos cima listados não deve ser feita em ordem linear.

Pelo contrário. Será freqüente às vezes em que duas ou mais tarefas serão

desenvolvidas em paralelo, embora em alguns casos fique evidente a necessidade de uma

tarefa antevir a outra, como por exemplo, a definição dos casos de uso vir a ser feita antes

do rascunho do modelo conceitual.

19

Page 20: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

4.2 A FASE CONSTRUIR

A fase construir envolve a implementação do projeto em software e em hardware.

Envolve repetidos ciclos de desenvolvimento, dentro dos quais o sistema é estendido. O

objetivo final é um sistema de software em operação que atenda corretamente os

requisitos.

Um ciclo de desenvolvimento na fase construir compreende as seguintes etapas:

refinar plano, sincronizar artefatos, analisar, projetar, construir, testar.

Antes de falar sobre cada uma das etapas da fase construir, é importante definir um

ciclo de desenvolvimento do projeto. Craig Larman propõe um ciclo de desenvolvimento

chamado de Iterativo.

Um Ciclo de Desenvolvimento, ou também chamado de ciclo de vida, Iterativo se

baseia no aumento e no refinamento sucessivo de um sistema através de múltiplos ciclos

de desenvolvimentos de análise, de projeto, de implementação e de testes.

O sistema cresce pelo acréscimo de novas funções em cada ciclo de

desenvolvimento. Depois de uma fase preliminar de Planejar e Elaborar, o

desenvolvimento continua numa fase Construir através de uma série de ciclos de

desenvolvimento.

Cada ciclo trata de um conjunto relativamente pequeno de requisitos, procedendo

através da análise, do projeto, da construção e do teste. O sistema cresce

incrementalmente, à medida que cada ciclo é completado.

O desenvolvimento iterativo não significa desenvolver um trabalho banal por um

tempo, atingir um marco no projeto e, então, experimentar mais um pouco. Uma definição

do desenvolvimento iterativo é que ele é um processo planejado para voltar a uma área

repetidamente, cada vez, complementando o sistema. Ele é um processo formalmente

planejado e escalonado, e não algo que acontece ao acaso.

A definição de desenvolvimento incremental é adicionar funcionalidades a um

sistema durante vários ciclos de liberação de produto; cada incremental (nova versão do

produto) contém mais funcionalidades.

A principal desvantagem do desenvolvimento iterativo e incremental é o aumento

das expectativas. Uma vez que esse processo permite que sejam efetuadas

demonstrações, logo tende-se a pensar que o sistema está “quase pronto”.

Um Caso de Uso é uma descrição narrativa de um processo do domínio. Ciclos de

desenvolvimento interativos são organizados por requisitos de casos de uso.

Os Casos de Uso devem ser priorizados, e os de alta prioridade deveriam ser

atacados nos ciclos de desenvolvimentos iniciais. A estratégia abrangente é, primeiro,

20

Page 21: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

pegar os casos de uso que influenciam significativamente o núcleo da arquitetura,

materializando as camadas do domínio e dos serviços de alto nível, ou aqueles que são de

uso críticos de alto risco.

Os dois principais passos da fase construir - analisar e projetar – são as fases

abordadas no livro de Craig Larman com grande ênfase. Abaixo é apresentado em

detalhes o desenvolvimento de cada uma destas duas etapas.

“Para criar um software de uma aplicação, é necessária uma descrição do problema

e dos seus requisitos – o que é o problema e o que o sistema deve fazer. A análise

enfatiza uma investigação do problema, de como uma solução é definida”.

“Para desenvolver uma aplicação também é necessário ter descrições de alto nível

e descrições detalhadas da solução lógica e de como ela atende os requisitos e as

restrições. O projeto enfatiza uma solução lógica, ou seja, como o sistema atende os

requisitos, afinal, projetos devem ser implementados em software e hardware”.

4.3 FASE ANALISAR

Segundo Craig Larman, “A essência da análise e do projeto orientados a objeto é

enfatizar a consideração de um domínio de problema e uma solução lógica, segundo a

perspectiva de objetos (coisas, conceitos ou entidades). Na análise orientada a objetos, há

uma ênfase na descoberta e na descrição dos objetos – ou conceitos – do domínio do

problema”.

A Fase Analisar deve abranger as seguintes etapas:

1. Construir um modelo conceitual inicial, identificando os conceitos, atributos e

suas corretas associações.

2. Fazer Diagrama de seqüência para os casos de uso identificando os eventos e as

operações do sistema. Este diagrama de seqüências mostrado por Craig Larman não

pertence à notação UML, porém será um importante artefato para a construção do

Diagrama de Interação da UML na fase Projetar.

3. Criar contratos para as operações do sistema, que é um documento que

descreve o que uma operação se compromete a atingir. Usualmente, ele segue um estilo

declarativo, enfatizando o que acontecerá, em vez de como será conseguido. È comum

em termos de mudanças de estado definidas por pré-condições e pós-condições. Um

contrato pode ser escrito para um método individual de uma classe de software ou para

uma operação mais abrangente do sistema.

Durante um ciclo de desenvolvimento iterativo, é possível passar para a fase de

projeto desde que estes documentos de análise estejam completos.21

Page 22: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

4.4 FASE PROJETAR

Para Craig Larman “Durante o projeto orientado a objetos existe uma ênfase na

definição de elementos lógicos de software, os quais, em última instância, serão

implementados em uma linguagem de programação orientada a objetos. Estes objetos de

software têm atributos e métodos. Finalmente, durante a construção ou programação

orientada a objetos, os componentes do projeto são implementados, tais como uma

classe”.

Durante este passo, é desenvolvida uma solução lógica baseada no paradigma

orientado a objetos. O coração desta solução é a criação de diagramas de interação, os

quais ilustram como os objetos devem se comunicar de maneira a atender os requisitos.

Em seguida à geração de diagramas de interações, podem ser desenhados

diagramas de classes, os quais sumarizam a definição das classes (e interfaces) que

devem ser implementadas em software.

A criação de diagramas de interação requer a aplicação de princípios para a

atribuição de responsabilidades e visibilidades.

4.5 FASE TESTAR

A fase Testar tem por objetivo verificar eventuais falhas de desenvolvimento no

sistema. Devem avaliar basicamente três quesitos: funcionalidade (o sistema executa

corretamente suas funções normais), recuperação (o sistema recupera-se adequadamente

em caso de falha); desempenho (o sistema apresenta tempo de resposta adequado).

Geralmente, a fase Testar é entendida com o último passo dentro de um ciclo de

desenvolvimento. Porém, recomenda-se que seja uma atividade permanente durante a

fase Construir.

4.6 FASE INSTALAR

A fase instalar envolve a colocação do sistema em produção. Para o software

desenvolvimento com finalidades comerciais, isso significa que ele já está à venda e

disponível para os clientes; para o software desenvolvido em uma instalação, significa que

ele está em uso operacional.

22

Page 23: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

5 SISTEMA PROPOSTO

Este capítulo apresenta o aplicativo proposto e como este foi realizado. O aplicativo

utilizado no setor produtivo pode reduzir custos com um maior aproveitamento das

tolerâncias permitidas, evitando problemas com produtos não-conformes expostos ao

consumidor. Ele busca informar erros que possam gerar desconfortos para consumidores

e evitar multas por órgãos competentes, através de relatórios. O trabalho consiste em

armazenar os dados obtidos nas baterias de testes em um banco de dados para que

esses dados possam ser utilizados no futuro para comparações caso o produto seja alvo

de fiscalização.

A construção do aplicativo consistiu de três etapas:

- Levantamento de Requisitos: Levantamento das necessidades, para a

construção de um aplicativo.

- Modelagem: Interpretação dos requisitos levantados, bem como sua tradução

em especificações do aplicativo.

- Implementação: Conversão das especificações do aplicativo em código.

5.1 DEFINIÇÃO DOS USUÁRIOS DO SISTEMA

O sistema não exige grandes preocupações com controles de acesso. Pois não

existe qualquer controle a ser feito quanto à restrição de acesso as informações. Assim,

podemos imaginar um único usuário interagindo com o sistema, sendo capaz de realizar

todas as operações disponíveis.

Assim, no seguimento deste trabalho, as interações deste usuário com o sistema

serão representadas da seguinte forma:

FIGURA 1: Usuários do sistema.

23

Page 24: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

5.2 DEFININDO AS ÁREAS DO SISTEMA E OS CASOS DE USO

O sistema deve ser capaz de suportar vários laudos, cada laudo é uma verificação

feita em um determinado produto por um determinado técnico. Desta forma cada produto e

técnico deve ser cadastrado uma única vez. Por exemplo, produto arroz branco e técnico

Ramon Carvalho. Ou seja para fazer uma verificação em um determinado produto por um

técnico, obrigatoriamente o produto e o técnico devem estar cadastrados.

Assim, a área de acesso do sistema de um usuário pode ser dividida, inicialmente

em três diferentes atividades, conforme demonstra a Figura 4.

pkg Area Principal do Sistema

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

Area Principal do Usuario

(from SAPPM)

Produto

+ Usuario+ Altera dados de um produto+ Cria Novo Produto+ Exclui um produto+ Seleciona um produto

(from SAPPM)

Tecnico

+ Usuario+ Altera um Tecnico+ Exlcui um Tecnico+ Inclui um Tecnico+ Seleciona um Tecnico

(from SAPPM)

Laudo

+ Usuario+ VBruto+ VEmbalagem+ Altera laudo+ Cria novo laudo+ Exclui laudo+ Pesquisa laudo+ Seleciona laudo

(from SAPPM)

FIGURA 2: Pacote da área do usuário.

A seguir, cada um dos pacotes será detalhado, descrevendo-se seus casos de

usos, para melhorar o entendimento de cada área do sistema.

5.2.1 PRODUTO: O usuário deseja cadastrar um produto no sistema para que possa

fazer verificações. Assim o usuário deve informar nome do produto, marca do produto,

unidade e sua indicação quantitativa. Nesta área, as três principais tarefas a serem

realizadas são: a inclusão de um novo produto, a alteração dos dados de um produto e a

exclusão do produto do sistema.

Atores Envolvidos: Usuário, Sistema e Banco de Dados.

24

Page 25: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

Requisitos: Nome, Marca, Unidade e Indicação Quantitativa do Produto.

uc ProdutoEA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

Usuario

Cria Novo Produto

Altera dados de um produto

Exclui um produto

Seleciona um produto

«include»

«include»

FIGURA 3: Diagrama de caso de uso para produto.

5.2.2 TÉCNICO: Cadastrar técnicos que ficaram como responsável pela verificação do

produto. Assim o usuário deve informa nome do técnico e sua matrícula. Nesta área, as

três principais tarefas a serem realizadas são: a inclusão de um novo técnico, a alteração

dos dados de um técnico e a exclusão do técnico do sistema.

Atores Envolvidos: Usuário, Sistema e Banco de Dados.

Requisitos: Nome e Matrícula.

uc TecnicoEA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

Usuario

Inclui um Tecnico

Altera um Tecnico

Exlcui um Tecnico

Seleciona um Tecnico

«include»

«include»

FIGURA 4: Diagrama de caso de uso para técnicos.

25

Page 26: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

5.2.3 LAUDO: O usuário deseja realizar uma verificação quantitativa. Assim para realizar uma verificação o usuário de informar lote de fabricação do produto analisado, selecionar produto e quantidade de amostra a ser analisada, selecionar técnico responsável pela verificação, para os produtos fabricados em massa e caso o produto seja em volume informar massa específica e a temperatura do produto. Nesta área, as quatro principais tarefas a serem realizadas

são: a inclusão de um novo laudo, a alteração dos dados de um laudo, exclusão do laudo

do sistema e a pesquisa de um laudo já realizado no sistema.

Atores Envolvidos: Usuário, Sistema e Banco de Dados.

Requisitos: Lote de fabricação, Quantidade da Amostra, produto, Técnico e temperatura do

produto e massa específica caso seja volume e número do laudo para pesquisa.uc Laudo

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

Usuario

Cria nov o laudo

Altera laudo

Exclui laudo

Seleciona laudo

Pesquisa laudo

«include»

«include»

«include»

FIGURA 5: Diagrama de caso de uso para laudo.

5.3 ÁREA DO LAUDO

Para cada verificação feita, existe um conjunto de valores brutos que varia de 5 a 80

amostras a serem pesadas e lançadas no sistema e um conjunto de seis valores fixo do

peso da embalagem vazia do produto.

pkg Laudo

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

VEmbalagem

+ Usuario+ Altera valor de embalagem+ Exclui valor de embalagem+ Inclui valor de embalagem+ Seleciona valor de embalagem

VBruto

+ Usuario+ Altera valor bruto+ Exclui valor bruto+ Inclui valor Bruto+ Seleciona valor bruto

26

Page 27: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

FIGURA 6: Pacote de área do laudo.

5.3.1 VALORES DO PESO BRUTO DO PRODUTO: O usuário deseja cadastrar os

valores pesados na balança do produto escolhido para verificação. Assim o usuário deve

informar cada valor bruto pesado. Nesta área, as três principais tarefas a serem realizadas

são: a inclusão de um novo valor bruto, a alteração dos dados de um valor bruto e a

exclusão de um valor bruto do sistema.

Atores Envolvidos: Usuário, Sistema e Banco de Dados.

Requisitos: Valor Bruto.

uc VBrutoEA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

Usuario

Inclui v alor Bruto

Altera valor bruto

Exclui valor bruto

Seleciona valor bruto

«include»

«include»

FIGURA 7: Diagrama de caso de uso para valores brutos.

5.3.2 VALORES DO PESO DA EMBALAGEM VAZIA DO PRODUTO: O usuário deseja

cadastrar os valores pesados na balança da embalagem vazia do produto escolhido para

verificação. Assim o usuário deve informar o valor de cada embalagem vazia. Nesta área,

as três principais tarefas a serem realizadas são: a inclusão de um novo valor de

embalagem, a alteração dos dados de um valor de embalagem e a exclusão de um valor

de embalagem do sistema.

Atores Envolvidos: Usuário, Sistema e Banco de Dados.

Requisitos: Valor da Embalagem Vazia.

27

Page 28: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

uc VEmbalagemEA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

Usuario

Inclui valor de embalagem

Altera valor de embalagem

Exclui valor de embalagem

Seleciona valor de embalagem

«include»

«include»

FIGURA 8: Diagrama de caso de uso para valores de embalagens.

5.4 MODELO CONCEITUAL

O Modelo Conceitual é uma representação de conceitos em um domínio de

problema.

A Figura 9 ilustra o Modelo Conceitual para o sistema para avaliação de produtos

pré-medidos, construído a partir do estudo dos casos de uso anteriormente abortado,

identificando os principais conceitos envolvidos e as associações.

class SAPPM

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version EA 7.0 Unregistered Trial Version

Laudo

Produto

VEmbalagem

Tecnico VBruto

1 1..*

1

1..*

1 1..*

1

1

FIGURA 9: Modelo conceitual.28

Page 29: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

6 IMPLEMENTAÇÃO

Este capítulo do trabalho tem por objetivo apresentar como ficou o software após o

seu desenvolvimento. Serão ilustradas as interfaces e explicadas como procedem as

rotinas e a importância de cada uma delas para o sistema.

O software foi desenvolvido na linguagem Delphi, devido a sua simplicidade e pelo

pequeno período para desenvolvimento.

6.1 A ABERTURA DO SISTEMA

A partir da tela inicial do sistema para avaliação de produtos pré-medidos, mostrada

pela Figura 10, o usuário poderá ter acesso aos botões que permitem as três operações:

acesso a produtos, laudos e técnicos do sistema.

FIGURA 10: Tela inicial.

29

Page 30: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

6.2 TELA CADASTRO TÉCNICO

A tela cadastro de técnico mostrada pela Figura 11, o usuário poderá ter acesso aos

botões que permitem as três operações: próximo técnico, incluir um novo técnico e excluir

um técnico do sistema.

FIGURA 11: Tela cadastro técnico

6.3 TELA CADASTRO DE PRODUTO

A tela cadastro de produto mostrada pela Figura 12, o usuário poderá ter acesso

aos botões que permitem as três operações: próximo produto, incluir um novo produto e

excluir um produto do sistema.

FIGURA 12: Tela cadastro de produto.

30

Page 31: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

6.4 TELA LAUDOS

A tela laudos mostrada pela Figura 13, o usuário poderá ter acesso aos botões que

permitem algumas operações: próximo laudo, incluir um novo laudo, excluir um laudo e

localizar um laudo já realizado do sistema. Também nessa tela você tem acesso ao

cadastro de valores brutos e valores de embalagem para o produto examinado e a

operação visualizar laudo onde gera um relatório do exame realizado.

FIGURA 13: Tela laudos.

6.5 TELA EMBALAGEM

A tela embalagem mostrada pela Figura 14, o usuário poderá ter acesso aos

campos onde informará ao sistema os valores pesados das embalagens vazias e botões

que permitem as duas operações: salvar e restaurar valores de embalagem do sistema.

31

Page 32: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

FIGURA 14: Tela embalagem.

6.6 TELA VALORES BRUTO

A tela valores bruto mostrada pela Figura 15, o usuário poderá ter acesso aos

campos onde informará ao sistema os valores brutos pesados e botões que permitem as

duas operações: salvar e restaurar valores de embalagem do sistema.

FIGURA 15: Tela valores bruto.

32

Page 33: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

6.7 RELATÓRIO

A Figura 14 mostra o relatório do laudo de exame de um determinado produto após

ter concluído as etapas de cadastro de valores bruto e valores de embalagem. O relatório

mostra todos os cálculos necessários para os critérios da média e individual, informa os

resultados e sua conclusão, para imprimir o relatório, basta clicar no botão visualizar laudo.

FIGURA 16: Relatório do exame.

33

Page 34: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

7 BANCO DE DADOS DO SAPPM

Seguindo o levantamento de requisitos, foram identificados as entidades e

relacionamentos observados na Figura 14. Os técnicos são responsáveis pela realização

do exame de um produto e esta associação permite a geração de um laudo técnico.

Figura 17: Diagrama de entidade relacional

O banco de dados utilizado no aplicativo para avaliação de produtos pré-medidos é

o PostgreSQL 8.2 e o EMS PostgreSQL Manager 3 para gerenciamento. Sua escolha foi

por ser um software livre. O banco é composto por cinco tabelas: PRODUTOS, LAUDOS,

TECNICOS, VBRUTOS e VEMBALAGENS. A tabela LAUDOS se relaciona com as

tabelas PRODUTOS, TECNICOS, VBRUTOS e VEMBALAGENS. Cada posto fabril irá

possuir um banco de dados próprio com seus respectivos dados. A Figura 18 representa o

banco.

34

Page 35: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

Figura 18: Modelagem do banco de dados

35

Page 36: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

8 CONCLUSÃO

O presente trabalho apresentou os detalhes que envolvem a verificação de um

produto pré-medido para servir de base para o desenvolvimento do sistema.

O uso da especificação em linguagem UML propiciou uma experiência de como é o

processo de análise e projeto de um problema resolvido com o auxílio do computador, e

que facilitou a implementação do software.

O sistema de avaliação de produtos pré-medidos tem como alvo a verificação do

valor real da quantidade do produto embalado. O objetivo do sistema é informar ao

fabricante se o produto pré-medido está de acordo com os R.T.M., sendo possível após a

verificação detectar erros e corrigi-los, entregando ao mercado um produto com o menor

custo possível.

Utilizando o sistema como avaliação do produto em questão, o desvio padrão pode

ser vizualizado e corrigido no processo fabril, de modo a proporcionar maior tolerância no

critério de aprovação para a média. Esta medida se constitui na mais produtiva, pois

otimiza o uso da matéria-prima e reduz os custos de produção.

A avaliação do produto acondicionado com base no controle das medições de seu

conteúdo efetivo podem diminuir a incidência de produtos não-conformes durante a

produção e nos pontos de venda final, aumentando a credibilidade da marca junto à

sociedade e aos órgãos de fiscalização.

A continuação deste trabalho pode ser realizada, primeiramente, tornando o produto

mais comercial. Para isso, se faz necessário um aperfeiçoamento das interfaces do

usuário, deixando-as mais interessantes visualmente além de auto-explicativas, permitindo

ao usuário uma interação direta, sem maiores auxílios de manuais. Segundo

complementando o software SAPPM para verificação de produtos fabricados em unidades

e comprimento que são regulamentados pelas Portarias do INMETRO 001/98 e 166/2003.

Para trabalhos futuros, também é interessante se imaginar uma integração do

sistema com o processo fabril, com o sistema ligado a uma balança no final da produção,

capturando dados, para verificações aleatórias.

36

Page 37: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

9 REFERÊNCIAS BIBLIOGRÁFICAS

CÃNDIDO, CARLOS H. - Aprendizagem em Banco de Dados: Implementação de Ferramenta de Modelagem E.R. – UFSC/UNIVAG – disponível em http://www.grupobd.inf.ufsc.br/bibliografiaGBD/especializacoes/Especializacao-CarlosCandido-FerramentaModelagemER-2005 Acesso em: 05 de julho de 2007.

CONMETRO. Resolução n.º 11. (1988) - “Dispõe sobre aprovação da Regulamentação Metrológica das Unidades de Medida”. DOU, Brasília. Sec. 1, p. 20524-20526.

DELPHI. [S.l.]: URL: http://www.borland.com/br/, Agosto 2007. Internet

EMS SQL MANAGER. [S.l.]: URL: http://sqlmanager.net/products/postgresql/manager/, Agosto 2007. Internet.

ENTERPRISE ARCHITECT. [S.l.]: URL: http://www.sparxsystems.com.au/ea.htm, Agosto 2007. Internet.

INMETRO. Portaria n.º 096. (2000) - “Dispõe sobre regulamento técnico metrológico estabelece os critérios para verificação do conteúdo efetivo de produtos pré-medidos com o conteúdo nominal igual expresso em unidades de massa e volume”. DOU, Brasília. Sec. 1, p. 34-35.

INMETRO. Portaria n.º 074. (1995) - “Dispõe sobre aprovação do Regulamento Técnico que estabelece os critérios para verificação do conteúdo líquido de produtos pré-medidos com conteúdo nominal igual e comercializados nas grandezas de massa e volume”. DOU, Brasília. Sec. 1, p.10825-10826.

INMETRO. [S.l.]: URL:http://www.inmetro.gov.br/inmetro/historico.asp/, Abril 2007. Internet.

LARMAN, C. – Utilizando UML e Padrões: Uma Introdução à Análise e ao Projeto Orientados a Objetos – tradução: Luiz A. Meirelles Salgado. Porto Alegre: editora Bookman, 2000.

POSTGRESQL. [S.l.]: URL: http://www.postgresql.org.br/, Agosto 2007. Internet.

37

Page 38: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

10 ANEXOS

10.1 SQL PARA CRIAÇÃO DAS TABELAS

CREATE TABLE "sc_trabalho"."Laudos" ( "NumLaudo" INTEGER NOT NULL, "DataVerificacao" DATE, "Media" DOUBLE PRECISION, "Tolerancia" DOUBLE PRECISION, "CMedia" DOUBLE PRECISION, "CIndividual" DOUBLE PRECISION, "RIndividual" VARCHAR(20), "RMedia" VARCHAR(20), "RFinal" VARCHAR(20), "LoteProduto" VARCHAR(10), "QAmostra" INTEGER, "codproduto" INTEGER NOT NULL, "matricula_usuario" INTEGER NOT NULL, "massa_esp" DOUBLE PRECISION, "desvio_padrao" DOUBLE PRECISION, "amostra_aceitavel" INTEGER, "defeituosas_encontrada" INTEGER, "temperaturaproduto" DOUBLE PRECISION, CONSTRAINT "laudos_pkey" PRIMARY KEY("NumLaudo"), CONSTRAINT "laudos_fk" FOREIGN KEY ("codproduto") REFERENCES "sc_trabalho"."Produtos"("CodProduto") ON DELETE NO ACTION ON UPDATE NO ACTION NOT DEFERRABLE, CONSTRAINT "laudos_fk1" FOREIGN KEY ("matricula_usuario") REFERENCES "sc_trabalho"."Usuarios"("Matricula") ON DELETE NO ACTION ON UPDATE NO ACTION NOT DEFERRABLE) WITHOUT OIDS;

CREATE TABLE "sc_trabalho"."Produtos" ( "CodProduto" INTEGER NOT NULL, "NomeProduto" VARCHAR(25), "Marca" VARCHAR(20), "quantidadenominal" DOUBLE PRECISION, "unidade" VARCHAR(2), CONSTRAINT "produtos_pkey" PRIMARY KEY("CodProduto")) WITH OIDS;

CREATE TABLE "sc_trabalho"."Usuarios" ( "Matricula" INTEGER NOT NULL, "Nome" VARCHAR(60), CONSTRAINT "usuarios_pkey" PRIMARY KEY("Matricula")) WITH OIDS;

38

Page 39: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

CREATE TABLE "sc_trabalho"."VBrutos" ( "cod_bruto" INTEGER NOT NULL, "valor_bruto" DOUBLE PRECISION, "num_amostra" INTEGER, "num_laudo" INTEGER, "valor_efetivo" DOUBLE PRECISION, CONSTRAINT "vbrutos_pkey" PRIMARY KEY("cod_bruto"), CONSTRAINT "vbrutos_fk" FOREIGN KEY ("num_laudo") REFERENCES "sc_trabalho"."Laudos"("NumLaudo") ON DELETE NO ACTION ON UPDATE NO ACTION NOT DEFERRABLE) WITH OIDS;

CREATE TABLE "sc_trabalho"."VEmbalagens" ( "valor1" DOUBLE PRECISION, "num_laudo" INTEGER NOT NULL, "valor2" DOUBLE PRECISION, "valor3" DOUBLE PRECISION, "valor4" DOUBLE PRECISION, "valor5" DOUBLE PRECISION, "valor6" DOUBLE PRECISION, "media_emb" REAL, CONSTRAINT "VEmbalagens_pkey" PRIMARY KEY("num_laudo"), CONSTRAINT "vembalagens_fk" FOREIGN KEY ("num_laudo") REFERENCES "sc_trabalho"."Laudos"("NumLaudo") ON DELETE NO ACTION ON UPDATE NO ACTION NOT DEFERRABLE) WITH OIDS;

39

Page 40: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

10.2 CÓDIGO FONTE

unit unprincipal;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, ExtCtrls;

type Tfmprincipal = class (TForm) GroupBox1: TGroupBox; btnUsuario: TButton; btnProduto: TButton; btnLaudos: TButton; btnFechar: TButton; db_sappm: TADOConnection; Image1: TImage; Label1: TLabel; procedure btnFecharClick(Sender: TObject); procedure btnUsuarioClick(Sender: TObject); procedure btnProdutoClick(Sender: TObject); procedure btnLaudosClick(Sender: TObject); private { Private declarations } public { Public declarations } end;

var fmprincipal: Tfmprincipal;

implementation

uses unUsuario, unProduto, unLaudos, unEmbalagem;

{$R *.dfm}

procedure Tfmprincipal.btnFecharClick(Sender: TObject);begin close;end;

procedure Tfmprincipal.btnUsuarioClick(Sender: TObject);begin fmUsuario:=TfmUsuario.create(application); fmUsuario.show;end;

procedure Tfmprincipal.btnProdutoClick(Sender: TObject);begin

40

Page 41: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

fmProduto:=TfmProduto.create(application); fmProduto.show;end;

procedure Tfmprincipal.btnLaudosClick(Sender: TObject);begin fmLaudos:=TfmLaudos.create(application); fmLaudos.show;end;

end.

unit unEmbalagem;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uTelaCadastro, DB, ADODB, ComCtrls, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls;

type TfmEmbalagem = class (TfTelaCadastro) qryCadastrovalor1: TFloatField; qryCadastronum_laudo: TIntegerField; qryCadastrovalor2: TFloatField; qryCadastrovalor3: TFloatField; qryCadastrovalor4: TFloatField; qryCadastrovalor5: TFloatField; qryCadastrovalor6: TFloatField; Label1: TLabel; ed_v1: TDBEdit; Label2: TLabel; DBEdit2: TDBEdit; Label3: TLabel; ed_v2: TDBEdit; Label4: TLabel; ed_v3: TDBEdit; Label5: TLabel; ed_v4: TDBEdit; Label6: TLabel; ed_v5: TDBEdit; Label7: TLabel; ed_v6: TDBEdit; Label8: TLabel; ed_media: TDBEdit; qryCadastromedia_emb: TFloatField; procedure FormShow(Sender: TObject); procedure qryCadastroAfterScroll(DataSet: TDataSet); procedure btnSalvarClick(Sender: TObject);

41

Page 42: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

private { Private declarations } gmedia:double; public { Public declarations } end;

var fmEmbalagem: TfmEmbalagem;

implementation

uses unprincipal, unLaudos, unVbrutos, unProduto;

{$R *.dfm}

procedure TfmEmbalagem.FormShow(Sender: TObject);var numLaudo:integer;

begin inherited; numLaudo:=fmLaudos.gNumLaudo;

with qryAuxiliar, qryAuxiliar.SQL do begin close; clear; add ('select "num_laudo" '); add ('from "sc_trabalho"."VEmbalagens" '); add ('where "num_laudo"= :plaudo'); Parameters.ParamByName('plaudo').Value:=numLaudo; open; if not (qryAuxiliar.RecordCount > 0) then begin qryCadastro.Append; qryCadastronum_laudo.Value:=numLaudo; end else with qryCadastro, qrycadastro.SQL do begin close; clear; add ('select * '); add ('from "sc_trabalho"."VEmbalagens" '); add ('where "num_laudo"= :plaudo'); Parameters.ParamByName('plaudo').Value:=numLaudo; open; end; //with end;//withend;//procedure

procedure TfmEmbalagem.qryCadastroAfterScroll(DataSet: TDataSet);begin

42

Page 43: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

inherited; btnAnterior .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Bof); btnProximo .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Eof); btnSalvar .Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnRestaurar.Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnNovo .Enabled := qryCadastro.State in [dsBrowse]; btnExcluir .Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty); btnLocalizar.Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty);

Case qryCadastro.State of dsInsert : begin lblState.Visible := True; lblState.Caption := 'Inserindo dados'; end; // dsInsert dsEdit : begin lblState.Visible := True; lblState.Caption := 'Alterando dados'; end; // dsInsert else begin lblState.Caption := ''; end; // else end; // case

end;

procedure TfmEmbalagem.btnSalvarClick(Sender: TObject);var soma:real; lmassa, lvalorBruto, vk: double; cmedia, cindividual, tolerancia, media, qn, desvio:double; Acmedia:array[1..80] of double; numamostra, nabaixo, aceitavel:integer; rmedia, rindividual, rgeral:string;

begin numamostra:=fmLaudos.gNumAmostras; //inicializando vetor do critério da média Acmedia[5]:=2.059; Acmedia[6]:=1.646; Acmedia[7]:=1.401; Acmedia[8]:=1.237; Acmedia[9]:=1.118; Acmedia[10]:=1.028; Acmedia[11]:=0.995; Acmedia[12]:=0.897; Acmedia[13]:=0.847; Acmedia[14]:=0.805; Acmedia[20]:=0.640; Acmedia[32]:=0.485; Acmedia[80]:=0.295;

//calcula da média de embalagens43

Page 44: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

soma:=0.0; gmedia:=0.0; soma:=StrToFloat(ed_v1.Text) +StrToFloat(ed_v2.Text) +StrToFloat(ed_v3.Text) +StrToFloat(ed_v4.Text) +StrToFloat(ed_v5.Text) +StrToFloat(ed_v6.Text); gmedia:=soma/6; qryCadastromedia_emb.AsFloat := gmedia; Inherited; //calcula valor efetivo

with qryAuxiliar, qryAuxiliar.SQL do begin close; clear; add ('select * '); add ('from "sc_trabalho"."VBrutos" '); add ('where "num_laudo"= :plaudo'); Parameters.ParamByName('plaudo').Value:=fmLaudos.gNumLaudo; open; if (qryAuxiliar.RecordCount > 0) then //verifica se existe algum registro begin lmassa:=fmLaudos.qryCadastromassa_esp.Value; qryAuxiliar.First; //primerio registro while not qryAuxiliar.Eof do //enquanto não for final do arquivo faça begin qryAuxiliar.edit; qryAuxiliar.FieldByName('valor_efetivo').Value:= (qryAuxiliar.fieldbyname('valor_bruto').Value - qryCadastromedia_emb.AsFloat)/lmassa; qryAuxiliar.Post; qryAuxiliar.Next; if qryAuxiliar.Eof then break; end;//while end; //if end;//with //calcula desvio padrão e média do valor efetivo with qryauxiliar, qryauxiliar.SQL do begin close; clear; add ('select sum("valor_efetivo") as somabruto, stddev ("valor_efetivo") as DesvioPadrao '); add ('from "sc_trabalho"."VBrutos"'); add ('where "num_laudo"= :plaudo'); Parameters.ParamByName('plaudo').Value:=fmLaudos.gNumLaudo; open; if qryAuxiliar.FieldByName('somabruto').Value > 0.0 then begin soma:= qryAuxiliar.FieldByName('somabruto').AsFloat; desvio:=qryAuxiliar.fieldByname('DesvioPadrao').AsFloat;

44

Page 45: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

media:=(soma/numamostra); with qryPesquisa, qryPesquisa.SQL do begin close; clear; add ('select * '); add ('from "sc_trabalho"."Laudos" '); add ('where "NumLaudo"= :plaudo'); Parameters.ParamByName('plaudo').Value:=fmLaudos.gNumLaudo; open;

if qryPesquisa.RecordCount > 0 then begin qryPesquisa.edit; qryPesquisa.FieldByName('media').AsFloat:= media; qryPesquisa.FieldByName('desvio_padrao').AsFloat:= desvio; qryPesquisa.Post; //salva fmLaudos.qryCadastro.Refresh; end;//if

end;//with

end; //if

end;//with

//calcula critério de média

vk:=Acmedia[numamostra]; with qryPesquisa, qryPesquisa.SQL do begin // seleciona qn na tabela produto close; clear; add ('select laudos."codproduto", produtos."quantidadenominal"'); add('from "sc_trabalho"."Produtos" produtos, "sc_trabalho"."Laudos" laudos'); add('where laudos."codproduto" = produtos."CodProduto" '); add(' and laudos."NumLaudo" = :plaudo '); Parameters.ParamByName('plaudo').Value:=fmLaudos.gNumLaudo; open; end;//with if qryPesquisa.RecordCount > 0 then begin qn:=qryPesquisa.fieldbyname('quantidadenominal').AsFloat; cmedia:=qn-(vk*desvio); end;//if

//calcula tolerancia individual

tolerancia:=0; cindividual:=0; if (qn >=5) and (qn<=50) then tolerancia:=(0.09*qn); if (qn >50) and (qn<=100) then tolerancia:=4.5;

45

Page 46: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

if (qn >100) and (qn<=200) then tolerancia:=(0.045*qn); if (qn >200) and (qn<=300) then tolerancia:=9; if (qn >300) and (qn<=500) then tolerancia:=(0.03*qn); if (qn >500) and (qn<=1000) then tolerancia:=15; if (qn >1000) and (qn<=10000) then tolerancia:=(0.015*qn); if (qn >10000) and (qn<=15000) then tolerancia:=150; if (qn >15000) then tolerancia:=(0.01*qn);

if fmLaudos.cb_2t.Checked then //claculo de produtos 2T tolerancia:=tolerancia*2;

cindividual:=(qn-tolerancia); //calcula criterio individual rmedia:=''; if (media >= cmedia) then // verifica resultado da média rmedia:='Aprovado' else rmedia:='Reprovado';

with qryPesquisa, qryPesquisa.SQL do begin // seleciona quantidade de amostra abaixo do citerio individual close; clear; add ('select "valor_efetivo"'); add('from "sc_trabalho"."VBrutos" '); add('where "num_laudo"= :plaudo '); Parameters.ParamByName('plaudo').Value:=fmLaudos.gNumLaudo; open; qryPesquisa.First; nabaixo:=0; while true do begin //verifica a quantidade de amostra abaido do criterio individual if qryPesquisa.FieldByName('valor_efetivo').AsFloat < cindividual then nabaixo:=nabaixo+1; qrypesquisa.Next; if qryPesquisa.Eof then break; end;//while end;//with

aceitavel:=0; if (numamostra <= 14) then //calcula número de amostra aceitável no critério individual aceitavel:=0; if (numamostra =20) then aceitavel:=1; if (numamostra =32) then aceitavel:=2 ; if (numamostra =80) then

46

Page 47: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

aceitavel:=5 ;

rindividual:=''; if (aceitavel>=nabaixo) then// calcula resultado do criterio individual rindividual:='Aprovado' else rindividual:='Reprovado';

//calcula resultado geral

rgeral:=''; if (rmedia='Reprovado') or (rindividual='Reprovado') then rgeral:='Reprovado' else rgeral:= 'Aprovado';

if not (fmLaudos.qryCadastro.State in [dsedit, dsinsert]) then begin fmLaudos.qrycadastro.Edit; end;//if fmLaudos.qryCadastroCMedia.AsFloat:= cmedia; fmLaudos.qryCadastroamostra_aceitavel.AsInteger:=aceitavel; fmLaudos.qryCadastrodefeituosas_encontrada.AsInteger:=nabaixo; fmLaudos.qryCadastroRFinal.AsString:=rgeral; fmLaudos.qryCadastroRIndividual.AsString:=rindividual; fmLaudos.qryCadastroCIndividual.AsFloat:=cindividual; fmLaudos.qryCadastroTolerancia.AsFloat:=tolerancia; fmLaudos.qryCadastroRMedia.AsString:=rmedia; fmLaudos.qrycadastro.post; fmLaudos.btnSalvarClick(fmLaudos.btnSalvar);

end;// procedure btnsalvar

end.

unit unLaudos;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uTelaCadastro, DB, ADODB, ComCtrls, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, RpDefine, RpBase, RpSystem, rpdevice;

type TfmLaudos = class (TfTelaCadastro) qryCadastroNumLaudo: TIntegerField; qryCadastroDataVerificacao: TDateField; qryCadastroMedia: TFloatField;

47

Page 48: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

qryCadastroTolerancia: TFloatField; qryCadastroCMedia: TFloatField; qryCadastroCIndividual: TFloatField; qryCadastroRIndividual: TWideStringField; qryCadastroRMedia: TWideStringField; qryCadastroRFinal: TWideStringField; qryCadastroQAmostra: TIntegerField; qryCadastrocodproduto: TIntegerField; qryCadastromatricula_usuario: TIntegerField; qryCadastromassa_esp: TFloatField; Label1: TLabel; ed_nlaudo: TDBEdit; Label2: TLabel; ed_data: TDBEdit; Label3: TLabel; ed_loteProduto: TDBEdit; Label4: TLabel; Label5: TLabel; db_media: TDBEdit; Label6: TLabel; ed_tolerancia: TDBEdit; Label7: TLabel; Label8: TLabel; Label9: TLabel; ed_cMedia: TDBEdit; Label10: TLabel; ed_cIndividual: TDBEdit; Label11: TLabel; ed_massa_esp: TDBEdit; lookProduto: TDBLookupComboBox; qryProduto: TADOQuery; qryProdutoNomeProduto: TWideStringField; qryProdutoMarca: TWideStringField; qryProdutoCodProduto: TIntegerField; dsProduto: TDataSource; qryProdutoquantidadenominal: TFloatField; comboQuantAmostra: TDBComboBox; qryCadastroLoteProduto: TWideStringField; qryEmbalagem: TADOQuery; qryEmbalagemcod_embalagem: TIntegerField; qryEmbalagemnum_laudo: TIntegerField; qryEmbalagemvalor1: TFloatField; qryEmbalagemvalor2: TFloatField; qryEmbalagemvalor3: TFloatField; qryEmbalagemvalor4: TFloatField; qryEmbalagemvalor5: TFloatField; qryEmbalagemvalor6: TFloatField; DataSource1: TDataSource; qryEmbalagemmedia_emb: TFloatField; LookUsuario: TDBLookupComboBox; Label19: TLabel; qryUsuario: TADOQuery; qryUsuarioMatricula: TIntegerField; qryUsuarioNome: TWideStringField;

48

Page 49: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

dsUsuario: TDataSource; btnVBrutos: TBitBtn; btnEmbalagem: TBitBtn; Label12: TLabel; Label13: TLabel; Label14: TLabel; DBEdit1: TDBEdit; Label15: TLabel; DBEdit2: TDBEdit; Label16: TLabel; DBEdit4: TDBEdit; qryProdutounidade: TWideStringField; Label17: TLabel; qryCadastrodesvio_padrao: TFloatField; Label18: TLabel; ed_desvio: TDBEdit; qryCadastroamostra_aceitavel: TIntegerField; qryCadastrodefeituosas_encontrada: TIntegerField; Label20: TLabel; DBEdit3: TDBEdit; Label21: TLabel; DBEdit5: TDBEdit; gb_localizar: TGroupBox; ed_pesquisa: TEdit; Label22: TLabel; bt_pesquisar: TButton; RvSystem1: TRvSystem; qryCadastrotemperaturaproduto: TFloatField; Label23: TLabel; ed_temperatura: TDBEdit; cb_2t: TCheckBox; procedure FormShow(Sender: TObject); procedure btnNovoClick(Sender: TObject); procedure btnVBrutosClick(Sender: TObject); procedure btnSalvarClick(Sender: TObject); procedure btnEmbalagemClick(Sender: TObject); procedure qryCadastroAfterScroll(DataSet: TDataSet); procedure btnLocalizarClick(Sender: TObject); procedure bt_pesquisarClick(Sender: TObject); procedure ed_pesquisaKeyPress(Sender: TObject; var Key: Char); procedure RvSystem1Print(Sender: TObject); procedure RvSystem1NewPage(Sender: TObject); procedure btnImprimirClick(Sender: TObject);

private { Private declarations } public gNumLaudo:integer; gNumAmostras:integer; Procedure InicializaRelatorio; Procedure CabecalhoRelatorio; Procedure ImprimeRelatorio; { Public declarations } end;

49

Page 50: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

var fmLaudos: TfmLaudos;

implementation

uses unprincipal, unVbrutos, unEmbalagem;

{$R *.dfm}

procedure TfmLaudos.FormShow(Sender: TObject);begin inherited; qryProduto.open; qryUsuario.Open;end;

procedure TfmLaudos.btnNovoClick(Sender: TObject); //calcula numero do laudovar NovoCodigo : integer;begin inherited; with qryNovo, qryNovo.SQL do begin Close; Clear; Add('SELECT MAX("NumLaudo") AS valor '); Add('FROM "sc_trabalho"."Laudos" '); Open; end; if not qryNovo.IsEmpty then begin NovoCodigo := qryNovo.FieldByName('valor').AsInteger+1; end else // if NovoCodigo := 1; qryCadastroNumLaudo.AsInteger := NovoCodigo; gNumLaudo:=NovoCodigo; qryCadastroDataVerificacao.Value:=date; qryCadastromassa_esp.Value:=1; lookproduto.SetFocus;end;

procedure TfmLaudos.btnVBrutosClick(Sender: TObject);begin inherited; gNumLaudo:= qryCadastroNumLaudo.AsInteger; gNumAmostras:=qryCadastroQAmostra.AsInteger; fmVbrutos:=TfmVbrutos.Create(application); fmVbrutos.Show;

end;

50

Page 51: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

procedure TfmLaudos.btnSalvarClick(Sender: TObject);begin inherited; //if qryEmbalagem.State in [dsinsert, dsedit] then // qryEmbalagem.Post;end;

procedure TfmLaudos.btnEmbalagemClick(Sender: TObject); begin fmLaudos.gNumLaudo:=qryCadastroNumLaudo.Value; fmLaudos.gNumAmostras := qryCadastroQAmostra.Value; fmEmbalagem:=TfmEmbalagem.Create(application); fmEmbalagem.show;end; //procedure

procedure TfmLaudos.qryCadastroAfterScroll(DataSet: TDataSet);begin inherited; btnAnterior .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Bof); btnProximo .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Eof); btnSalvar .Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnRestaurar.Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnNovo .Enabled := qryCadastro.State in [dsBrowse]; btnExcluir .Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty); btnLocalizar.Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty);

Case qryCadastro.State of dsInsert : begin lblState.Visible := True; lblState.Caption := 'Inserindo dados'; end; // dsInsert dsEdit : begin lblState.Visible := True; lblState.Caption := 'Alterando dados'; end; // dsInsert else begin lblState.Caption := ''; end; // else end; // case

end; // afterscroll

procedure TfmLaudos.btnLocalizarClick(Sender: TObject);begin inherited; gb_localizar.visible:=True; ed_pesquisa.SetFocus;end;

procedure TfmLaudos.bt_pesquisarClick(Sender: TObject);var numlaudopesq:integer;begin

51

Page 52: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

inherited; if ed_pesquisa.Text= '' then exit; numlaudopesq:=StrToInt(ed_pesquisa.Text);// pegua string do campo pesquisa e transforma em integer qrycadastro.Locate('NumLaudo',numlaudopesq,[loPartialKey]); gb_localizar.Visible:=false;end;

procedure TfmLaudos.ed_pesquisaKeyPress(Sender: TObject; var Key: Char);begin inherited; if not (key in ['0'..'9',#8]) then begin key:=#0; end;end;

procedure TfmLaudos.RvSystem1Print(Sender: TObject);begin inherited; ImprimeRelatorio;end;

procedure TfmLaudos.RvSystem1NewPage(Sender: TObject);begin inherited; CabecalhoRelatorio;end;

procedure TfmLaudos.InicializaRelatorio;

begin with RVSystem1.SystemPrinter do begin MarginRight := 1; //margem direita MarginLeft := 1.5; MarginTop := 1; MarginBottom := 1; Units := unCM; UnitsFactor := 2.54; rpdev.Orientation := poPortrait; //retrato ou paisagem rpDev.SelectPaper('A4',False); Orientation := rpdev.Orientation; Copies := 1; RVSystem1.SystemPreview.RulerType := rtBothCm; //tipo de regua RVSystem1.SystemSetups := RVSystem1.SystemSetups - [ssAllowSetup]; RVSystem1.SystemPreview.FormState := wsMaximized; end; // with RVSystem1.Execute; Screen.Cursor := crDefault;

end;//procedure inicializa relatorio

52

Page 53: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

procedure TfmLaudos.CabecalhoRelatorio; //cabeçalhovar codigoproduto, defeituosasencontradas, numamostraaceitavel, quantidadeamostra, numerolaudo:integer; dataverificacao:TDateTime; mediaembalagem, criterioindividual, criteriomedia, tolerancia, mediavalorefetivo:double; quantidadenominal, temperaturaproduto, desviopadrao, massaespecifica:double; unidade, resultadoindividual,resultadomedia,resultadofinal,loteproduto :string; marcaproduto, nomeproduto, nomeusuario:string; valor1emb, valor2emb, valor3emb, valor4emb, valor5emb, valor6emb:double;

Begin numerolaudo:=qryAuxiliar.fieldbyname('numerolaudo').AsInteger; dataverificacao:=qryAuxiliar.fieldbyname('dataverificacao').AsDateTime; mediavalorefetivo:=qryAuxiliar.fieldbyname('mediavalorefetivo').AsFloat; tolerancia:=qryAuxiliar.fieldbyname('tolerancia').AsFloat; criteriomedia:=qryAuxiliar.fieldbyname('criteriomedia').AsFloat; criterioindividual:=qryAuxiliar.fieldbyname('criterioindividual').AsFloat; resultadoindividual:=qryAuxiliar.fieldbyname('resultadoindividual').AsString; resultadomedia:=qryAuxiliar.fieldbyname('resultadomedia').AsString; resultadofinal:=qryAuxiliar.fieldbyname('resultadofinal').AsString; loteproduto:=qryAuxiliar.fieldbyname('loteproduto').AsString; quantidadeamostra:=qryAuxiliar.fieldbyname('quantidadeamostra').AsInteger; massaespecifica:=qryAuxiliar.fieldbyname('massaespecifica').AsFloat; desviopadrao:=qryAuxiliar.fieldbyname('desviopadrao').AsFloat; numamostraaceitavel:=qryAuxiliar.fieldbyname('numamostraaceitavel').AsInteger; defeituosasencontradas:=qryAuxiliar.fieldbyname('defeituosasencontradas').AsInteger; codigoproduto:=qryAuxiliar.fieldbyname('codigoproduto').AsInteger; temperaturaproduto:=qryAuxiliar.fieldbyname('temperaturaproduto').AsFloat; nomeusuario:=qryAuxiliar.fieldbyname('nomeusuario').AsString; nomeproduto:=qryAuxiliar.fieldbyname('nomeproduto').AsString; quantidadenominal:=qryAuxiliar.fieldbyname('quantidadenominal').AsFloat; unidade:=qryAuxiliar.fieldbyname('unidade').AsString; marcaproduto:=qryAuxiliar.fieldbyname('marcaproduto').AsString; mediaembalagem:=qryAuxiliar.fieldbyname('mediaembalagem').AsFloat; valor1emb:=qryAuxiliar.fieldbyname('valor1emb').AsFloat; valor2emb:=qryAuxiliar.fieldbyname('valor2emb').AsFloat; valor3emb:=qryAuxiliar.fieldbyname('valor3emb').AsFloat; valor4emb:=qryAuxiliar.fieldbyname('valor4emb').AsFloat; valor5emb:=qryAuxiliar.fieldbyname('valor5emb').AsFloat; valor6emb:=qryAuxiliar.fieldbyname('valor6emb').AsFloat;

with RVSystem1.BaseReport do begin //MarginLeft := 1.5; //MarginTop := 1.5; //MarginRight := 1; // Bold := False; //PrintBitmapRect(MarginLeft,MarginTop,MarginLeft+1.5,MarginTop+1.5,Image1.Picture.Bitmap); SetFont('Arial',14); // MarginLeft := 3.5; Home; PrintHeader('NOME DA EMPRESA', pjLeft);

53

Page 54: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

MarginTop := MarginTop+1*LineHeight; printHeader('ENDEREÇO DA EMPRESA', pjLeft); MarginTop := MarginTop+1*LineHeight; PrintHeader('ENDEREÇO DA EMPRESA E TELEFONE', pjLeft); MarginTop := MarginTop+2.5*LineHeight; Bold := True;

PrintLeft('LAUDO NUM : '+IntToStr(numerolaudo), 15); MarginTop := MarginTop+1*LineHeight; moveto(MarginLeft, ypos); lineto(PageWidth-MarginRight, ypos); moveto(12.6, ypos); lineto(12.6, ypos+4.17); SetFont('Arial',10);

NewLine; PrintLeft('ESPECIFICAÇÕES DO PRODUTO', 3); Printleft('PESOS DAS EMBALAGENS (g)',13); home; moveto(MarginLeft, ypos+0.2); lineto(PageWidth-MarginRight, ypos+0.2); NewLine; NewLine; PrintLeft('Produto : '+nomeproduto ,MarginLeft); PrintLeft('Código : '+IntToStr(codigoproduto) ,9); SetFont('Arial',8); PrintLeft('Quantidade Examinada : ',13); SetFont('Arial',10); NewLine; NewLine; PrintLeft('Marca : '+marcaproduto ,MarginLeft); PrintLeft('Média : '+FormatFloat('#.0',mediaembalagem),13); NewLine; NewLine; PrintLeft('Conteúdo Nominal : '+FormatFloat('#.0',quantidadenominal)+' '+unidade ,MarginLeft); PrintLeft('Lote de Fabricação: '+loteproduto,7); PrintLeft('P1 : '+FormatFloat('0.0',valor1emb),13); PrintLeft('P2 : '+FormatFloat('0.0',valor2emb),15.5); PrintLeft('P3 : '+FormatFloat('0.0',valor3emb),18.3); NewLine; NewLine; PrintLeft('Temperatura do Produto : '+FormatFloat('0.0',temperaturaproduto)+' ºC',MarginLeft); PrintLeft('Massa Específica : '+FormatFloat('0.000',massaespecifica)+' g/cm³',7); PrintLeft('P4 : '+FormatFloat('0.0',valor4emb),13); PrintLeft('P5 : '+FormatFloat('0.0',valor5emb),15.5); PrintLeft('P6 : '+FormatFloat('0.0',valor6emb),18.3); NewLine; moveto(MarginLeft, ypos); lineto(PageWidth-MarginRight, ypos); NewLine; PrintLeft('CRITÉRIOS DE APROVAÇÃO ',8.5); moveto(MarginLeft, ypos+0.1); lineto(PageWidth-MarginRight, ypos+0.1);

54

Page 55: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

NewLine; NewLine; PrintLeft('CRITÉRIO INDIVIDUAL ',3); PrintLeft('CRITÉRIO DA MÉDIA ',10); PrintLeft('CONCLUSÃO ',17.15); moveto(MarginLeft, ypos+0.1); lineto(PageWidth-MarginRight, ypos+0.1); moveto(8, ypos-0.75); lineto(8, ypos+3); moveto(16, ypos-0.75); lineto(16, ypos+3); NewLine; NewLine; PrintLeft('Defeituosas Encontradas: '+IntToStr(defeituosasencontradas),2); PrintLeft('Média Mínima Aceitável: '+FormatFloat('#.0',criteriomedia)+' '+unidade,8.2); NewLine; NewLine; PrintLeft('Valor Mín. Aceitável: '+FormatFloat('#.0',criterioindividual)+' '+unidade,2); PrintLeft('Média : '+FormatFloat('#.0',mediavalorefetivo)+' '+unidade,8.2); PrintLeft('Desvio Padrão : '+FormatFloat('#.0',desviopadrao),12); SetFont('Arial',14); PrintLeft(resultadofinal,17); SetFont('Arial',10); NewLine; NewLine; PrintLeft('Resultado Individual: ',2); bold:=true; PrintLeft(resultadoindividual,5.8); bold:=false; PrintLeft('Resultado da Média: ',8.2); bold:=true; PrintLeft(resultadomedia,12); bold:=false; moveto(MarginLeft, ypos+0.42); lineto(PageWidth-MarginRight, ypos+0.42); NewLine; NewLine; PrintLeft(' QUANTIDADES ENCONTRADAS ',8.5); moveto(MarginLeft, ypos+0.1); lineto(PageWidth-MarginRight, ypos+0.1); NewLine; bold:=true; PrintLeft(' Amostra nº ',2); PrintLeft(' Peso Bruto (g) ',6.9); PrintLeft(' Peso da Embalagem (g) ',10.6); PrintLeft(' Efetivo '+'('+unidade+')',16.6); bold:=false; moveto(MarginLeft, ypos+0.1); lineto(PageWidth-MarginRight, ypos+0.1); NewLine; qrypesquisa.First; while true do begin moveto(MarginLeft, ypos+0.1);

55

Page 56: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

lineto(PageWidth-MarginRight, ypos+0.1); PrintRight(qrypesquisa.fieldbyname('num_amostra').AsString,3); PrintRight(FormatFloat('#.0',qrypesquisa.fieldbyname('valor_bruto').Asfloat),8.5); PrintRight(FormatFloat('#.0',mediaembalagem),13); PrintRight(FormatFloat('#.0',qrypesquisa.fieldbyname('valor_efetivo').Asfloat),18); NewLine; qryPesquisa.Next; if qryPesquisa.Eof then break; end; MarginTop := 27.5; moveto(MarginLeft, ypos+0.1); lineto(PageWidth-MarginRight, ypos+0.1); NEWLINE; NEWLINE; PrintCENTER(nomeusuario ,6); PrintCENTER('DATA DA VERIFICAÇÃO : '+DateToStr(dataverificacao),16); NewLine; PrintCENTER('RESPONSÁVEL PELO EXAME' ,6);

end;//with

end;//procedure cabeçalho

Procedure TfmLaudos.ImprimeRelatorio;begin

end;//procedure imprime relatorio

procedure TfmLaudos.btnImprimirClick(Sender: TObject);begin inherited; gNumLaudo:=qryCadastroNumLaudo.AsInteger; with qryAuxiliar, qryAuxiliar.SQL do begin close; clear; Add('SELECT *'); Add('FROM "sc_trabalho"."vi_relatorio"'); Add('WHERE "numerolaudo"= :plaudo '); Parameters.ParamByName('plaudo').Value:=gNumLaudo; Open; end;

with qrypesquisa, qrypesquisa.SQL do begin close; clear; Add('SELECT *'); Add('FROM "sc_trabalho"."VBrutos"'); Add('WHERE "num_laudo"= :plaudo '); add('ORDER BY "num_amostra" '); Parameters.ParamByName('plaudo').Value:=gNumLaudo;

56

Page 57: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

Open; end;

InicializaRelatorio;end;

end.

unit unProduto;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uTelaCadastro, DB, ADODB, ComCtrls, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls;

type TfmProduto = class (TfTelaCadastro) qryCadastroCodProduto: TIntegerField; qryCadastroNomeProduto: TWideStringField; qryCadastroMarca: TWideStringField; Label1: TLabel; DBEdit1: TDBEdit; Label2: TLabel; ed_nomeProduto: TDBEdit; Label3: TLabel; ed_marca: TDBEdit; Label4: TLabel; DBEdit4: TDBEdit; qryCadastroquantidadenominal: TFloatField; qryCadastrounidade: TWideStringField; DBComboBox1: TDBComboBox; procedure btnNovoClick(Sender: TObject); procedure qryCadastroAfterScroll(DataSet: TDataSet); private { Private declarations } public { Public declarations } end;

var fmProduto: TfmProduto;

implementation

uses unprincipal;

{$R *.dfm}

procedure TfmProduto.btnNovoClick(Sender: TObject); var NovoCodigo : integer;begin

57

Page 58: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

inherited; with qryNovo, qryNovo.SQL do begin Close; Clear; Add('SELECT MAX("CodProduto") AS valor '); Add('FROM "sc_trabalho"."Produtos" '); Open; end; if not qryNovo.IsEmpty then begin NovoCodigo := qryNovo.FieldByName('valor').AsInteger+1; end else // if NovoCodigo := 1; qryCadastroCodProduto.AsInteger := NovoCodigo; ed_nomeProduto.SetFocus;end;

procedure TfmProduto.qryCadastroAfterScroll(DataSet: TDataSet);begin inherited; btnAnterior .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Bof); btnProximo .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Eof); btnSalvar .Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnRestaurar.Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnNovo .Enabled := qryCadastro.State in [dsBrowse]; btnExcluir .Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty); btnLocalizar.Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty);

Case qryCadastro.State of dsInsert : begin lblState.Visible := True; lblState.Caption := 'Inserindo dados'; end; // dsInsert dsEdit : begin lblState.Visible := True; lblState.Caption := 'Alterando dados'; end; // dsInsert else begin lblState.Caption := ''; end; // else end; // caseend;

end.

58

Page 59: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

unit unUsuario;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uTelaCadastro, DB, ADODB, ComCtrls, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls;

type TfmUsuario = class (TfTelaCadastro) qryCadastroMatricula: TIntegerField; qryCadastroNome: TWideStringField; Label1: TLabel; DBEdit1: TDBEdit; Label2: TLabel; DBEdit2: TDBEdit; procedure qryCadastroAfterScroll(DataSet: TDataSet); private { Private declarations } public { Public declarations } end;

var fmUsuario: TfmUsuario;

implementation

uses unprincipal;

{$R *.dfm}

procedure TfmUsuario.qryCadastroAfterScroll(DataSet: TDataSet);begin inherited; btnAnterior .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Bof); btnProximo .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Eof); btnSalvar .Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnRestaurar.Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnNovo .Enabled := qryCadastro.State in [dsBrowse]; btnExcluir .Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty); btnLocalizar.Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty);

Case qryCadastro.State of dsInsert : begin lblState.Visible := True; lblState.Caption := 'Inserindo dados'; end; // dsInsert dsEdit : begin lblState.Visible := True; lblState.Caption := 'Alterando dados'; end; // dsInsert else begin

59

Page 60: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

lblState.Caption := ''; end; // else end; // caseend;

end.

unit unVbrutos;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uTelaCadastro, DB, ADODB, ComCtrls, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, Grids, DBGrids;

type TfmVbrutos = class (TfTelaCadastro) qryCadastrocod_bruto: TIntegerField; qryCadastrovalor_bruto: TFloatField; qryCadastronum_amostra: TIntegerField; qryCadastronum_laudo: TIntegerField; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; qryCadastrovalor_efetivo: TFloatField; procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); procedure FormShow(Sender: TObject); procedure qryCadastroAfterScroll(DataSet: TDataSet); procedure qryCadastroBeforeEdit(DataSet: TDataSet); procedure btnSalvarClick(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var fmVbrutos: TfmVbrutos; gcont_amostra:integer;implementation

uses unprincipal, unLaudos, unEmbalagem;

{$R *.dfm}

procedure TfmVbrutos.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); var NovoCodigo : integer;begin case button of

60

Page 61: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

nbInsert : begin

with qryNovo, qryNovo.SQL do begin Close; Clear; Add('SELECT MAX("cod_bruto") AS valor '); Add('FROM "sc_trabalho"."VBrutos" '); Open; end; // with if not qryNovo.IsEmpty then begin NovoCodigo := qryNovo.FieldByName('valor').AsInteger+1; end else // if NovoCodigo := 1; qryCadastrocod_bruto.AsInteger := NovoCodigo;

with qryNovo, qryNovo.SQL do begin Close; Clear; //busca valor max da amostra Add('SELECT MAX("num_amostra") AS valor '); Add('FROM "sc_trabalho"."VBrutos" '); add('where "num_laudo" = :plaudo'); Parameters.ParamByName('plaudo').Value:=fmLaudos.gNumLaudo; Open; if qrynovo.RecordCount > 0 then gcont_amostra:=qrynovo.fieldByname('valor').AsInteger+1 else gcont_amostra:=1; if gcont_amostra=fmLaudos.gNumAmostras+1 then begin ShowMessage('Atingiu número máximo de amostra'); qryCadastro.Cancel; exit; end; end; // with

qryCadastronum_laudo.Value := fmLaudos.gNumLaudo; qryCadastronum_amostra.Value:=gcont_amostra; gcont_amostra:=gcont_amostra+1;

end; // case else end; end; //procedure

procedure TfmVbrutos.FormShow(Sender: TObject); var numLaudo:integer;begin inherited;

61

Page 62: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

numLaudo:=fmLaudos.gNumLaudo; with qryAuxiliar, qryAuxiliar.SQL do begin close; clear; // seleciona valores brutos do laudo add ('select "num_laudo" '); add ('from "sc_trabalho"."VBrutos" '); add ('where num_laudo= :plaudo'); Parameters.ParamByName('plaudo').Value:=numLaudo; open;

with qrycadastro, qrycadastro.SQL do begin close; clear; add ('select * '); add ('from "sc_trabalho"."VBrutos" '); add ('where num_laudo= :plaudo'); add ('order by "num_laudo","num_amostra"'); Parameters.ParamByName('plaudo').Value:=numLaudo; open; end; if not (qryAuxiliar.RecordCount > 0) then begin qryCadastro.Append; end; end;

end;

procedure TfmVbrutos.qryCadastroAfterScroll(DataSet: TDataSet);begin inherited; btnAnterior .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Bof); btnProximo .Enabled := (qryCadastro.State = dsBrowse) and not (qryCadastro.Eof); btnSalvar .Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnRestaurar.Enabled := qryCadastro.State in [dsEdit, dsInsert]; btnNovo .Enabled := qryCadastro.State in [dsBrowse]; btnExcluir .Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty); btnLocalizar.Enabled := (qryCadastro.State in [dsBrowse]) and not (qryCadastro.IsEmpty);

Case qryCadastro.State of dsInsert : begin lblState.Visible := True; lblState.Caption := 'Inserindo dados'; end; // dsInsert dsEdit : begin lblState.Visible := True; lblState.Caption := 'Alterando dados'; end; // dsInsert else begin lblState.Caption := ''; end; // else

62

Page 63: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

end; // case

end;

procedure TfmVbrutos.qryCadastroBeforeEdit(DataSet: TDataSet);begin inherited; lblstate.Caption:='Inserindo Dados'; lblState.Visible:=true; end;

procedure TfmVbrutos.btnSalvarClick(Sender: TObject);begin

with qryPesquisa, qryPesquisa.SQL do begin // close; clear; add ('select "media_emb"'); add('from "sc_trabalho"."VEmbalagens" '); add('where "num_laudo"= :plaudo '); Parameters.ParamByName('plaudo').Value:=fmLaudos.gNumLaudo; open; end;//with if qryPesquisa.RecordCount > 0 then // verifica se tem registro begin qryCadastrovalor_efetivo.AsFloat:=qryCadastrovalor_bruto.AsFloat-qryPesquisa.fieldbyname('media_emb').AsFloat; end;//if inherited; qryCadastro.Refresh;end;

initialization gcont_amostra:=1;end.

unit uTelaCadastro;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls,ComCtrls, Grids, DBGrids;

type TfTelaCadastro = class (TForm) Panel3: TPanel; lblCaption: TLabel; lblState: TLabel;

63

Page 64: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

btnMinimize: TSpeedButton; Image1: TImage; Panel2: TPanel; btnInicio: TSpeedButton; btnFim: TSpeedButton; btnSalvar: TBitBtn; btnRestaurar: TBitBtn; btnExcluir: TBitBtn; btnNovo: TBitBtn; btnProximo: TBitBtn; btnAnterior: TBitBtn; dbedLimpaCampo: TDBEdit; Panel1: TPanel; btnAjuda: TBitBtn; btnFechar: TBitBtn; btnLocalizar: TBitBtn; btnDetalhes: TBitBtn; btnImprimir: TBitBtn; qryCadastro: TADOQuery; qryAuxiliar: TADOQuery; qryPesquisa: TADOQuery; dsCadastro: TDataSource; qryNovo: TADOQuery; Stbar: TStatusBar; procedure btnExcluirClick(Sender: TObject); procedure btnSalvarClick(Sender: TObject); procedure btnRestaurarClick(Sender: TObject); procedure btnProximoClick(Sender: TObject); procedure btnAnteriorClick(Sender: TObject); procedure btnNovoClick(Sender: TObject); procedure btnFecharClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormKeyPress(Sender: TObject; var Key: Char); procedure qryCadastroBeforeEdit(DataSet: TDataSet); procedure FormCreate(Sender: TObject); procedure qryCadastroAfterEdit(DataSet: TDataSet); procedure btnFimClick(Sender: TObject); procedure btnInicioClick(Sender: TObject); private { Private declarations } public { Public declarations } StrNovo : Tstrings; // variavel que contem o comando SELECT bSequencial : boolean; // True->Gera sequencial a cada novo registro // Inicializar com True/false antes do inherited do btnNovoClick procedure VerificaEstadoTabela; end;

var fTelaCadastro: TfTelaCadastro;

implementation

uses unPrincipal;64

Page 65: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

{$R *.dfm}

procedure TfTelaCadastro.VerificaEstadoTabela;begin btnAnterior .Enabled := False; btnProximo .Enabled := False; btnSalvar .Enabled := False; btnRestaurar.Enabled := False; btnNovo .Enabled := False; btnExcluir .Enabled := False;

Case qryCadastro.State of dsInsert : begin lblState.Visible := True; lblState.Caption := 'Inserindo dados'; btnSalvar.Enabled := True; btnRestaurar.Enabled := True; end; // dsInsert dsEdit : begin lblState.Visible := True; lblState.Caption := 'Alterando dados'; btnSalvar.Enabled := True; btnRestaurar.Enabled := True; end; // dsInsert else begin lblState.Caption := ''; btnAnterior .Enabled := True; btnProximo .Enabled := True; btnNovo .Enabled := True; btnExcluir .Enabled := True; end; // else end; // case

end; // VerificaEstadoTabela

procedure TfTelaCadastro.btnExcluirClick(Sender: TObject);begin if MessageDlg('Excluir Registro?', mtConfirmation,[mbYes,mbNo],mrNo) = mrYes then qryCadastro.Delete; qryCadastro.Fields[0].FocusControl;

end;

procedure TfTelaCadastro.btnSalvarClick(Sender: TObject);begin if qryCadastro.State in [dsInsert,dsEdit] then qryCadastro.post; qryCadastro.Fields[0].FocusControl; VerificaEstadoTabela;end;

procedure TfTelaCadastro.btnRestaurarClick(Sender: TObject);65

Page 66: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

begin qryCadastro.CancelUpdates; qryCadastro.Fields[0].FocusControl; lblState.Caption := ''; VerificaEstadoTabela;end;

procedure TfTelaCadastro.btnProximoClick(Sender: TObject);var vlcMensagem: string;begin vlcMensagem := ''; if qryCadastro.state = dsInsert then vlcMensagem := 'Deseja INCLUIR os dados digitados?' else if qryCadastro.state = dsEdit then vlcMensagem := 'Deseja SALVAR os dados digitados?'; if qryCadastro.state in [dsInsert,dsEdit] then begin case MessageDlg(vlcMensagem,mtConfirmation, [mbYes,mbNo,mbCancel],mrCancel) of mrYes: qryCadastro.post; mrNo: qryCadastro.CancelUpdates; mrCancel: begin qryCadastro.Fields[0].FocusControl; abort; end; end; end; qryCadastro.MoveBy(1);end;

procedure TfTelaCadastro.btnAnteriorClick(Sender: TObject);var vlcMensagem: string;begin vlcMensagem := ''; if qryCadastro.state = dsInsert then vlcMensagem := 'Deseja INCLUIR os dados digitados?' else if qryCadastro.state = dsEdit then vlcMensagem := 'Deseja SALVAR os dados digitados?'; if qryCadastro.state in [dsInsert,dsEdit] then begin case MessageDlg(vlcMensagem,mtConfirmation, [mbYes,mbNo,mbCancel],mrCancel) of mrYes: qryCadastro.post; mrNo: qryCadastro.CancelUpdates; mrCancel: begin qryCadastro.Fields[0].FocusControl; abort; end; end; end; qryCadastro.MoveBy(-1);end;

66

Page 67: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

procedure TfTelaCadastro.btnNovoClick(Sender: TObject);var nCodigo : integer; vCodigo : string;begin

{Tamanho do código 6 } qryCadastro.Append; VerificaEstadoTabela; end;

procedure TfTelaCadastro.btnFecharClick(Sender: TObject);begin Close;end;

procedure TfTelaCadastro.FormShow(Sender: TObject);begin //qryCadastro.Parameters.ParamByName('pSetor').Value := fPrincipal.gSetor; qryCadastro.Open; lblState.Visible := False; lblCaption.Visible := False;

//Self.Top := Trunc( (570 - Self.Height)/2 ); Self.Left := Trunc( (1024+150 - Self.Width)/2); Self.Top := 50; //Self.Left := 20;

end;

procedure TfTelaCadastro.FormKeyPress(Sender: TObject; var Key: Char);begin if (key = #13) then begin Perform(WM_NEXTDLGCTL,0,0); key := #0; end; // ifend;

procedure TfTelaCadastro.qryCadastroBeforeEdit(DataSet: TDataSet);begin lblState.Visible := True; lblState.Caption := 'Alterando dados';end;

procedure TfTelaCadastro.FormCreate( Sender: TObject );begin //Self.Top := 50; //Self.Left := 20;end;

procedure TfTelaCadastro.qryCadastroAfterEdit(DataSet: TDataSet);begin VerificaEstadoTabela;

67

Page 68: Programa para monitoramento de produtos pré-medidosprojetos.inf.ufsc.br/arquivos_projetos/projeto_642/Projeto…  · Web viewWord-key: daily pay-measured ... Em seguida à geração

end;

procedure TfTelaCadastro.btnFimClick(Sender: TObject);begin qryCadastro.Last;end;

procedure TfTelaCadastro.btnInicioClick(Sender: TObject);begin qryCadastro.First;

end;

end.

68