telecomHall BR

 

Hunter Interface

terça-feira, 29 de junho de 2010 20:00:00 Categories: Access Hunter
Rate this Content 1 Votes

Nós já vimos algumas aplicações simples do sistema Hunter utilizando principalmente VBA e Access e Excel. Só que até agora, sempre que precisamos rodar qualquer uma delas – por exemplo Hunter GE Network, que plota as informações da rede no Google Earth – precisamos utilizar métodos não amigáveis, como rodar macros diretamente na interface do programa ou do ambiente VBE.

 

 

Porém, quando falamos em aplicativos, a primeira coisa que nos vem à cabeça é uma interface não é mesmo? Tudo bem, da forma que fazemos, você acaba aprendendo mais. Só que chega uma hora em que as interfaces podem nos ajudar, até mesmo por uma questão de organização e integração dos diversos módulos. Assim, vamos hoje ver como faremos são criadas as Interfaces do Usuário nosso sistema Hunter.

Então vamos lá?

 

Objetivo

Aprender a utilizar interfaces para lidar com os dados e aplicativos desenvolvidos.

Nota: Na grande maioria dos tutoriais temos os arquivos relacionados, e que são enviados para os Assinantes.

  • Se você é um Assinante, por favor verifique em seu e-mail o arquivo recebido para este tutorial, e utilize o suporte para qualquer dúvida ou problema que encontrar.
    • Blog_016_Hunter_UI.zip.
  • Se você é um Membro comum e tem acesso apenas ao tutorial escrito, aprenderá sempre conceitos muito importantes que com certeza vão lhe ajudar em seus próprios desenvolvimentos. Leia e comprove em cada novo tutorial.
    • Se você deseja contribuir de alguma forma, a maneira mais simples é tornar-se um Assinante.

A nossa audiência vai de estudantes a profissionais experientes. Por isso pedimos um pouco de compreensão e tolerância se alguns dos conceitos hoje apresentados forem básicos para você. Além disso, todos os tutoriais, códigos e programas estão num processo contínuo de edição. Isso significa que se encontrarmos algum erro, por exemplo, de gramática ou ortografia, tentaremos corrigi-lo o mais rápido possível. Também gostaríamos de receber o seu feedback, nos informando de erros encontrados ou passagens que ficaram confusas e merecem ser reescritas.

 

Estrutura de Arquivos

Novamente, ainda não há necessidade de criarmos nenhum outro novo diretório. Isso porque no tutorial anterior já foi criada a estrutura básica do módulo KPI, como relembramos a seguir, e é neste módulo que vamos ver como são criadas as interfaces.

 

Preciso criar interfaces para as minhas macros e programas?

Tudo bem, nem todo mundo precisa usar interfaces. Existem pessoas que preferem utilizar os aplicativos desenvolvidos da forma como mostramos até hoje. Por exemplo, para mostrarem os dados de uma consulta, preferem abrir o banco de dados Access, e simplesmente dar um duplo clique na consulta desejada e pronto.

E isso está certo? Sim, cada um trabalha da forma que entende ser melhor.

Não é a mesma coisa, mas podemos fazer uma analogia com a utilização de interface do usuário e linha de comando nos programas utilizados para fazer alterações nos elementos da rede. Geralmente existem as duas possibilidades, e você sempre encontra pessoas que preferem fazer alterações utilizando a interface gráfica, e outras que preferem utilizar a linha de comando. É claro que nesse caso, entram alguns fatores, como a quantidade de alterações a serem executadas. Se forem muitas, provavelmente você vai ser ‘obrigado’ a se render e utilizar a linha de comando. Se forem poucas, poderá talvez optar pela interface gráfica, sem dúvida mais amigável.

 

De qualquer forma, o importante é o resultado final.

Nos passos a seguir, vamos criar uma interface bem simples, até mesmo, feia! Mas nosso objetivo hoje é ensinar os conceitos envolvidos, e como podemos criar interfaces para interação com o usuário, que no caso podemos ser nós mesmos. As habilidades de design ficam para uma outra hora.

