Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 EAD657 – Tecnologia de Informação Trabalho Prof. Hiroo Takaoka Objetivo Desenvolver um sistema em Access para calcular o Índice da Cesta Básica (ICB). Grupo Quatro alunos no máximo. Se tiver mais do que quatro alunos, o trabalho do grupo será desconsiderado. Data de entrega O trabalho deverá ser entregue até o dia 21/11/2014. Forma de entrega O trabalho deverá ser entregue via opção entrega de trabalho do ERUDITO. Colocar no campo de AUTORES DO TRABALHO E COMENTÁRIOS as identificações (número USP e nome) completas dos componentes do grupo. Observações: Não há necessidade de entregar um exemplo do relatório. Não utilizar caracteres especiais (~, &, %, etc.) no nome do seu banco de dados. Observação importante Na prova unificada terá questão sobre o trabalho. A nota do trabalho vai depender da resposta desta questão. 2 Requisitos do sistema Deseja-se obter a cada mês a variação de preço de uma cesta básica de produtos de consumo (ICB – Índice da Cesta Básica) como mostra a Figura 1. A cada mês os preços dos produtos que compõem a cesta são coletados em informantes que comercializam estes produtos. Os pares informante/produto são pré-estabelecidos, portanto, quem coleta os preços precisa saber exatamente quais informantes e quais produtos devem ser pesquisados. No procedimento do cálculo da variação de preço devem ser considerados apenas os produtos que possuem cotações coletadas em meses consecutivos. Cada produto possui composição específica na cesta. Figura 1 – Índice da Cesta Básica (ICB) ICB $x $y Variação Mês i-1 Mês i x xyICB 3 A Figura 2 mostra a organização do sistema ICB em Access que você deve desenvolver. Figura 2 – Janela de banco de dados do Access 4 Roteiro para execução do trabalho A Figura 3 mostra as tarefas que devem ser executadas para desenvolver o sistema. Figura 3 – Tarefas a serem executadas Criação do Banco de Dados ICB Para criar o banco de dados ICB execute as seguintes tarefas: Criar um banco de dados em branco com nome icb Criar as tabelas cadinf, cadpro e cadfor Criar os relacionamentos entre as tabelas cadinf, cadpro e cadfor Alimentar as tabelas com dados Criar para cada tabela um formulário de entrada de dados cadprocadprocadforcadforcadinfcadinf cadinfcadinf cadforcadfor cadprocadpro coleta de cotaçõescoleta de cotações preços pareadospreços pareados consistência da coleta de preços consistência da coleta de preços preços médiospreços médios preços da cestapreços da cesta variação percentualvariação percentual coleta de cotaçõescoleta de cotações coleta de cotaçõescoleta de cotações prepara cadforprepara cadforDigitação atualiza o cadastro Digitação Criar Tabelas Criar Consultas Criar Formulários Criar Relatórios cadprocadprocadforcadforcadinfcadinf cadinfcadinf cadforcadfor cadprocadpro coleta de cotaçõescoleta de cotações preços pareadospreços pareados consistência da coleta de preços consistência da coleta de preços preços médiospreços médios preços da cestapreços da cesta variação percentualvariação percentual coleta de cotaçõescoleta de cotações coleta de cotaçõescoleta de cotações prepara cadforprepara cadforDigitação atualiza o cadastro Digitação Criar Tabelas Criar Consultas Criar Formulários Criar Relatórios Criar Tabelas Criar Consultas Criar Formulários Criar Relatórios 5 Criar um banco de dados em branco com nome icb.accdb Para criar um banco de dados em branco siga os seguintes passos: 1. Selecione a opção Banco de Dados em Branco. 2. Selecione o diretório onde o novo banco de dados vai ser armazenado e no campo Nome do arquivo digite o nome icb. 3. Clique em Criar. Criar as tabelas cadinf, cadpro e cadfor A tabela cadinf (cadastro de informantes) é a tabela que armazena as informações do informante. Esta tabela é composta de seguintes campos: infnum É o número do informante (por exemplo, supermercado) onde serão coletados os preços. Este número identifica o informante internamente ao sistema e portanto constitui a chave primária. Definir este campo como: número inteiro sem decimais; varia de 10 a 99; chave primária. infnom É o nome do informante. Definir este campo como: texto[30]; requerido; comprimento não nulo. inftel É o número do telefone do informante. Definir este campo como: texto[8]; requerido; comprimento não nulo. Usar para o telefone a máscara de edição 9999- 9999;1;”_”. Ela exige que sejam digitados apenas algarismos nas posições onde aparece 9. A especificação 1 indica que no banco de dados serão armazenados apenas os algarismos. Isto significa que o hífen que aparece no número do telefone não é armazenado. Para armazenar inclusive o hífen deveria ser usada a especificação 0. A última especificação indica qual caractere será usado na tela para indicar em que posições devem ser digitados os algarismos. No caso está sendo usado o caractere de sublinhamento ( _ ). A tabela cadpro (cadastro de produtos) é a tabela que armazena informações gerais sobre os produtos que compõem a cesta. Estas informações auxiliam na coleta de preços e na computação do preço final total da cesta a cada mês. Esta tabela é composta de seguintes campos: pronum É o número do produto cujo preço irá ser pesquisado no informante. Este número identifica o produto internamente ao sistema e portanto constitui a chave primária. Definir este campo como: número inteiro sem decimais; varia de 100 a 999; chave primária. 6 protip É um código que identifica o tipo de produto. No exemplo, todos os produtos alimentícios são identificados pelo código 1. Isto permite, por exemplo, gerar relatórios de produtos por tipo. Definir este campo como: número inteiro sem decimais; valor padrão 0; requerido; varia de 0 a 5. Usar como formato do campo protip a especificação 0;;0[vermelho]. Esta especificação indica que os valores positivos serão apresentados em preto sem casas decimais, os negativos não têm formato previsto (ele ficaria entre os dois pontos e vírgulas), e os valores nulos serão também apresentados sem decimais mas em vermelho (vide Figura 5(b)). Isto auxilia a pessoa responsável pelo cadastro de produtos na identificação de informações que estão faltando. pronom É o nome do produto. Definir este campo como: texto[30]; requerido; comprimento não nulo. prouni É a unidade de medida na qual o preço é coletado. Por exemplo, coleta-se o preço de 1 kg de arroz e não o preço do pacote de 5 kg. Essa unidade deve constar na planilha com a qual o pesquisador de preços vai ao informante anotar o preço. Definir este campo como: texto[10]; não requerido. procom É a composição do produto na cesta. Este número indica quantas unidades de medida do produto são utilizadas ao longo do mês por uma família típica. No exemplo, ela consome três sabonetes ao longo de um mês. Definir este campo como: número simples com duas casas decimais; valor padrão 0; nulo ou positivo; requerido. Usar como formato do campo procom a especificação 0,00;;0,00[vermelho]. Esta especificação indica que os valores positivos serão apresentados em preto com duas casas decimais, os negativos não têm formato previsto (ele ficaria entre os dois pontos e vírgulas), e os valores nulos terão também duas casas decimais mas serão mostrados em vermelho (vide Figura 5(b)). Isto auxilia a pessoa responsável pelo cadastro de produtos na identificação de informações que estão faltando. A tabela cadfor (cadastro de fornecimentos) é a tabela que registra os preços coletados em dois meses subseqüentes. É importante observar que o preço de um determinadoproduto é coletado em vários informantes com objetivo de obter um preço médio que reflita melhor o preço real do produto. Além disso, é natural que num mesmo informante se coletem os preços de vários produtos diferentes. forinfnum É o número do informante. Definir este campo como: número inteiro sem decimais; varia de 10 a 99. forpronum É o número do produto para o qual o informante indicado pode fornecer um preço. Definir este campo como: número inteiro sem decimais; varia de 100 a 999. 7 forpre1 É o preço anotado no mês i-1. Se esse preço valer zero significa que por alguma razão o preço não foi informado. Definir este campo como: número simples com duas casas decimais; valor padrão 0; requerido; nulo ou positivo. forpre2 É o preço anotado no mês i. Se esse preço valer zero significa que por alguma razão o preço não será informado ou ainda não foi coletado. Definir este campo como: número simples com duas casas decimais; valor padrão 0; requerido; nulo ou positivo. Observação 1 Usar como formato dos preços (forpre1 e forpre2) a especificação #.##0,00[preto];;”zero”[vermelho]. Ela fará com que os preços positivos sejam mostrados em preto no formato indicado. Entre os pontos e vírgulas seria possível especificar um formato para preços negativos. A especificação final refere-se a preços nulos que serão apresentados através da palavra zero em vermelho (vide Figura 5(c)). Isto realça os preços que estão faltando facilitando a vida do responsável pelo cálculo do índice pois os preços nulos não podem entrar no cálculo. Se houver muitos preços nulos, afetará com certeza a qualidade do índice computado. Observação 2 Nesta tabela nem forinfnum e nem forpronum constituem isoladamente chaves primárias, pois basta observar que estes números se repetem na tabela. Entretanto, o par (forinfnum, forpronum) nunca se repete e portanto identifica exatamente uma única linha da tabela. Desta forma obtemos uma chave primária composta de dois campos. Para definir a chave primária em Access basta selecionar os dois campos e em seguida apertar o botão de chave primária ( ). Para criar a tabela siga os seguinte passos: 1. Selecione a opção Criar/Design da Tabelas. 2. Especifique os campos que compõem a tabela (para obter detalhes sugere-se ler o tópico “Criar nova tabela” da apostila “Introdução ao Microsoft Access”). 3. Salve a tabela com o nome sugerido (cadpro, cadinf e cadfor). Podemos salvar a tabela acionando o menu Arquivo e opção Salvar como. Também será salva a tabela se fechamos a janela através do botão de fechamento Windows ou via Fechar no menu Arquivo. Criar relacionamentos entre as tabelas cadinf, cadpro e cadfor Os relacionamentos são gerados observando que cada informante informa o preço de vários produtos e cada produto tem preços informados por vários informantes como mostra a Figura 4. Portanto, os relacionamentos entre cadinf e cadfor, bem como entre cadpro e cadfor são do tipo um-para-muitos. É importante impor a integridade referencial pois desta maneira não será possível registrar na tabela cadfor preços de informantes ou produtos que não estejam previamente cadastrados em cadinf e cadpro respectivamente. 8 Para criar os relacionamentos siga os seguintes passos: 1. Selecionar a opção Ferramentas de Banco de Dados/Relações( ). Em resposta, aparece a janela Relações acompanhada da janela Mostrar tabela contendo uma lista de tabelas. Se a janela Mostrar Tabela não aparecer, basta clicar na opção Mostrar Tabela. 2. Adicionar as tabelas da lista. Para tanto, selecione as tabelas cadinf, cadpro e cadfor (para selecionar mais de uma tabela marque as tabelas pressionando simultaneamente a tecla CTRL) e clique no botão Adicionar. Após adicionar as tabelas, clique no botão Fechar. Em resposta, aparece na janela Relações as tabelas adicionadas. Estas tabelas podem ser arrastadas e redimensionadas até que fiquem visualmente legíveis. 3. Para criar o relacionamento entre a tabela cadinf e a tabela cadfor, clica-se sobre o campo infnum na tabela cadinf e arrasta-se até o campo forinfnum na tabela cadfor. Em resposta, surge a caixa de diálogo Editar Relações para que sejam fornecidas mais especificações sobre o relacionamento em questão. Impor a integridade referencial para impossibilitar o registro na tabela cadfor preços de informantes que não estejam previamente cadastrados em cadinf. Ao ativar esta opção passa a ser necessário especificar também qual é o tipo de relacionamento. O tipo um-para- muitos já aparece selecionado porque é o padrão do Access. Em seguida, criar o relacionamento com integridade referencial entre as tabelas cadpro e cadfor, clicando sobre o campo pronum na tabela cadpro e arrastando até o campo forpronum na tabela cadfor. Para obter mais detalhes sugere-se ler o tópico “Criação de Relacionamentos” da apostila “Introdução ao Microsoft Access”. Figura 4 – Janela de relacionamentos 9 Alimentar as tabelas com dados. A entrada de dados (registros) na tabela é feita através de folha de dados. Para acioná-la, basta dar duplo clique no nome da tabela ou selecionar no Modo de Exibição a opção Modo de Exibição de Folha de Dados. Observamos que os dados sobre a cotação de preços só podem ser registrados após o cadastramento dos informantes e dos produtos. Como impomos a restrição de integridade referencial, ao registrar cotação de preços o Access verificará se o número do informante e o número do produto existem na tabela cadinf e cadpro respectivamente. Assim, só podemos cadastrar as cotações após o cadastramento dos informantes e dos produtos. A Figura 5 mostra as tabelas cadinf, cadpro e cadfor com seus dados. Sugere-se que sejam usados esses dados no seu trabalho. Figura 5(a) – Tabela cadinf (cadastro de informantes) Figura 5(b) – Tabela cadpro (cadastro de produtos) 10 Figura 5(c) – Tabela cadfor (cadastro de fornecimentos) Criar para cada tabela um formulário de entrada de dados Criar os formulários usando o assistente de formulário. Por exemplo, para criar o formulário correspondente à tabela cadinf com o Assistente de formulário, siga os seguintes passos: 1. Na janela Banco de dados selecione o botão Criar/Mais Formulários/Assistente de Formulário. 2. Escolha a tabela cadinf para a qual o formulário será desenvolvido. 3. Siga as indicações dadas pelas caixas de diálogo Assistente de formulário. Que campos você deseja no seu formulário? todos (botão >>) Que layout você deseja para seu formulário? tabela Que estilo você deseja? Selecione um estilo desejado. Que título você deseja para o seu formulário? cad 1: cadastro de informantes Na última caixa de diálogo, clique no botão Concluir. O Access exibe o formulário que o Assistente criou. O formulário gerado vai necessitar alguns ajustes que deverão ser feitos em modo design. Para inspecionar a estrutura do formulário gerado (Figura 6), acione o botão Modo Design. Figura 6 – Estrutura do formulário cad 1: cadastro de informantes O formulário gerado vai necessitar de alguns ajustes sugeridos abaixo: Alargar o formulário à direita. Alargar a caixa de texto do telefone (vide Figura 6). Alargar o rótulo do telefone (vide Figura 6). Alterar a propriedade aparência das três caixas de texto de baixo relevo para plano. Barra de cabeçalho Barra de detalhe Rótulo Caixa de texto 11 Para tanto, selecione a caixa de texto e acione a opção Folha de Propriedades. Em seguida, selecione a opção Plano na propriedade Aparência como mostra a Figura 7. Figura 7 – Folha de propriedades da caixa de texto referente ao campo infonum Mudar a cor de fundo do formulário. Para tanto, selecione a Barra de cabeçalho (vide Figura6) e acione a opção Folha de Propriedades. Em seguida, selecione a cor desejada na propriedade Cor do fundo como mostra a Figura 8. Figura 8 – Folha de propriedades do cabeçalho do formulário cad 1: cadastro de informantes 12 Selecione a Barra de detalhe (vide Figura 6) e acione a opção Folha de Propriedades. Em seguida, selecione a cor desejada na propriedade Cor do fundo como mostra a Figura 9. Figura 9 – Folha de propriedades do detalhe do formulário cad 1: cadastro de informantes A Figura 10 refere-se ao formulário cad1: cadastro de informantes. Figura 10 – Formulário cad1: cadastro de informantes Criar o formulário também para as tabelas cadpro e cadfor realizando os ajustes que considerar relevantes. Os nomes dos formulários correspondentes a cadpro e cadfor devem ser cad 2: cadastro de produtos e cad 3: cadastro fornecimentos respectivamente. Cálculo do Índice da Cesta Básica Para calcular o índice da cesta básica, execute as seguintes tarefas: Preparar preços pareados Calcular preços médios de cada produto Calcular preços da cesta 13 Calcular a variação percentual A Figura 11 mostra como o índice é calculado. registros com duas cotações médias por produto soma das multiplicações (entre procom e média) 14 Figura 11 – Passos para calcular o índice da cesta básica Preparar preços pareados A tabela cadfor (cadastro de fornecimentos) contém duas colunas de preços. A coluna forpre1 contém os preços coletados no mês i-1 (anterior) e a coluna forpre2 contém os preços coletados no mês i (atual). No procedimento do cálculo da variação de preço devem ser considerados apenas os produtos que possuem cotações coletadas em meses consecutivos. Esta seleção vai ser feita através da consulta cal 1: preços pareados (Figura 12). Esta consulta é criada da forma normal escolhendo a opção Criar/Design da Consulta. Na janela Mostrar tabela selecione a tabela cadfor e clique no botão Adicionar. Selecione todos os campos da tabela cadfor. Na linha de Critério especifique >0 para selecionar apenas os produtos que têm cotações nos meses i-1 (forpre1) e i (forpre2). Para ordenar por produto (forpronum) e informante (forinfnum) indicar na linha de Classificação a opção Crescente. Figura 12 – Estrutura da consulta cal 1: preços pareados Para evitar que os registros da tabela cadfor sejam alterados através desta consulta, é necessário especificar que a consulta é do tipo Instantâneo na janela Folha de Propriedades da consulta. Para abrir a janela Folha de Propriedades da consulta basta clicar na área de ordena por produto e fornecedor somente participam cotações com duas participações sucessivas (cesta2 –cesta1)/cesta1 15 fundo cinza na parte superior da janela de Consulta e acionar a opção Folha de Propriedades. Em seguida, selecione a opção Instantâneo na propriedade Tipo de conjunto de registros como mostra a Figura 13. Certifique-se que a janela de propriedades se refere à consulta como um todo e não a um campo particular dela. Salve a consulta com o nome sugerido: cal 1: preços pareados. Figura 13 – Folha de propriedades da consulta cal 1: preços pareados Ao acionar a execução da consulta aparece o resultado apresentado na Figura 14. Note-se que aparecem somente os produtos com as cotações sucessivas. Figura 14 – Resultado da consulta cal 1: preços pareados Calcular preços médios de cada produto Os preços médios de cada produto são calculados através da consulta cal 2: preços médios (Figura 15). Esta consulta é criada da forma normal escolhendo a opção Criar/Design da Consulta. Na janela Mostrar tabela selecione a consulta cal1 1: preços pareados e clique no botão Adicionar. Para obter médias é necessário acrescentar uma linha Total na planilha QBE. Para tanto, acionar a opção Totais ( ). 16 Para calcular os preços médios por produto, é necessário indicar na linha de Totais a opção Agrupar por no campo forpronum, Média no campo forpre1 e Média no campo forpre2. Para ordenar por produto indicar na linha de Classificação a opção Crescente no campo forpronum. Os nomes média1 e média2 que antecedem dois pontos (:) são os nomes a serem atribuídos aos campos forpre1 e forpre2 na exibição da consulta. Figura 15 – Estrutura da consulta cal 2: preços médios Salve a consulta com o nome cal 21: preços médios. Ao acionar a execução da consulta aparece o resultado apresentado na Figura 16. Note-se que os produtos aparecem na ordem crescente. Figura 16 - Resultado da consulta cal 2: preços médios Calcular preços da cesta O preço da cesta deve ser calculado como soma ponderada, uma vez que o preço da cesta depende do preço médio e da composição de cada produto que dela participa. Este preço da cesta será calculado através da consulta cal 3: preços da cesta (Figura 17). Como o valor da ponderação (procom) está armazenado na tabela cadpro, é necessário usar, além da consulta cal 2, a tabela cadpro. 17 Esta consulta é criada escolhendo a opção Criar/Design da Consulta. Na janela Mostrar tabela selecione e adicione a tabela cadpro e a consulta cal 2: preços médios. Em seguida, crie relacionamento entre a tabela cadpro e a consulta cal 2. Para criar este relacionamento, clica-se sobre o campo pronum na tabela cadpro e arrasta-se até o campo forpronum na consulta cal 2. Observamos que não é necessário impor a integridade referencial. Uma vez criado o relacionamento, especifique na planilha QBE as expressões: cesta1: Soma([média1]*[procom]) na primeira coluna da linha campo e cesta2: Soma([média2]*[procom]) na segunda coluna da linha campo O nome cesta1 que antecede dois pontos (:) é o nome a ser atribuído ao campo computado e a expressão Soma([média1]*[procom]) especifica como o valor deve ser calculado. Observe-se que os campos utilizados em expressões precisam estar entre colchetes, daí a razão de se escrever [média1], [procom] e [média2]. Figura 17 – Estrutura da consulta cal 3: preços da cesta O formato associado ao campo computado cesta1 e cesta2 pelo Access é Número geral que exibe apenas o número de casas decimais necessárias para cada valor. Para especificar o número fixo de casas decimais é necessário abrir a janela Folha de Propriedades do campo. Para tanto, selecione a coluna do campo computado e acione a opção Folha de Propriedades. Em seguida, especifique o Formato como Fixo com duas casas decimais ou Padrão como mostra a Figura 18. 18 Figura 18 – Folha de de propriedades dos campos computados cesta1 e cesta2 Salve a consulta com o nome sugerido: cal 3: preços da cesta. Ao acionar a execução da consulta aparece o resultado apresentado na Figura 19. Figura 19 – Resultado da consulta cal 3: preços da cesta Calcular a variação percentual A variação percentual deve ser calculada em relação ao mês anterior (mês i-1). Assim, a expressão será: variação percentual = (cesta2 – cesta1 ) / cesta1. Esta variação será calculada através da consulta cal 4: variação percentual (Figura 20). Figura 20 – Estrutura da consulta cal 4: variação percentual Esta consulta é criada escolhendo a opção Criar/Design da Consulta. Na janela Mostrar tabela selecione a consulta cal 3: preços da cesta e clique no botão Adicionar. Especifique na planilha QBE a seguinte expressão: variação percentual: ([cesta2]-[cesta1])/[cesta1] O nome variação percentual que antecede dois pontos (:) é o nome a ser atribuído ao campo computado e a expressão ([cesta2]-[cesta1])/[cesta1] especifica como o valor deve ser calculado. Observe-se que os campos utilizados em expressões precisam estar entre colchetes,daí a razão de se escrever [cesta1] e [cesta2]. O formato associado ao campo computado variação percentual pelo Access não está no formato Porcentagem. Para especificar que o 19 formato é porcentagem é necessário abrir a janela Folha de Propriedades do campo. Para tanto, selecione a coluna do campo computado e acione o botão Folha de Propriedades. Em seguida, especifique o Formato como Porcentagem, como mostra Figura 21. Figura 21 – Folha de propriedades do campo computado variação percentual Salve a consulta com o nome sugerido: cal 4: variação percentual. Ao acionar a execução da consulta aparece o resultado apresentado na Figura 22. Figura 22 – Resultado da consulta cal 4: variação percentual Consistência da Coleta de Preços O objetivo é fazer a consistência de preços coletados, verificando o número de cotações previstas e o número de cotações pareadas como mostra a Figura 23. O número de cotações previstas e pareados por produto será calculado através da consulta man 1: número de cotações por produto (Figura 24). Como a relação dos produtos que compõem a cesta está armazenada na tabela cadpro, é necessário usar, além da tabela cadfor, a tabela cadpro. Esta consulta é criada escolhendo a opção Criar/Design da Consulta. Na janela Mostrar tabela selecione as tabelas cadpro e cadfor e clique no botão Adicionar. Como é necessário incluir na consulta todos os produtos de cadpro e somente os produtos de cadfor quando os campos associados forem iguais, é necessário alterar a propriedade da associação entre elas. Para alterar a propriedade basta dar duplo clique na linha da associação e selecionar a opção 2 (incluir TODOS os registros de ‘cadpro’ e somente os registros de ‘cadfor’ quando os campos associados forem iguais) como mostra a Figura 25. Note-se que aparece a seta apontando a tabela cadfor. 20 Figura 23 – Consistência da coleta de preços Figura 24 – Estrutura da consulta man 1: num de cotações por produto se forpre1>0 e forpre2>0 então somar 1 senão somar 0 Incluir todos de cadpro e apenas os associados de cadfor agrupar por contar (forpre1) cot pareadas: Soma(Iif([forpre1]>0 E [forpre2]>0;1;0)) 21 Figura 25 –Propriedades da associação da consulta man 1: num de cotações por produto Para poder contar o número de cotações de cada produto é necessário acrescentar uma linha Total na planilha QBE. Para tanto, acionar a opção Totais ( ). Como na linha de Total é necessário especificar uma função para todas as colunas, foi usada a função Primeiro no campo pronom. Esta função serve para encontrar o valor do campo do primeiro registro do grupo em uma tabela ou consulta. A função Iif verifica se a condição [forpre1]>0 E [forpre2]>0 foi satisfeita e retorna 1 se for VERDADEIRA e retorna 0 se for FALSO. Observamos que o Access depois de salvar a consulta vai substituir automaticamente o nome da função Iif por SeImed (Se Imediato). Se você digitar diretamente SeImed, o Access vai dar mensagem de erro. A função Soma soma os valores que resultaram da função Iif, isto é, 0 e 1. Salve a consulta com o nome sugerido: man 1: num de cotações por produto. Formulário e Relatório para a Coleta de Cotações Para criar formulário para a coleta de cotações, siga os seguintes passos: Gerar a consulta que prepara o cadfor (cadastro de fornecimentos) Gerar a consulta para preparar a coleta de cotações Gerar o formulário para digitar as cotações do mês Gerar o relatório para coleta de cotações Gerar a consulta que prepara o cadfor (cadastro de fornecimentos) O cadastro de fornecimentos (cadfor) contém duas colunas de preços. A coluna forpre1 contém os preços coletados no mês i-1 e a coluna forpre2 contém os preços coletados no mês i. Apesar do cadastro possuir duas colunas de preços deve ficar claro que num determinado mês coletam-se apenas os preços deste mês i, sendo que os preços do mês 22 anterior i-1 já devem constar no cadastro na coluna forpre1. Portanto, precisa-se ajustar as colunas de forma a poder alimentar os novos preços. Por exemplo, se cadfor registra os preços dos meses de janeiro e fevereiro então ao coletar os preços do mês de março é necessário: Transferir o conteúdo da coluna forpre2 para a coluna forpre1 cujo conteúdo será destruído. Zerar a coluna forpre2 que assim estará preparada para receber os novos preços coletados. Esta operação de deslocamento do conteúdo da coluna forpre2 seguido de seu preenchimento de zeros é realizada a cada novo mês. Deve ficar claro que o cadastro cadfor deveria ser salvo antes de se realizar estas operações com objetivo de preservar os dados coletados (por exemplo, mês i-1 janeiro versus mês i fevereiro). Esta salva também é importante para eventualmente recompor o cadastro em caso de falha ou ação incorreta. Para salvar o conteúdo de cadfor selecione cadfor e acione Copiar e em seguida Colar atribuindo um nome significativo ao cadastro. No caso do exemplo, poderia ser cadforfev indicando que se trata do cadastro do mês de fevereiro como mostra a Figura 26. Figura 26 – Janela de tabelas do bando de dados do Access A consulta que prepara o cadastro de fornecimentos (cadfor) é man 2: prepara cadfor (Figura 27). Esta consulta é criada escolhendo a opção Criar/Design da Consulta. Na janela de estrutura deve-se acionar dois campos forpre1 e forpre2 e em seguida escolher na área Tipo de Consulta a opção Consulta atualização. Isto faz com que seja inserida a linha Atualizar para na planilha QBE. Nessa linha indica-se que forpre1 deve ser atualizado para [forpre2] e forpre2 deve ser atualizado para zero. Salve a consulta com o nome man 2: prepara cadfor. Observe que o ícone que aparece ao lado de consultas tipo atualização ( ) é diferente do ícone que identifica consultas tipo seleção ( ). 23 Figura 27 – Estrutura da consulta atualização man 2: prepara cadfor Observar que esta consulta passou a ser uma consulta que age sobre a tabela envolvida, isto é, ela não realiza uma seleção e mostrar apenas o conteúdo selecionado. Portanto, trata-se de uma consulta com característica diferente das anteriormente criadas. Para executá-la é necessário acionar o botão de atualização ( ) como mostra a Figura 28. Ao acionar este botão o Access avisa que a tabela será atualizada como mostra a janela de aviso da Figura 29. Figura 28 – Janela de Consultas do Banco de dados Figura 29 – Janela de aviso da consulta de atualização 24 Ao acionar o botão Sim, o Access pede para confirmar como mostra a janela da Figura 30. Figura 30 – Janela de confirmação da consulta de atualização Ao acionar o botão Sim, o Access vai atualizar os dados do cadfor. A tabela da Figura 31 refere-se à tabela cadfor após a atualização. Note-se que o conteúdo da coluna forpre2 da tabela cadfor antes da atualização foi transferido para a coluna forpre1 e a coluna forpre2 foi zerada. Figura 31 – Resultado da consulta atualização man 2: prepara cadfor Observar que se o botão de atualização for acionado duas vezes seguidas, acaba-se zerando as duas colunas de preços. Gerar a consulta para preparar a coleta de cotações A consulta que prepara a coleta de cotações é man 3: coleta de cotações (Figura 32). Esta consulta será utilizada para gerar formulário para realizar a entrada dos preços coletados. Ela também será utilizada para gerar o relatório em papel que será utilizado pela pessoa que irá coletar os preços nos informantes. Essa consulta é uma consulta tipo seleção padrão que apresenta os dados do informante, do produto e seus preços em meses subseqüentes. A Figura 32 mostra quais campos devem ser selecionados de cada tabelaenvolvida. 25 Novamente sugere-se acionar a Folha de Propriedades da consulta e na propriedade Tipo de conjunto de registros escolher a opção Instantâneo para impedir que o usuário possa alterar os dados que ela apresenta na folha de dados. Lembrar que para acionar as propriedades da consulta deve-se dar um clique na área de fundo cinza na parte superior da janela de Consulta e acionar a opção Folha de Propriedades. Certifique-se que a janela de Propriedades se refere à consulta como um todo e não a um campo particular dela. Salve a consulta com o nome sugerido: man 3: coleta de cotações. Figura 32- -Estrutura da consulta man 3: coleta de cotações A Figura 33 mostra o resultado da execução desta consulta. Figura 33 – Resultado da consulta man 3: coleta de cotações Gerar o formulário para digitar as cotações do mês Trata-se na realidade de um formulário que incorpora um subformulário como mostra a Figura 34. As duas barras de seleção de registros que aparecem indicam esta estrutura. A barra mais externa indica que está selecionado o registro 1 correspondente ao informante 21 (Supermercados Bom Preço). Neste informante são coletados os preços de três produtos: arroz, sabonete e feijão. Esses produtos estão apresentados no subformulário mais interno cuja barra de seleção de registros acusa a seleção do registro 1 (arroz). 26 Se o usuário selecionar outro informante na barra externa de seleção de registros então automaticamente serão mostrados seus produtos associados no subformulário. Essa estrutura é muito prática pois os preços serão coletados por informante e portanto é natural que sejam digitados por informante. Basta selecionar o informante e digitar os preços. Notar que apenas forpre2 será digitado (na Figura 34 esse campo está indicado com fundo em amarelo). Figura 34 – Formulário man 2: coleta de cotações As ações necessárias para gerar esse formulário/subformulário de forma geral são as seguintes: 1. Selecione a opção Criar/Mais Formulários/ Assistente de Formulário. 2. Escolha a consulta man 3: coleta de cotações para a qual o formulário será criado. 3. Siga as indicações dadas pelas caixas de diálogo Assistente de Formulário. Que campos você deseja no seu formulário? todos (botão >>) Como você deseja exibir seus dados? por cadinf (verifique se a opção Formulário com subformulário(s) está ativada) Que layout você deseja para seu formulário? tabela Que estilo você deseja? Selecione um estilo. Que título você deseja para o seu formulário? Formulário - man 2: coleta de cotações (formulário) Subformulário – man 2: coleta de cotações (subformulário) Na última caixa de diálogo, clique no botão Concluir. O Access exibe o formulário que o Assistente criou. O formulário/subformulário gerado vai necessitar alguns ajustes que deverão ser feitos em modo estrutura. 27 Figura 35 – Janela de estrutura do subformulário man 2: coleta de cotações Para fazer os ajustes no subformulário (Figura 35) siga os seguinte passos: Selecionar o formulário man 2: coleta de cotações (subformulário) e acionar o botão Modo estrutura. Alterar a propriedade Aparência dos campos para o plano. Ajustar o tamanho das caixas de texto e rótulos. Colocar outra cor de fundo na caixa de texto do forpre2. No subformulário, é necessário evitar que sejam alterados os dados dos campos prounm, pronom e forpre1, pois só deve permitir a digitação do preço forpre2. Assim, é necessário alterar a propriedade dos campos. Para abrir a janela Folha de Propriedades do campo pronum, selecione a caixa de texto correspondente e Folha de Propriedades e a opção Dados. Em seguida, especifique na propriedade Ativado a opção Não e na propriedade Bloqueado a opção Sim como mostra a Figura 36. Faça o mesmo para os campos pronom e forpre1. Além de impedir a digitação nos campos pronum, pronom e forpre1, também desejamos impedir a adição de novos produtos, e a exclusão de produtos já existentes. Para tanto, precisamos definir as propriedades do subformulário. Para abrir a janela Folha de Propriedades do subformulário dê duplo clique na área azul claro à direita (vide Figura 35) e selecione a opção Dados. Especifique nas propriedades Permitir adições e Permitir exclusões a opção Não. Já a propriedade Permitir edições deve ser preservada em Sim, pois queremos poder digitar o preço forpre2. A Figura 37 mostra esta janela de Propriedade do subformulário. Área azul claro Caixa de texto Rótulo 28 Figura 36 – Folha de propriedades da caixa de texto do campo pronum Figura 37 – Folha de propriedades do formulário man 2: coleta de cotações Para fazer os ajustes no formulário (Figura 38) siga os seguinte passos: Selecionar o formulário man 2: coleta de cotações (formulário) e acionar o botão Modo Design. Abaixar e/ou reduzir o rodapé. Aumentar a área do subformulário. Remover o rótulo que identifica o subformulário. No formulário não precisamos definir as propriedades Ativado e Bloqueado dos campos infnum e infnom, pois simplesmente definimos as três propriedades do formulário Permitir edições, Permitir exclusões e Permitir adições como sendo Não como mostra a Figura 39. Ao impedir edições no formulário estamos impedindo qualquer alteração em seus campos. Para abrir a janela de 29 Folha de Propriedades do formulário dê duplo clique na área azul claro à direita ou abaixo da linha do rodapé (vide Figura 38). Figura 38 - Janela de estrutura do formulário man 2: coleta de cotações Figura 39 – Folha de propriedades do formulário man 2: coleta de cotações Deve ficar claro que esse formulário/subformulário deve ser usado para digitação após ter sido executada a consulta que prepara cadfor. Isto significa que a coluna forpre2 do subformulário deve aparecer zerada pronta para receber os novos valores (vide Figura 34). área azul claro 30 Gerar o relatório para coleta de cotações Este relatório constitui o formulário em papel que o coletor de preços levará consigo para coletar os preços nos informantes. Observe na Figura 40 que para cada informante são relacionados os produtos cujos preços precisam ser coletados. Se no relatório constasse apenas os números dos informantes e os números dos produtos então ele podia ser gerado a partir da tabela cadfor. Entretanto, no relatório devem constar os nomes dos informantes e os nomes dos produtos para que o coletor possa identificá-los. Dessa forma temos que gerar o relatório a partir da consulta man3: coleta de cotações que associa cadfor com cadinf e cadpro recuperando todas as informações necessárias ao relatório. Para gerar a primeira versão do relatório siga os passos indicados abaixo. Como você irá perceber o relatório gerado não apresenta um layout bonito e vários ajustes terão que ser feitos no seu modo estrutura conforme descrito mais adiante. 1. Selecione a opção Criar/Assistente de Relatório. 2. Escolha a consulta man 3: coleta de cotações 3. O Assistente vai exibir seis caixas de diálogo comentadas a seguir: Que campos você deseja no relatório? todos (botão >>) Como você deseja exibir seus dados? cadinf Deseja adicionar algum nível de agrupamento? nenhum (não há totalização) Que ordem de classificação e resumo informativo você deseja para os registros de detalhe? classificação: pronum resumos: nenhum Como se deseja ordenar o relatório? por nível Que estilo você deseja? Selecione um estilo. Que título você deseja para o seu relatório? Coleta de Cotações 31 Figura 40 – Relatório Coleta de Cotações Não se preocupe com o fato do assistente gerador de relatórios gerar o relatório com duascolunas de preços. Em princípio a segunda coluna deverá estar com todos os preços zerados se a consulta prepara cadfor já tiver sido executada. O assistente gera as duas colunas de preços pois ele inclui no relatório todos os campos da consulta. Manualmente no modo estrutura do relatório iremos alterar a caixa de texto que apresenta o preço forpre2 (vide Figura 40). Assim, o relatório gerado vai necessitar alguns ajustes que deverão ser feitos em modo estrutura. Os passos que seguem vão auxiliar nessa tarefa: Apague o rótulo infnum e pronum. com o rótulo selecionado (deve estar marcada) vamos redefinir a propriedade Legenda como Espaço em branco, isto é , sem legenda, e a propriedade Cor do fundo como Branco. Troque infnom pela palavra Informante e pronom pela palavra Produto. com o rótulo selecionado (deve estar marcada) vamos redefinir a propriedade Legenda com novo nome (Informante e Produto). Da mesma forma troque as palavras forpre1 e forpre2 por preço anterior e preço atual respectivamente. Reduza a extensão do relatório à direita. Para isso todas as caixas de texto e caixas de rótulo deverão ser reduzidas mais para esquerda abrindo espaço para reduzir a largura do relatório. 32 Altere a caixa de texto forpre2. com a caixa de texto selecionada (deve estar marcada) vamos redefinir na propriedade Formato a cor associada ao valor zero como sendo Branco em vez de Vermelho, a propriedade Largura da borda como Fio e Cor da borda como Preto. Isto faz aparecer a borda que aparece na Figura 40.
Compartilhar