Recomendamos que leia tudo, até o fim, e não se preocupe se não entendeu muito bem. Na hora certa, e principalmente quando começar a praticar, vai perceber as vantagens de se usar interfaces para trabalhar.

 

Um botão, uma ação...

Certo, não somos programadores, mas iremos usar as interfaces em alguns aplicativos. Então, precisamos aprender alguns pequenos conceitos. Vamos ver só os principais necessários para que possamos criar uma interação com o Access.

As interfaces no Access são definidas pelos Formulários.

Vamos aprender na prática, criando um formulário num banco de dados Access vazio. Para isso, acesse o Menu Criar (1) -> Estrutura do Formulário (2).

 

Pronto, já temos uma interface, ou seja, um formulário! Agora, precisamos dar uma cara de interface a ele, inserindo os objetos como botões e caixas de seleção.

De forma bem geral destacamos:

  • Área 1: um grid branco quadriculado, onde iremos efetivamente desenhar a nossa interface.
  • Área 2: com os controles, ferramentas, propriedades e tudo aquilo que serve para desenharmos e configurarmos o formulário, ou a nossa interface.

 

Se você clicar no botão Visualizar (1) -> Visualização do Formulário (2) já dá pra ver uma interface – sem nada, naturalmente.

 

Continuando com a prática vamos então inserir um botão. Como todo mundo sabe, um botão executa alguma ação quando é clicado.

Para voltar a editar o nosso formulário, clique novamente no Menu Visualizar (1) -> Visualizar Estrutura (2). Na barra de ferramenta com os controles, clique no ícone de botão (3), e em seguida clique em qualquer local no formulário (4) – grid branco quadriculado.

 

Assim que você clica na área Detalhe do formulário, surge um Wizard, que irá te ajudar a definir um comando que esse botão vai fazer.

 

Não vamos trabalhar dessa forma. Vamos aprender a ir um pouco mais fundo. O uso de Wizard é sempre opcional, mas você vai perceber que o que faremos é sempre muito mais que os comandos apresentados pelo mesmo.

Assim, clique no botão Cancelar. Observe que aparece então o botão que estamos configurando. Como cancelamos o Wizard, e não atribuímos nenhum comando ao mesmo, ele não faz nada quando clicamos nele. Faça o teste, visualize o formulário (como mostrado no Menu Visualisar -> Formulário) e clique no botão: nada acontece!

 

Então vamos inserir um comando que será executado quando esse botão for clicado.

Para inserir um comando, novamente volte o formulário para o modo de edição. Uma forma rápida é utilizar o atalho do clique do botão direito do mouse em qualquer local na área do formulário, e clicar em Visualizar Estrutura (1).

 

Uma pequena pausa. Como sempre, estamos mostrando sempre as formas mais comuns e utilizadas dos formulários. Mas em cada ponto existe muita coisa a ser exeplorada. Por exemplo, estamos falando de botão, mas sabemos – e dá pra ver pela barra de controles – que existe uma quantidade enorme de controles para serem utilizados dependendo de cada objetivo.

Similarmente, os comandos atribuídos aos controles – lembre-se que estamos atribuindo um comando ao controle botão – são diversos. Por exemplo, para um simples botão, podemos fazer com que ele execute um comando quando for clicado; mas também podemos fazer com que algo aconteça se passarmos o mouse por cima dele. E assim temos uma série de outras combinações, como duplo clique, etc. E olhe que estamos falando de um simples botão!

Mas vamos manter as coisas simples, tudo o que for preciso será visto a seu tempo. Mantendo nosso objetivo, vamos atribuir um comando – ou ação – a ser executado quando o botão for clicado.

Voltando então, dê um duplo clique na borda laranja do botão (1), ou alternativamente clique em Propriedades (2).

 

Como falamos, aparece uma lista de opções de eventos (ao clicar, no duplo clique, etc...) (1).

 

Bom, queremos atribuir uma ação quando o botão for clicado apenas, por isso usamos a linha On Click.

E como fazer para atribuir o comando? Existe várias formas, uma delas é clicar na caixinha com três botões (1) e em seguida escolher Construtor de Código (2), já que vamos criar o código que desejamos.

 

Uma outra forma é escolher a opção [Event Procedure] na caixa de seleção (1) e em seguida clicar no botão com os três pontos (2). Observe que esse nosso botão teve o nome padrão Command0 (3). Posteriormente veremos como alterar esse nome para um nome mais significativo.

 

De qualquer uma das formas, chegamos ao VBE, conforme mostrado abaixo. Os comandos que colocarmos nesse procedimento (Sub) serão executados quando o mesmo for clicado.

 

Clicando no botão salvar, o Access solicitará o nome do Formulário. Salve como Main (1) e clique no botão OK (2).

 

Feche todas as janelas, e abra o formulário, com um duplo clique sobre o mesmo no lado esquerdo da área principal do Access.Observe que quando você clica no botão, nada acontece: claro, não digitamos nenhum comando para ser executado.

 

Novamente, aqui precisamos fazer uma pausa. Antes de mais nada, é essencial que você esteja entendendo o que estamos fazendo. Resumidamente, estamos criando uma interface no Access – formulário – para executar algumas ações. Reconhecemos que estamos falando de assunto que talvez não seja comum a você – comandos, controles, propriedades, eventos, etc... Só que a compreensão desses conceitos é importante. De qualquer forma, estamos tentando demonstrar da forma mais simples possível. Aprendendo o básico, você com certeza terá subsídios para compreender o resto.

Voltando então, vamos agora atribuir uma ação ao nosso botão. Como exemplo, vamos simplesmente abrir uma tabela do nosso banco de dados.

Como ainda não temos nenhuma tabela no nosso banco de dados, vamos vincular uma existente, por exemplo a tabela tbl_kpi_counters do banco Hunter_KPI_DB.mdb. Já mostramos como fazer isso, por isso, consideramos que a tabela já estaja disponível – vinculada – nesse banco.

 

Pronto, agora basta digitarmos o código correspondente no VBE do comando associado ao botão, que já fizemos anteriormente.

O comando para abrir a tabela é:

DoCmd.OpenTable "tbl_kpi_counters", acViewNormal, acEdit

Uma forma de voltar ao VBE é utilizar o atalho ALT + F11, e já no VBE, dar um duplo clique no nosso Formulário Form_Main (1). Em seguida, digite o comando no local apropriado (2).

 

Novamente, salve e feche tudo. Na área principal do Access, abra o formulário (com um duplo clique por exemplo) e clique no botão.

Como resultado do clique, a tabela é aberta!

 

Tudo bem, até agora criamos uma interface simples, inserimos um botão e atribuímos uma ação de abrir a tabela tbl_kpi_counters quando o mesmo é clicado.

Feche a tabela, e vamos continuar.

 

Além dos botões, o que mais temos?

Botão é um tipo de controle básico, mas uma interface tem muito mais que isso, e desejamos que a nossa interface seja a mais interativa possível. Ou seja, devemos permitir que sejam escolhidos critérios, e baseados neles, executarmos as ações.

Um exemplo fácil de entender é a utilização uma caixa de seleção, ou dropdownlist, contendo uma lista de valores. Escolhemos um determinado valor, e buscamos os dados baseados nesse valor.

Trazendo esse exemplo para o nosso caso, vamos criar uma caixa de seleção com a relação de todos os nosso setores. E vamos criar um botão que quando clicado, vai abrir uma consulta com os dados somente para o setor selecionado.

Mas também não temos ainda uma consulta criada nesse nosso banco. Podemos criar uma consulta simples, como a qry_kpi que criamos no tutorial anterior. Mas já que essa consulta já existe, vamos simplesmente copiá-la para este banco.

Sim, podemos copiar as consultas de um banco de dados para outro. Isso pode ser feito através da importação da mesma, através do Menu Importar Dados Externos. Mas pode ser feito também de uma forma mais simples.

Para copiar uma consulta de um banco de dados para outro, abra o primeiro, selecione a consulta desejada. Copie a consulta (CTRL + C). No segundo banco de dados – destino – simplesmente cole a consulta (CTRL + V).

 

Pronto, agora já temos a nossa consulta disponível, e podemos continuar.

Para que essa consulta seja aberta baseada num critério de um campo do nosso formulário Main, precisamos fazer duas coisas: criar um campo cujo valor será usado como critério dessa consulta, e inserir esse campo como um parâmetro dessa consulta.

Primeiro, vamos criar o campo com os valores dos setores. Vamos usar uma Combo Box.

Os valores que vamos utilizar nesse controle devem vir de algum lugar. Para ficar mais fácil, vamos criar uma consulta bem simples, que apresente apenas a relação de CELLNAME – a consulta CELLNAME_list.

 

Agora, abra o formulário no modo Estrutura. Na barra de controles, clique no controle Combo Box (1), e em seguida clique no formulário (2), no local onde deseja colocar este controle.

 

Nem sempre utilizamos o Wizard, mas neste caso vamos seguir o mesmo para servir também como demonstração. Deixe escolhida a primeira opção (1), que mostra que queremos buscar os dados desse controle de uma tabela ou consulta. Clique então no botão Próximo (2).

 

Como vamos usar um campo da consulta CELLNAME_list, escolha Consultas (1) e selecione esta consulta (2). Clique no botão Próximo (3). Na nova janela, selecione o campo CELLNAME e mova para lado direito (4) e clique no botão Próximo (5).

 

Continuando, definimos que o campo CELLNAME deve aparecer em ordem crescente (1). Clique no botão Próximo (2). A próxima tela mostra como os dados aparecerão (3), permitindo ajuste da largura da coluna. Clique no botão Próximo (4).

 

Por fim, defina o label do campo como CELLNAME (1) e clique no botão Terminar (2).

 

Primeira parte quase pronta. Somente criamos também um novo botão, da mesma forma como fizemos anteriormente, mas agora colocamos o código para abrir a consulta qry_kpi.

DoCmd.OpenQuery "qry_kpi", acViewNormal, acEdit

Assim, o código do formulário pode ser visto no VBE.

 

Nota: observe que deixamos os botões com os nomes padrão sugeridos pelo Access. Como essa é apenas uma demonstração, não tem problema. Mas num aplicativo real, mudaremos os nomes para mais significativos. Depois veremos como fazer isso.

Fechando tudo, e abrindo o formulário, temos a interface final. Mas observe que mesmo escolhendo um valor de CELLNAME, quando clicamos no botão Command1, toda a consulta qry_kpi é mostrada.

 

É claro, falta agora a segunda parte: inserir o campo CELLNAME como parâmetro da consulta qry_kpi.

Vamos fazer isso. Abra a consulta qry_kpi no modo estrutura. Clique na linha critério do campo CELLNAME (1). Em seguida, No Menu Design (2) clique no botão Construtor (3).

 

Navegue como mostra a figura abaixo até o campo Combo1 – que contém o CELLNAME no nosso formulário, e dê um duplo clique na sua propriedade <Value> (1), que é a propriedade padrão desse controle. Em seguida, clique no botão OK (2).

 

Como resultado, a linha com o critério adequado é preenchida.

 

Utilizamos propositalmente essa forma de inserir o critério – através do construtor de expressões – para fins de demonstração. Poderíamos simplesmente ter digitado o critério na linha.

[Forms]![Main]![Combo1]

A expressão acima, utilizada na consulta significa qua a consulta deverá utilizar o valor do campo Combo1 do Formulário Main como critério para o campo CELLNAME.

Vamos lá, feche tudo, e abra o nosso formulário Main. Escolha um valor, e clique no botão Command1 (1).

 

O resultado, conforme esperado, é a consulta qry_kpi sendo aberta, mas mostrando valores apenas para o setor escolhido!

 

Tudo bem, concordamos que está ficando um pouco confuso. E até agora, não muito útil. Mas esperamos que você tenha conseguido visualizar como podem ser usados os formulários para criar as interfaces dos nossos programas.

 

Só mais algumas considerações por hoje...

Infelizmente, já nos estendemos demais, embora ainda existam inúmeras informações importantes que precisam ser passadas. Vamos falar de algumas delas, mas com certeza voltaresmo a falar desse assunto em tutoriais futuros.

A primeira informação importante é que uma vez que tenhamos inserido critérios numa consulta, sempre que a mesma for executada, buscará esses critéiros. Por exemplo, se você tentar abrir a consulta qyr_kpi que modificamos - e o formulário com o critério não estiver aberto! – surgirá uma caixa de diálogo solicitando que você entre com esses critérios. Se você digitar o critério, também funciona. Mas não é um comportamento desejado.

 

Outra informação relevante é sobre as propriedades, tão pouco exploradas hoje.

Para cada elemento do formulário (1) – inclusive o próprio formulário – podemos configurar uma série enorme de propriedades (2)!

 

Para cada um dos elementos, o ajuste das propriedades nos dá um controle impressionante do que podemos fazer. Vamos dar um exemplo final. No modo estrutura do nosso formulário, escolhemos propriedades do Formulário (1) e alteramos a propriedade Pop Up (2) de No para Yes (3).

 

Veja o que acontece!

 

Agora sim, está ficando bem mais parecido com uma aplicação não?

Ok, só mais um último conceito, e terminamos por hoje, tudo bem?

O que você espera de uma aplicação? Bom, pelo menos que ela exiba a interface principal quando você a execute, não é mesmo?

Para fazer isso com as aplicações do Access, temos um artifício interessante. O Access possui um nome reservado para Macros, o nome AUTOEXEC. Basicamente, se uma macro simplesmente tiver o nome de Autoexec, ela será executada assim que o banco for aberto.

Nem precisa dizer como nos aproveitamos dessa característica: criamos uma nova Macro, com o nome de Autoexec, e com a ação Abrir Formulário, no caso, o nosso formulário Main.

 

Pronto. Feche o Banco de Dados, e abra novamente (por exemplo com um duplo clique no Windows Explorer). Perceba que o programa já abre apresentando a Interface criada, ainda que bem simples.

 

Rascunho

Quem programa, antes de mais nada, deve saber o que quer! E o que isto significa em termos de programação? Basicamente, que sempre que você for criar algo, deve ter pelo menos um rascunho daquilo que precisa. Não pode é na hora que está executando, mudar a direção.

 

No nosso caso específico de hoje, sugerimos que você desenhe primeiro como deve ser o seu formulário, dê os nomes aos campos, e defina o que cada controle deverá fazer. Assim fica muito mais fácil de criar as suas aplicações.

 

Mas a interface está muito feia!

Concordamos, plenamente. Só que lembre-se de uma coisa. Hoje estamos principalmente apresentando e demonstrando novos conceitos. As interfaces do Hunter são bem mais bonitas, isso garantimos. Mas você comprovará no futuro, com as interfaces fornecidas em cada módulo. As interfaces tem recursos muito legais, que não mostramos hoje. Usamos imagens – o logo Hunter, usamos hyperlinks ao invés de botões – dando uma impressão de aplicação de web 2.0, entre outros. Mas por hoje, se você entendeu o que foi mostrado, já está suficiente.

Finalmente: pratique e certifique-se de que entendeu tudo o que foi mostrado. Em caso de problemas ou dúvidas, entre em contato conosco.

 

Conclusão

Tivemos hoje uma apresentação de como criar interfaces no Access através do uso de formulários, VBA, tabelas e consultas. Aos poucos, vamos aprendendo os conceitos, para no futuro utilizarmos o sistema criado de forma plena, e não apenas como usuário.

Tentamos ao máximo evitar chavões de informática, porém o assunto necessitou desses conceitos. Tente compreender pelo menos como funciona a interatividade através do que foi mostrada. E perceba que cada vez mais a sua criatividade será o limite de suas aplicações. Embora o Hunter seja um sistema completo, você terá condições de evoluir ainda mais. Para evoluir entretanto, os conceitos precisam ser bem entendidos a cada semana.

Esperamos que você tenha gostado. Tire suas eventuais dúvidas postando seus comentários no Blog ou através do nosso Suporte via Chat ou E-mail.

Até nosso próximo encontro, e lembre-se: O seu sucesso é o nosso sucesso!