O Ambiente do Visual Basic

Transcrição

O Ambiente do Visual Basic
Escola Profissional de Gaia
12º Ano de Informática de Gestão
Técnicas e Linguagens de Programação
Versão 1.0
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Introdução
O Visual Basic é uma das linguagens mais utilizadas no desenvolvimento de
interfaces gráficas para Windows. Este pequeno manual irá introduzir algumas das
características do Visual Basic e tentar explicar o porquê deste se ter tornado tão popular
em todo o mundo.
Porquê o Visual Basic
•
É de fácil aprendizagem
•
Permite criar controlos ActiveX
•
Pode-se integrar com a Internet
•
Disponibiliza assistentes para melhor produtividade
•
É uma linguagem POO (Programação Orientada por Objectos)
•
Permite utilizar objectos OLE (Object Linking and Embedded)
•
Permite utilizar API's do Windows (Application Programming Interface)
•
Permite desenvolver rápidas aplicações
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página
2
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Tipo de Aplicações em Visual Basic
Há muitos tipos de aplicações que se podem criar em Visual Basic. Cada tipo de
aplicação é destinado a um objectivo bastante específico.
Standard EXE
Este tipo é utilizado para criar uma aplicação stand-alone, que não necessite de
pertencer a aplicação. A maioria das aplicações de negócios são deste tipo.
ActiveX EXE
Este tipo de aplicação é geralmente criado para ser usado por outras aplicações,
para um serviço particular ou vários serviços. Estes serviços podem correr local ou
remotamente.
ActiveX DLL
Este tipo de aplicações é geralmente criado para ser usado por outras aplicações
para serviço particular ou vários serviços mas é criado como livraria. Este DLL tem
que estar na máquina onde se pretende executar o programa final. É executado
dentro do mesmo processo da aplicação original.
ActiveX Document DLL
Este tipo de aplicação é desenvolvido para ser usado dentro do contexto de outra
aplicação. Muito parecido com ActiveX EXEs e DLLs, mas geralmente
providenciam um interface com a aplicação que os chama. Sendo uma DLL,
executa-se no mesmo processo da aplicação que o invoca.
ActiveX Document EXE
Este tipo de aplicação é desenvolvido para ser usado dentro do contexto de outra
aplicação. Muito parecido com ActiveX EXEs e DLLs, mas geralmente
providenciam um interface com a aplicação que os chama. Sendo um EXE, corre
num processo separado da aplicação que o invoca.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página
3
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Componentes do Visual Basic
Projects
Um projecto é um conjunto de forms, controlos, etc. referenciados para uma
automatização de servidores, num cenário de criação de aplicações.
Forms
Um form é a janela que é mostrada no desktop do Windows, ou seja, é a janela de
interface com o utilizador. Um form pode conter controlos. Tanto os controlos como
os códigos associados, são armazenados num ficheiro com extensão FRM.
Controlos
Um controlo é uma ferramenta que permite mostrar ou receber informações do
utilizador. Exemplo de controlos são: caixas de texto, botões, etiquetas, grelhas,
etc. Os controlos, são apresentados / disponibilizados dentro de uma toolbox e têm
uma extensão OCX.
Code Modules
O code module, é um código origem escrito para fazer os controlos e forms
responder a uma interacção do utilizador. Serve para declarar variáveis,
constantes, procedimentos ou funções, declarações, chamar API's do Windows,
etc. São guardados em ficheiros com extensão BAS.
Class Modules
Permite criar os nossos próprios objectos. O Visual Basic permite a criação de
classes completas com propriedades e métodos. São guardados em ficheiros com
a extensão CLS.
Resource Files
Os ficheiros de recurso permitem guardar recursos do Windows, tais como strings,
bitmaps, cursores, ícones, etc.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página
4
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Hierarquia das aplicações em Visual Basic
Aplicações
Propriedades das aplicações
Forms
Propriedades
Propriedades de procedimentos
Eventos
Outros procedimentos
Controlos
Propriedades
Eventos
Módulos
Procedimentos
Classes
Propriedades
Propriedades de procedimentos
Métodos
Outros procedimentos
Resource Files
Documentos ActiveX
Componentes ActiveX
Três passos para criar uma aplicação
Não importa que tipo de aplicação se pretende criar, sempre se devem seguir estes
passos para o fazer.
•
Criar um Interface.
•
Fixar as propriedades para os controlos.
•
Escrever o código.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página
5
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
O Ambiente do Visual Basic
O ambiente do Visual Basic pode ser utilizado desde a resolução de 800x600 até
ao máximo que o computador e monitor aguentar. Claro que quanto maior for a resolução
maior será o ambiente disponível para trabalhar.
É preciso ter em atenção que o Visual Basic possui Visual Memory, ou seja, ele
“decora” a posição e tamanho das janelas quando estas são criadas e se mudarmos para
um outro computador que possua uma resolução diferente daquela em que foi guardado o
projecto pela última vez, o aspecto deste pode ser diferente do desejado ou do planeado.
A resolução recomendada é de 1024x768. A imagem que se segue é a primeira
que aparece quando entrares no Visual Basic 6.0.
Figura 1 - A janela de início do Visual Basic 6.0
Pressiona OK para abrir um projecto novo Standard EXE (um projecto normal que
será depois mais tarde guardado como executável). O ambiente de desenvolvimento
aparecerá como o que se segue:
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página
6
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 2 - O ambiente de desenvolvimento do Visual Basic 6.0
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página
7
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Os vários componentes da janela do Visual Basic 6.0
Menu Bar
Permite-te executar todas as funções no Toolbar, assim como seleccionar todas as
outras funções existentes no VB.
Toolbar
O Toolbar contém ícones localizados horizontalmente situado no topo da janela de
desenvolvimento do Visual Basic. É a barra que permite controlar todas as funções
básicas como abrir novo projecto, guardar o projecto, compilar, executar, etc.
Toolbox
É uma caixa vertical situada no lado esquerdo do écran de desenho e onde se
encontrar todos os controlos carregados (podem-se acrescentar ou remover controlos
desta barra).
Form
É a janela principal onde se cria para o utilizador a janela onde este irá comunicar
com a aplicação. Todos os controlos têm de ser colocados em forms. Seguidamente se o
controlo necessitar de alguma programação esta é feita na janela de programação, mas o
objecto que inclui as librarias necessárias para utilizar o controlo (o ícone do controlo
ficam na janela do form). Estas figuras dos forms é o equivalente ao include no Turbo C.
Project Window
Mostra a lista de todos os forms e módulos que criam a tua aplicação. É nesta
janela que podes intercalar entre os vários forms que o projecto tem.
Properties Window
A janela de propriedades permite personalizar o aspecto ou comportamento de um
controlo particular ou de um form. Com duplo-click nas propriedades, aparece uma lista
enumerada ou um campo tipo booleano (verdadeiro ou falso).
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página
8
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Immediate Window
É vista quando há uma quebra na aplicação (a aplicação que está em execução
gera um erro) esta janela aparece na linha em que a aplicação gerou o erro. É chamado o
modo de debugging.
Online Help
Para aceder à ajuda do Visual Basic basta, em qualquer altura, pressionar a tecla
F1 e o Help surge no ecrã (note-se que o help no Visual Basic é instalado à parte do
Visual Basic e é necessário que esteja localmente no computador ou num local de rede
com acesso ao login no qual se está a trabalhar. É uma ajuda sensitiva ao contexto. Pode
mostrar ajuda do objecto que contenha o focus (seleccionado) no modo de
desenvolvimento.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página
9
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Descrição da ToolBox
PictureBox
Este controlo pode mostrar gráficos de ficheiros bitmap, icon, ficheiros JPEG ou
GIF. Caso o controlo não tenha o espaço suficiente o próprio controlo corta a imagem até
ao espaço disponível. O programador tem que ajustar a janela do controlo até esta ter
espaço suficiente para a imagem que lá pretende colocar.
LabelControl
É um controlo gráfico que é utilizado para mostrar texto na form que não é editável
pelo utilizador (pode ser uma mensagem a indicar informações no form).
TextBox Control
Algumas vezes chamado campo de edição ou controlo de edição, mostra/recebe
informações digitadas pelo utilizador. Este controlo permite alterar uma das suas
propriedades Multiline para True, de modo a serem mostradas/recebidas várias linhas de
texto.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 10
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Frame Control
Permite identificar um grupo de controlos, ou seja, permite agregar vários controlos
numa única frame. Por norma usasse esta funcionalidade para tornar uma janela mais
funcional.
CommandButton Control
Utiliza-se este comando como controlo da aplicação é o controlo que permite
adicionar botões no form que depois podem ser programados para iniciar, interromper ou
finalizar um processo.
CheckBox Control
Este controlo é utilizado para dar ao utilizador a possibilidade de tornar uma opção
verdadeira ou falsa, sim ou não (opção do tipo booleano). Pode usar-se em grupos para
mostrar múltiplas escolhas, onde o utilizador pode seleccionar uma ou mais. É usada para
poder seleccionar as opções. Para utilizar correctamente este controlo é então definido no
código da aplicação as acções desejadas conforme a opção seja verdadeira ou falsa.
OptionButton Control
Mostra uma opção que pode ser alterada para verdadeira ou falsa (Ligado ou
desligado). Utiliza-se em grupo para que o utilizador apenas possa seleccionar somente
uma opção de um conjunto que possam ser seleccionadas.
ComboBox Control
Combina as características de uma TextBox e de uma ListBox. Os utilizadores
podem introduzir informações na TextBox, ou seleccionar um item de uma lista. É útil
porque o utilizador quando interage com a aplicação não necessita de saber inicialmente
as opções que pode escolher, visto estas serem apresentadas na própria caixa de
interacção. As opções podem ser inseridas por código directo ou por acesso a uma base
de dados.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 11
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
ListBox Control
Mostra uma lista de opções na qual o utilizador pode seleccionar uma ou mais.
Serve como uma combobox mas podem ser seleccionadas mais do que uma opção.
HScrollBar, VScrollBar Controls
Facilitam a navegação numa lista longa de opções, ou numa quantidade larga de
informação, ou seja, são criadas barras de deslocamento que irão permitir deslocar todas
as opções para o sentido desejado de forma a encontrar a opção desejada mais
facilmente.
Timer Control
Pode executar um código em intervalos de tempo regulares. Invisível para o
utilizador, é útil para um processo que se pretenda que seja executado com regularidade
mas com total transparência para o utilizador. Por exemplo, limpar as caixas de texto ao
fim de algum tempo sem actividade, etc. Todo o processo é desenrolado em segundo
plano.
DriveListBox Control
Permite ao utilizador seleccionar um disco válido durante a execução do processo.
Utiliza-se este controlo para mostrar a lista dos discos rígidos ou não existentes no
sistema, comuns drives.
DirListBox Control
Lista as pastas e os caminhos de uma determinada pasta seleccionada. Mostra
todo o Path. Usa-se este controlo para mostrar a lista hierárquica das pastas.
FileListBox Control
Lista os ficheiros de um directório específico. Pode seleccionar-se o tipo de
ficheiros que se pretende visualizar ou apenas mostrar todos os ficheiros sem qualquer
tipo de selecção ou escolha (utilização de filtros).
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 12
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Shape Control
É um controlo gráfico mostrado como um rectângulo, quadrado, oval, círculo,
rectângulo arredondado, ou quadrado arredondado que permite criar uma janela de
visualização ou criar um aspecto de caixa de edição com a adição de sombras, efeitos,
etc.
Line Control
É um controlo gráfico que permite mostrar uma linha horizontal, vertical ou
diagonal.
Data Control
Proporciona acesso a dados armazenados numa base de dados. Permite navegar
de registo a registo, visualizar o 1º ou o ultimo. É necessário seleccionar qual o motor de
ligação de base de dados a utilizar bem como configurar qual a base de dados etc.
NOTA: Podem ser adicionados mais controlos, clicando em Project, Components, ou
usando em simultâneo as teclas CRTL+T. Na caixa de diálogo, seleccionar os
componentes que queremos integrar na nossa aplicação. Estes controlos aqui explicados
são aqueles que “vêm” por defeito no Visual Basic. O Visual Basic tem um conjunto de
controlos extras que podem ser adicionados.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 13
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Janela de propriedades
A janela de propriedades encontra-se no lado direito do ambiente de trabalho. Aqui
podem-se modificar as características de um objecto e o seu interface com o utilizador. A
título de exemplo iremos apontar algumas das propriedades mais comuns de um Form.
Name
Nome a atribuir ao Form. É o nome pelo qual o form, ou controlo é reconhecido
pela aplicação (vulgo, o nome de uma variável na linguagem C).
Caption
Palavra ou frase que aparece no topo esquerdo do Form. É o texto que surge na
janela de título no form.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 14
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
KeyPreview
Especifica se o Form deve receber o evento key antes de todos os controlos nele
contidos. No exemplo que se segue, alterando a propriedade KeyPreview para TRUE e
codificando o evento do Form KeyPress, dá á tecla ENTER a mesma função da tecla
TAB
Figura 3 - Exemplo de alteração de funções às teclas
Height
Permite definir qual a altura da janela.
Left
Permite definir a distância a que janela fica em relação á margem esquerda do
monitor.
Top
Permite definir a que distância a janela fica em relação á margem superior do
monitor.
Width
Permite definir qual a largura da janela.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 15
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Para poder controlar estas quatro últimas propriedades deve utilizar o Form Layout
Window, para posicionar a janela na posição correcta. Colocando o cursor sobre a janela
e pressionando com o botão esquerdo do rato, é fixada a posição que se deseja para a
posição da janela da aplicação em tempo de execução.
Figura 4 - Form Layout Windows
Clica em View seguido de Project Explorer, aparece na parte lateral direita do
ambiente de trabalho o Project Window. Nesta janela podemos ver e sobre uma
perspectiva hierárquica os Forms, Modules, Controls, Property Pages ou Objects
Documents, do projecto que está a ser desenvolvido.
Figura 5 - Janela de gestão do projecto
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 16
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
A Notação Húngara
A característica principal desta notação é dar ao programador uma ajuda preciosa
na elaboração dos nomes das variáveis que irão ser utilizadas no projecto. No entanto,
esta é uma notação puramente opcional e deve ser encarada exclusivamente como um
método. O importante é utilizar nomes curtos e simultaneamente significativos e fáceis de
recordar e de perceber conforme a função que irá ter na aplicação para que outras
pessoas possam analisar a perceber rapidamente o problema.
A tabela que se segue além do exemplo desta notação contem os valores limites das
variáveis.
Prefixo
bln
int
lng
str
dtm
Tipo de variável
Valores
Boolean
True / False
Integer
-32,768 a 32,767
Long
-2,147,483,648 a 2,147,483,647
String
0 a +/- 2 biliões de caract.
Date/Time
01/01/1000 a 31/12/9999
dbl
Double
sng
Single
bln
Boolean
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Números Positivos
4.94065645 ^ -324 a 1.797693 ^ +308
Números Negativos
-1.797693^ +308 a -4.94065645^ -324
Números Positivos
2.802597^-45 a 3.402823^+38
Números Negativos
-3.402823^+38 a -2.802597^-45
True / False
Página 17
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Operadores Matemáticos, Relacionais e Lógicos:
Sinal
Significado
*
Multiplicação
-
Subtracção
=
Atribuição
/
Divisão
^
potenciação
+
Soma
MOD
Resto da divisão
\
Divisão Inteira
>
Maior que
>=
Maior ou Igual
<=
Menor ou Igual
<
Menor que
<>
Diferente
AND
NOT
OR
Se ambas as expressões forem verdadeiras o
resultado é verdadeiro
Se a expressão for falsa, o resultado é verdadeiro.
Se a expressão for verdadeira, o resultado é falso
Se algumas das expressões for verdadeira, o
resultado é verdadeiro
Se uma das expressões for verdadeira, o resultado é
XOR
verdadeiro. Se ambas forem verdadeiras ou falsas, o
resultado é falso.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 18
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Estruturas de Decisão :
A estrutura IF
If condição1 Then
código da condição1 se a mesma for verdadeira
ElseIf condição2 Then
código da condição2 se a mesma for verdadeira
ElseIf condição3 Then
código da condição3 se a mesma for verdadeira
Else
código se nenhuma das condições anteriores for verdadeira
End If
A estrutura Select - Case
Select Case
Executa um dos vários grupos de instruções, dependendo do valor destas.
Select Case expressão (expressão numérica ou string)
Case expressão1
Código.... relativo à expressão1
Case expres1
Código.... relativo à expressão2
End Select
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 19
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Estruturas de repetição (Ciclos)
A estrutura Do - Until
Do Until condição1
código.... ( O ciclo mantém-se até que se verifique a condição )
Loop
A estrutura Do - While
Do While condição2
código.... ( O ciclo mantém-se enquanto se verificar a condição2 )
Loop
A estrutura For
For índice = inicio To fim
código.... ( O ciclo mantém-se desde inicio até fim )
Next índice
A estrutura While
While condição (executa uma série de instruções enquanto a condição
for verdadeira ou falsa. A condição nula, é tratada como falsa)
código....
Wend
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 20
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
A Criação de Menus
A criação de menus, é bastante intuitiva utilizando o Visual Basic. Para começar,
clicamos no Menu Editor da Toolbar, ou Tools seguido de Menu Editor, ou ainda usando
CTRL+E. Deverá aparecer a imagem que se segue:
Figura 6 - Ambiente de criação de menus
Os campos de preenchimento obrigatório são aqueles assinalados com o Caption,
sendo o Caption o nome que surge no menu propriamente dito. O campo Name, é o nome
atribuído a cada um dos "Captions".
A forma mais fácil de explicar e perceber o modo de funcionamento é realizar um
exemplo prático. Vamos criar um menu fictício para perceber então a lógica, tentado fazer
uma imagem igual à que se segue:
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 21
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 7 - Criação de menus
Algumas explicações importantes:
O caracter "&" que aparece no inicio da maioria das palavras, vai "provocar" que a
letra a seguir apareça em sublinhado, indicando um atalho para esse procedimento.
Premindo a tecla "ALT" + a letra sublinhada, acederemos directamente à opção
assinalada pela letra. Neste exemplo o T de Terminar vai ser a letra sublinhada e a qual
pode ser acedida através do comando ALT+T.
Os caracteres "...", que aparecem em algumas linhas significam que irá ser criado
um submenu, e este é obtido clicando na seta para a direita. Esta é a situação de um
menu Drop-Down. Quando se clica na palavra "mãe", aparece um outro menu que
permanece até que o utilizador o feche ou clique numa das suas opções.
O caracter "-", que aparece entre "...&Amigos e ...&Cidades" tem como objectivo
"separar" duas opções do respectivo submenu.
Depois de executar estas instruções, e F5 (para executar o projecto) surge um
menu parecido com a imagem seguinte:
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 22
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 8 - Resultado do exemplo da criação de menus
As palavras "Página Principal", aparecem na barra de título se forem alteradas as
propriedades "Caption" do Form.
POPUP Menu
Para a criação de um popup menu iremos utilizar também um exemplo prático com
demonstração de como o código funciona. Pretende-se registar e listar as pessoas que
"não se gostam". Esta opção não se torna agradável aparecer no menu desta forma,
então utiliza-se o chamado POPUP menu. Quando na janela principal, se clicar por
exemplo com o botão direito do rato. Para isso é necessário codificar o "Evento" MOUSE
UP do Form com o seguinte código:
If Button = 2 then
PopupMenu mnucautelas (Nome da caixa Name)
End If
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 23
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Desta forma é acrescentado ao menu já conhecido uma linha chamada "Cautelas",
com o Name mnucautelas, tendo o cuidado de desactivar a Check Box Visible por forma a
que esta palavra não nos apareçam no menu principal. Acrescentamos dois submenus
"Gestão de inimigos" e Listar inimigos". Tecla em F5, e quando o Form se abrir, clica no
botão direito do rato. Aparecerá qualquer coisa como o que se segue:
Figura 9 - Exemplo do surgimento de um popup menu
Desta forma podem criadas funções que só o programador ou uma pessoa a quem
tenha sido transmitida esta informação tem acesso a algumas funcionalidades que se
pretendem que sejam ocultas para o utilizador normal.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 24
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Criação de uma ToolBar
Para tornar mais apelativo um projecto, pode-se/deve-se criar uma ToolBar por
baixo do menu, anteriormente criado, onde serão mostrados botões com imagens, de
forma a tornar as acções básicas mais intuitivas de usar e alcançar.
Figura 10 - Inserção dos controlos das ToolBox
Para acrescentar alguns objectos à ToolBox, clicámos em Project e em seguida,
Components. Com esta operação abre-se o menu de gestão de controlos do Visual Basic.
Activa-se a Check Box Microsoft Windows Common Controls 5.0 (SP2), fazendo
então aparecer na ToolBox pelo menos mais dois componentes (ToolBar e ImageList) que
vão ser importantes para a função a implementar.
Para colocar qualquer destes objectos no Form, fazemos duplo-click no objecto, ou
click para o tornarmos activo, "desenhando-o" de seguida no Form. Atenção que é
necessário a colocação dos dois métodos para a barra funcionar correctamente.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 25
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Após a colocação dos objectos no Form, clica-se com o botão direito do rato em
ImageList seguido de Properties. No separador General define-se o tamanho das
imagens. Depois, no separador Images, para podermos inserir as imagens. Tal como
demonstra a figura seguinte:
Figura 11 - Inserção e configuração de imagens para a ToolBox
Clicando no botão Insert Picture, insere-se as imagens *.ICO ou *. BMP existentes
no nosso sistema, terminando com click no botão OK. Pode-se fechar a janela de Page
Properties, para trabalhar o outro objecto. Temos então de configurar a ToolBar, clicando
nele com o botão direito do rato e em seguida em Properties.
Figura 12 - Configuração da ToolBox
No separador General e na ComboBox ImageList relaciona-se a ToolBox com a
ImageList1 criada anteriormente. De seguida clica-se no separador Buttons para trabalhar
as imagens previamente inseridas no objecto ImageList1.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 26
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 13 - Associação de imagens aos botões
Com Insert Button, insere-se os botões na ToolBar. Na caixa de texto Image inserese o número da imagem, e se se pretender pode-se inserir uma caixa de texto com ajuda
que irá aparecer caso o rato permaneça em cima do botão. Esta acção é realizada na
caixa ToolTipText.
Depois de inseridas as imagens anteriormente seleccionadas clica-se em OK, para
se obter uma imagem semelhante à seguinte:
Figura 14 - Exemplo de uma ToolBox
Se teclarmos em F5 podemos observar o efeito do que acabámos de fazer. Note
que o objecto ImageList, não aparece em RunTime, só em DesignTime.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 27
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Message Box
Uma Message Box, mostra uma caixa de diálogo e espera que o utilizador click num
botão retornando um valor indicador do botão que foi premido, para então realizar uma
opção predefinida. Como anteriormente iremos estudar a MessageBox através de um
exemplo prático. Em seguida encontra-se o código necessário para a criação de
MessageBox:
Dim resp As Integer
resp = MsgBox("Texto da mensagem", vbAbortRetryIgnore + vbCritical +
vbDefaultButton1, "Titulo da mensagem")
O código anterior gera uma MessageBox do género da seguinte:
Figura 15 - Exemplo de uma MessageBox
Em seguida é publicada uma tabela com os métodos que se podem criar com as
características dos botões, bem como dos valores retornados consoante o botão que o
utilizador clica.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 28
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Tabela com as características da MsgBox
Constante
Valor
Descrição
vbOKOnly
0
Mostra o botão de Ok
vbOKCancel
1
Mostra os botões de Ok e Cancelar
vbAbortRetryIgnore
2
Mostra os botões de Abortar, Repetir, Ignorar
vbRetryCancel
5
Mostra botões de Repetir e Cancelar
VbCritical
16
Mostra o ícone de Perigo
vbQuestion
32
Mostra o ícone de Interrogação
vbExclamation
48
Mostra o ícone de Exclamação
vbInformation
64
Mostra o ícone de Informação
vbDefaultButton1
0
Selecciona por defeito o 1º botão
vbDefaultButton2
256
Selecciona por defeito o 2º botão
vbDefaultButton3
512
Selecciona por defeito o 3º botão
vbDefaultButton4
768
Selecciona por defeito o 4º botão
vbApplicationModal
0
vbSystemModal
4096
Aplicação modal. O utilizador deve responder á caixa de
mensagem antes de continuar a trabalhar na aplicação.
Sistema modal. Todas as aplicações são suspensas até
que o utilizador responda à caixa de mensagens.
A função MsgBox retorna os seguintes valores:
Constante
Valor
Botão
vbOK
1
OK
vbCancel
2
Cancel
vbAbort
3
Abort
vbRetry
4
Retry
vbIgnore
5
Ignore
vbYes
6
Yes
vbNo
7
No
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 29
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Dialog Box
A Message Box é utilizada para informar o utilizador de algo que se passou, e
espera um click para executar uma acção. Com a Dialog Box pretendemos que o
utilizador introduza uma determinada informação para completar uma tarefa.
Por exemplo, se pretender fazer um Backup (segurança) de uma Base de dados da
nossa aplicação, podemos pedir ao utilizador que digite o nome da base de dados
destino. Atenda ao exemplo seguinte:
Figura 16 - Exemplo de DialogBox
Para o exemplo acima, escrevemos as seguintes linhas de código:
Dim Stexto as String
mens = " DIGITE O NOME DA BASE DE DADOS "
tit = " SISTEMA DE SEGURANÇA"
Stexto = InputBox$(mens, tit)
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 30
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
ComboBox e ListBox
A ComboBox deve ser usada quando o utilizador pretende ter uma lista
predefinida de valores. Algumas vezes também é usada para adicionar valores. Vamos
adicionar as capitais de distrito de Portugal, de modo a que um utilizador possa
seleccionar uma.
A tabela seguinte mostra uma lista das propriedades mais utilizadas em Combobox
e Listbox.
Propriedade
Descrição
List
Lista de todos os elementos
ListCount
Numero de elementos
ListIndex
Numero do elemento seleccionado
Name
Nome do objecto ( com o prefixo cbo )
Sorted
Ordenação dos elementos
Style
Simple, DropDown, ou DropDown List
Text
Valor do elemento seleccionado
Normalmente, e para que a Combobox tenha valores logo no início da aplicação é
necessário que as instruções de carregamento se encontrem no procedimento
Form_load().
Figura 17 - Adiconar campos à ComboBox
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 31
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Na execução do projecto ao ser pressionada a seta que se encontra à direita da
ComboBox surge a lista de items que adicionamos à ComboBox.
Figura 18 - Exemplo de ComboBox
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 32
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Exemplo de criação de janela para interacção com o utilizador
Crie uma janela para testar algo simples e ao simultaneamente importante a
qualquer projecto futuro.
Figura 19 - Exemplo de janela
A janela anterior é então composta por :
Quatro objectos do tipo Label, onde se insere o texto que se pretende que surja no
ecrã do utilizador. Esta alteração é efectuada na propriedade Caption da Label.
Quatro objectos do tipo TextBox, sítio onde o utilizador poderá escrever.
Dois objectos do tipo CommandButton, que irão assumir o executar de eventos.
Codificação da janela anteriormente mostrada
Private Sub Text1_GotFocus()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 33
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(Ucase$(Chr$(KeyAscii)))
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(Lcase$(Chr$(KeyAscii)))
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyDelete
Case vbKeyBack
Case 48 To 57
Case Else
Beep
KeyAscii = 0
End Select
End Sub
Private Sub Text4_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyDelete
Case vbKeyBack
Case 65 To 90
Case 97 To 122
Case Else
Beep
KeyAscii = 0
End Select
End Sub
Private Sub Command1_Click()
Text1.SetFocus
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 34
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 20 - Exemplo de aplicação em tempo de execução
Comentários à codificação apresentada
1 - Quando a caixa de texto "Text1" tem o Focus, "esvazia/limpa" o conteúdo de todas as
caixas de texto.
2 - A função Ucase$ transforma em maiúsculas todos os caracteres.
3 - A função Lcase$ transforma em minúsculas todos os caracteres.
4 - Só permite caracteres Ascii compreendidos entre 48 e 57, que correspondem aos
caracteres numéricos, mais o Delete e o Backspace.
5 - Só permite caracteres Ascii compreendidos entre 65 e 90, e entre 97 e 122 que
correspondem aos caracteres alfabéticos, mais o Delete e o Backspace.
6 - Activando o Evento Click, transfere o Focus para a 1ª caixa de texto.
7 - Activando o Evento Click, termina o programa.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 35
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Procedimentos e Funções
Procedimentos são linhas de código, usadas para responder a eventos ou
executar algumas acções. Os procedimentos não retornam valores, e são identificados
pela palavra Sub, na sua declaração. Todos os procedimentos devem começar com uma
letra, e podem conter letras, números e o caracter underscore.
Funções são usadas quando se pretende executar cálculos, ou testar valores. Nas
funções retorna-se sempre algo. Mostramos de seguida algumas das funções mais
comuns que podem ser utilizadas. A lista completa de funções pode ser consultada em
"The Language reference Book".
Funções
Descrição
Chr, Chr$
Converte valores ANSI numa string.
Asc
Converte uma string num valor ASCII.
Str, Str$
Converte um número numa string.
Format, Format$
Converte um numero numa string formatada.
Val
Converte uma string num número.
Date, date$ / Time, Time$ Obtém a data do sistema e hora do sistema, respectivamente.
Now
Obtém a data e a hora do sistema.
InputBox, InputBox$
Mostra uma caixa de input, espera uma string do utilizador.
MsgBox
Mostra uma caixa de mensagens
LCase, LCase$
Converte uma string em caracteres minúsculos
UCase, UCase$
Converte uma string em caracteres maiúsculos
Space, Space$
Insere espaços repetidos entre duas strings
String, String$
Converte numa string uma variável
Len
Retorna o comprimento de uma string
InStr
Determina se uma string está dentro doutra string
Left, Left$
Retorna uma string á esquerda de uma string
LTrim, LTrim$
Anula os espaços á esquerda de uma string
Mid, Mid$
Procura uma string contida noutra string
RTrim, RTrim$
Anula os espaços á direita de uma string
Right, Right$
Retorna uma string á direita de uma string
Trim, Trim$
Anula espaços á esquerda e á direita de uma string
IsDate
Valida se uma data é válida
IsNull
Valida se uma variável é nula
IsNumeric
Valida se uma variável é numérica
Beep
Emite um som
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 36
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Eventos
Imagine um Form com vários objectos dispostos estrategicamente. Quando se faz
duplo-click sobre um desses objectos abre-se uma janela onde se pode codificar os
diferentes eventos (objectos que respondem de uma forma adequada quando o utilizador
interage com eles). Observe a imagem seguinte:
Figura 21 - A janela de eventos possíveis em Visual Basic
A descrição dos eventos
GotFocus
Ocorre quando um objecto recebe o focus (é seleccionado). Quer seja pela acção
do utilizador, da tecla TAB, pelo Click do rato ou ainda pela utilização do método
SetFocus. Nota: Um objecto só pode ficar com Focus se as propriedades Enabled e
Visible estiverem seleccionadas para True.
LostFocus
Ocorre quando um objecto perde o Focus (deixa de estar seleccionado). Quer seja
pela acção do utilizador, da tecla TAB, pelo Click do rato ou ainda pela utilização do
método SetFocus.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 37
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Click
Ocorre quando o utilizador pressiona e liberta o botão do rato sobre o objecto. Este
evento está tipicamente relacionado com os objectos CommandButton (Botões), Menus
ou PicturesBox.
DblClick
O duplo-click ocorre quando o utilizador pressiona, liberta, volta a pressionar e a
libertar o botão do rato sobre um objecto dentro de um determinado limite de tempo, findo
o qual, o objecto reconhece somente o evento click.
SetFocus
Move o Focus para um controlo ou um Form específico.
Propriedade SelStart
Indica ou fixa a posição de inserção do texto a seleccionar.
Propriedade SelLength
Indica ou fixa o número de caracteres seleccionados.
Função Len
Indica o número de caracteres de uma string.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 38
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Ole Objects – como fazer, exemplificando
Os objectos OLE (Objects Linked & Embebed) são uma forma de podermos aceder
a aplicações Windows, dentro de projectos de Visual Basic.
Para os utilizar basta dizer que se pretende inserir um objecto do tipo OLE e surge
uma imagem como a seguinte:
Figura 22 - Menu de inserção de objectos
Nesta imagem selecciona-se o Documento do Microsoft Word, e activa-se a
CheckBox "Mostrar como ícone". Faz-se click em Ok, para encerrar esta caixa de
diálogo. Segue-se o mesmo critério caso se pretenda inserir mais algum tipo, neste caso
inseri mais um objecto, que é o Microsoft Excel. Após estes passos obtem-se uma
imagem como a seguinte:
Figura 23 - Imagem de exemplo com objectos
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 39
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Data Control
Como tem vidno sendo hábito ao longo deste manual, a explicação das funções de
Visual Bsic vão ser dadas recorrendo a um exemplo prático. O projecto que se irá criar
terá o nome de Agenda e tem como objectivo registar dados de amigos, sendo o número
de acesso, chave principal.
Para que se possa tornar o projecto mais pessoal e mais personalizável, irá ser
cirada uma outra tabela onde se irão registar os dados pessoais, cujo campo name
aparecerá em todas as janelas.
Existem duas formas de se trabalhar com uma Base de Dados num projecto em
Visual Basic. Uma é usarmos o objecto Data Control, existente na ToolBox.
Figura 24 - Botão do Data Control
Outra é fazer a abertura manual da Base de Dados e das Tabelas utilizando para
isso essencialmente código SQL (Structed Query Language).
Existem vantagens e desvantagens em cada um dos processos. Vamos
esquematizar ambos os casos para uma compreensão facilitada.
Data Control - Vantagens:
•
Escrever poucas linhas de código.
•
Rapidez de execução do processo.
•
Projectos pequenos.
Data Control - Desvantagens:
•
Não se pode adaptar a outro projecto.
•
Debug (testar projecto paço a paço) difícil.
•
Dificuldades de modificação por outro programador.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 40
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Abertura Manual - Vantagens:
•
Total controlo sobre todos os aspectos do processo.
•
Melhor utilização em multi utilizador.
•
Código genérico reutilizável em diferentes projectos.
•
Poder ser facilmente alterado por outro programador.
Abertura Manual - Desvantagens:
•
Todo o processo tem que ser escrito.
•
Exige maior responsabilidade do programador.
Neste projecto vai ser abordada a abertura manual, mas continuando a análise do
projecto. Irão ser criar três janelas. A primeira terá um menu e ícones de modo a se poder
terminar ou aceder ás outras janelas com facilidade, e chamar-se-á FrmPrincipal. Existirá
uma janela para registar os dados pessoais (FrmPessoal), e uma outra para registar os
dados dos amigos (FrmAmigos).
Quando clicar em "Terminar" deve-se, através de uma caixa de diálogo, perguntar
se se quer mesmo terminar, dando a opção de cancelar a operação.
Na janela de "Amigos" irão ser utilizadas duas Frames. Uma para o sexo, com dois
OptionButtons, e uma outra para Estado Civil com seis OptionButtons, onde a
propriedade Caption será alterada para (Casado, Solteiro, Viúvo, Separado, Divorciado,
Outra).
Ao iniciar um novo projecto, escolhe-se Standard.EXE, clicá-se em Projects,
Components, e activa-se as CheckBox "Microsoft Windows Common Controls 5.0
(sp2)" e "Microsoft Tabbed Dialog Control 6.0", para fazer aparecer na ToolBox dois
objectos importantes: ImageList e Toolbar.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 41
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 25 - Menu de inserção de imagens
Com o botão direito do rato, sobre o objecto ImageList, clica-se em Properties
para aparecer a caixa de diálogo anterior. No separador "General" pode-se definir o
tamanho das imagens, neste caso 16X16. Nesta caixa de diálogo insere-se três imagens
de ícones que se querem que apareçam por baixo no Menu, para dar um aspecto mais
apelativo à nossa página principal. Termina-se com OK.
Figura 26 - Menu de definição de propriedades
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 42
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Com o botão direito do rato, sobre o objecto Toolbar, clica-se em Properties para
aparecer a caixa de diálogo seguinte. Ao separador "General" faz-se corresponder o
objecto ImageList com a Toolbar. No separador Buttons, insere-se as imagens,
preenchendo a caixa "ToolTipText" com o valor que se pretende que apareça quando se
aponta com o botão do rato. Finaliza-se com OK.
No final a página principal terá este aspecto. De notar que o objecto ImageList,
não aparece quando o projecto está em execução.
Figura 27 - Aspecto da aplicação exemplo
Clica-se ainda em Project, Add Module, a que se vai chamar Amigos onde
introduz o código seguinte:
Option Explicit
Global DBenc As Database
Global etiqueta As String
Global tblpes As Recordset
Global tblami As Recordset
Sub abrirBD()
Set DBenc = OpenDatabase("caminho da base de dados\base de dados.mdb")
Set tblpes = DBenc.OpenRecordset("pessoal")
Set tblami = DBenc.OpenRecordset("amigos")
End Sub
Sub fecharBD()
tblpes.Close
tblami.Close
DBenc.Close
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 43
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
O código correspondente à nossa janela principal é seguinte:
Option Explicit
Dim resp As Integer
Private Sub Form_Load()
etiqueta = "ESTA É A MINHA AGENDA"
Call abrirBD
End Sub
Private Sub mnupessoal_Click()
frmpessoal.Show
End Sub
Private Sub mnuterminar_Click()
resp = MsgBox("Terminar?", vbOKCancel + vbQuestion + vbDefaultButton2, "Projecto de Agenda")
Select Case resp
Case 1
Call fecharBD
End
End Select
End Sub
Private Sub nnuamigos_Click()
frmamigos.Show
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)
Select Case Button.Index
Case 1
resp = MsgBox("Pretende Terminar?", vbOKCancel + vbQuestion + vbDefaultButton2, "Projecto de
Agenda")
Select Case resp
Case 1
Call fecharBD
End
End Select
Case 2
frmamigos.Show
Case 3
frmpessoal.Show
End Select
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 44
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Propriedades alteradas na janela Frmprincipal
Name : frmprincipal
Caption : Agenda Pessoal
WindowState : 2 – Maximized
Figura 28 - Aspecto geral da aplicação exemplo
A segunda janela do projecto apresentará o aspecto anterior. Seis caixas de texto
com a propriedade Name alterada para os nomes que aparecem dentro delas. Cinco
botões chamados respectivamente cmdgravar, cmdactualizar, cmdapagar, cmdnovo e
cmdsair. Nestes botões e na propriedade Caption faz-se aparecer os nomes mostrados.
Altera-se ainda a propriedade Font para Bold, em cada um deles.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 45
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
O código correspondente a este Form é seguinte
Option Explicit
Sub gravar()
tblpes![codigo] = txtcodigo.Text
tblpes![nome] = txtnome.Text
tblpes![morada] = txtmorada.Text
tblpes![codpostal] = txtcodpostal.Text
tblpes![tel] = txttel.Text
tblpes![tm] = txttm.Text
tblpes.Update
End Sub
Sub mostrar()
txtcodigo.Text = tblpes![codigo]
txtnome.Text = tblpes![nome]
txtmorada.Text = tblpes![morada]
txtcodpostal.Text = tblpes![codpostal]
txttel.Text = tblpes![tel]
txttm.Text = tblpes![tm]
End Sub
Private Sub cmdactualizar_Click()
Call gravar
txtcodigo.SetFocus
End Sub
Private Sub cmdapagar_Click()
tblpes.Delete
txtcodigo.SetFocus
End Sub
Private Sub cmdgravar_Click()
tblpes.AddNew
Call gravar
txtcodigo.SetFocus
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 46
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub cmdnovo_Click()
txtcodigo.SetFocus
End Sub
Private Sub cmdsair_Click()
Unload Me
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{TAB}"
KeyAscii = 0
End If
End Sub
Private Sub Form_Load()
Label1.Caption = etiqueta
End Sub
Private Sub txtcodigo_GotFocus()
txtcodigo.Text = ""
txtnome.Text = ""
txtmorada.Text = ""
txtcodpostal.Text = ""
txttel.Text = ""
txttm.Text = ""
cmdgravar.Enabled = False
cmdactualizar.Enabled = False
cmdapagar.Enabled = False
End Sub
Private Sub txtcodigo_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyDelete
Case vbKeyBack
Case 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 47
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub txtcodigo_LostFocus()
tblpes.Index = "chavecodigo"
tblpes.Seek "=", txtcodigo.Text
If Not tblpes.NoMatch Then
cmdactualizar.Enabled = True
cmdapagar.Enabled = True
tblpes.Edit
Call mostrar
Else
cmdgravar.Enabled = True
txtnome.Text = "."
txtmorada.Text = "."
txtcodpostal.Text = "."
txttel.Text = "0"
txttm.Text = "0"
End If
End Sub
Private Sub txtcodpostal_GotFocus()
txtcodpostal.SelStart = 0
txtcodpostal.SelLength = Len(txtcodpostal.Text)
End Sub
Private Sub txtcodpostal_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub
Private Sub txtmorada_GotFocus()
txtmorada.SelStart = 0
txtmorada.SelLength = Len(txtmorada.Text)
End Sub
Private Sub txtmorada_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub
Private Sub txtnome_GotFocus()
txtnome.SelStart = 0
txtnome.SelLength = Len(txtnome.Text)
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 48
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub txtnome_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub
Private Sub txttel_GotFocus()
txttel.SelStart = 0
txttel.SelLength = Len(txttel.Text)
End Sub
Private Sub txttel_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyDelete
Case vbKeyBack
Case 48 To 57
Case Else
Beep
KeyAscii = 0
End Select
End Sub
Private Sub txttm_GotFocus()
txttm.SelStart = 0
txttm.SelLength = Len(txttm.Text)
End Sub
Private Sub txttm_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyDelete
Case vbKeyBack
Case 48 To 57
Case Else
Beep
KeyAscii = 0
End Select
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 49
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 29 - Aspecto da segunda janela da aplicação exemplo
A segunda janela do projecto apresentará o aspecto anterior. Sete caixas de texto com a
propriedade Name alterada para os nomes que aparecem dentro delas e cinco botões
chamados respectivamente cmdgravar, cmdactualizar, cmdapagar, cmdnovo e
cmdsair. Nestes botões e na propriedade Caption faz-se aparecer os nomes mostrados.
Um objecto SSTab com três separadores cujas propriedades Caption foram
alteradas para Sexo, Estado Civil e Memórias.
Figura 30 - Aspecto da janela de SStab
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 50
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
A imagem anterior e a seguinte são as duas imagem do separador SSTab.
Convém referir, a existência de uma Frame em cada separador onde são inseridas os
OptionButtons. No primeiro caso com a propriedade Name=Option1, para constituir um
array, e no segundo caso com a propriedade Name=Option2, para constituir um segundo
array.
Figura 31 - Aspecto da segunda janela do SSTab
O código correspondente a este Form é o seguinte
Option Explicit
Sub gravarBD()
tblami![numero] = txtnumero.Text
tblami![nome] = txtnome.Text
tblami![morada] = txtmorada.Text
tblami![codpostal] = txtcodpostal.Text
tblami![tm] = txttm.Text
tblami![tel] = txttel.Text
tblami![dtnasc] = txtdatnasc.Text
If option1(0).Value = True Then
tblami![sexo] = "M"
Else
tblami![sexo] = "F"
End If
If Option2(0).Value = True Then
tblami![estcivil] = "C"
ElseIf Option2(1).Value = True Then
tblami![estcivil] = "S"
ElseIf Option2(2).Value = True Then
tblami![estcivil] = "V"
ElseIf Option2(3).Value = True Then
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 51
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
tblami![estcivil] = "X"
ElseIf Option2(4).Value = True Then
tblami![estcivil] = "D"
ElseIf Option2(5).Value = True Then
tblami![estcivil] = "O"
End If
tblami![relatorio] = txtmem.Text
tblami.Update
End Sub
Sub mostrarBD()
txtnumero.Text = tblami![numero]
txtnome.Text = tblami![nome]
txtmorada.Text = tblami![morada]
txtcodpostal.Text = tblami![codpostal]
txttel.Text = tblami![tel]
txttm.Text = tblami![tm]
txtdatnasc.Text = tblami![dtnasc]
txtmem.Text = tblami![relatorio]
If tblami![sexo] = "M" Then
option1(0).Value = True
Else
option1(1).Value = True
End If
If tblami![estcivil] = "C" Then
Option2(0).Value = True
ElseIf tblami![estcivil] = "S" Then
Option2(1).Value = True
ElseIf tblami![estcivil] = "V" Then
Option2(2).Value = True
ElseIf tblami![estcivil] = "X" Then
Option2(3).Value = True
ElseIf tblami![estcivil] = "D" Then
Option2(4).Value = True
ElseIf tblami![estcivil] = "O" Then
Option2(5).Value = True
End If
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 52
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub cmdactualizar_Click()
Call gravarBD
txtnumero.SetFocus
End Sub
Private Sub cmdapagar_Click()
tblami.Delete
txtnumero.SetFocus
End Sub
Private Sub cmdgravar_Click()
tblami.AddNew
Call gravarBD
txtnumero.SetFocus
End Sub
Private Sub cmdoutro_Click()
txtnumero.SetFocus
End Sub
Private Sub cmdsair_Click()
Unload Me
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{TAB}"
KeyAscii = 0
End If
End Sub
Private Sub Form_Load()
Label1.Caption = etiqueta
End Sub
Private Sub Picture1_Click()
tblami.MoveLast
Call mostrarBD
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 53
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub Picture2_Click()
tblami.MoveFirst
Call mostrarBD
End Sub
Private Sub Picture3_Click()
tblami.MoveNext
If tblami.EOF Then
tblami.MoveLast
End If
Call mostrarBD
End Sub
Private Sub Picture4_Click()
tblami.MovePrevious
If tblami.BOF Then
tblami.MoveFirst
End If
Call mostrarBD
End Sub
Private Sub txtcodpostal_GotFocus()
txtcodpostal.SelStart = 0
txtcodpostal.SelLength = Len(txtcodpostal.Text)
End Sub
Private Sub txtcodpostal_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub
Private Sub txtdatnasc_GotFocus()
txtdatnasc.SelStart = 0
txtdatnasc.SelLength = Len(txtdatnasc.Text)
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 54
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub txtdatnasc_LostFocus()
If txtdatnasc.Text <> "" Then
If Not IsDate(txtdatnasc.Text) Then
MsgBox ("A Data Introduzida Não É Válida")
txtdatnasc.SetFocus
End If
End If
End Sub
Private Sub txtmorada_GotFocus()
txtmorada.SelStart = 0
txtmorada.SelLength = Len(txtmorada.Text)
End Sub
Private Sub txtmorada_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub
Private Sub txtnome_GotFocus()
txtnome.SelStart = 0
txtnome.SelLength = Len(txtnome.Text)
End Sub
Private Sub txtnome_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase$(Chr$(KeyAscii)))
End Sub
Private Sub txttel_GotFocus()
txttel.SelStart = 0
txttel.SelLength = Len(txttel.Text)
End Sub
Private Sub txttm_GotFocus()
txttm.SelStart = 0
txttm.SelLength = Len(txttm.Text)
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 55
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub txtnumero_GotFocus()
txtnumero.Text = ""
txtnome.Text = ""
txtmorada.Text = ""
txtcodpostal.Text = ""
txttel.Text = ""
txttm.Text = ""
txtdatnasc.Text = ""
txtmem.Text = ""
SSTab1.Tab = 0
Option2(0).Value = False
Option2(1).Value = True
Option2(2).Value = False
Option2(3).Value = False
Option2(4).Value = False
Option2(5).Value = False
option1(0).Value = True
option1(1).Value = False
cmdgravar.Enabled = False
cmdactualizar.Enabled = False
cmdapagar.Enabled = False
End Sub
Private Sub txttel_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyDelete
Case vbKeyBack
Case 48 To 57
Case Else
Beep
KeyAscii = 0
End Select
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 56
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Private Sub txttm_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyDelete
Case vbKeyBack
Case 48 To 57
Case Else
Beep
KeyAscii = 0
End Select
End Sub
Private Sub txtnumero_LostFocus()
tblami.Index = "chavenumero"
tblami.Seek "=", txtnumero.Text
If Not tblami.NoMatch Then
cmdactualizar.Enabled = True
cmdapagar.Enabled = True
tblami.Edit
Call mostrarBD
Else
cmdgravar.Enabled = True
txtnome.Text = "."
txtmorada.Text = "."
txtcodpostal.Text = "."
txttel.Text = "0"
txttm.Text = "0"
txtdatnasc.Text = Date
txtmem.Text = "."
End If
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 57
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 32 - Aspecto de um DataControl
A imagem anterior, utiliza o objecto DataControl, este objecto deve ter a
propriedade Visible=False, para não aparecer durante o tempo de execução e o objecto
DBGrid (Project/Components/Microsoft Data Bound Grid Controls 5.0 (sp3), o que
permite visualizar, alterar, apagar e mesmo adicionar registos à tabela sem
praticamente linhas de código, alterando somente as propriedades AllowAddNew,
AllowDelete e AllowUpdate para "True".
Acrescenta-se um Form ao qual chamámos frmdb, e adicionámos um novo item
ao Menu, de forma a podermos aceder a este Form.
Neste caso justifica-se plenamente a utilização do objecto DataControl.
Figura 33 - Botão da DBGrid
Figura 34 - Botão do DataControl
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 58
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
O que é o Crystal Reports?
O Crystal Reports Pro é um programa completo que ajuda a fazer relatórios,
guardá-los em disco e utilizá-los com uma Base de Dados. O Crystal Reports Pro tem a
característica de poder ser chamado dentro de aplicações em Visual Basic 5 ou superior.
Numa abordagem mais académica achei que seria mais positivo realizar este
pequeno manual usando exemplos práticos. Acho que desta forma se torna mais fácil
tanto a explicação como a aprendizagem.
Podemos iniciar o Crystal Reports dentro do próprio Visual Basic no menu Add-ins
e invocar o Report Designer.
Mas antes é necessário verificar se o computador possui o Crystal Reports, visto,
este ser um programa externo ao Visual Basic e como consequência não é instalado de
origem em conjunto com o resto dos controlos.
O Crystal Reports é instalado acendendo à pasta \Common\Tools\VB98\Cryrept.
Ao fazer duplo clique no ficheiro Crystl32.exe a aplicação é instalada.
Após concluída a instalação e invocar o Crystal Reports como explicado
anteriormente irá surgir uma janela como mostra a figura seguinte com o ambiente de
trabalho do Crystal Reports.
Figura 35 - Ambiente de Trabalho do Crystal Reports
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 59
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
O Crystal Reports contém várias faixas, cada uma das quais com os seus próprios
processos e cenário, que podemos alterar de modo a atingirmos os objectivos
pretendidos.
As Principais faixas do Crystal Reports
•
Cabeçalho
•
Rodapé
•
Detalhe
O cabeçalho e o rodapé contém as informações que aparecem no topo e na parte
inferior de cada página do relatório, como por exemplo títulos, números de página, data e
hora de impressão, etc. Cada página terá assim a sua faixa de cabeçalho e de rodapé.
O detalhe contém os campos de registo da Base de Dados. Pode ter mais que uma
linha, mas representa unicamente um registo lógico.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 60
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Os Campos do Crystal Reports
O Crystal Reports reconhece 3 tipos de campos:
•
Campos de Base de Dados
•
Campos de texto
•
Fórmulas
Os campos de Base de Dados, provêm directamente das tabelas que se abrem
quando se inicia o uso do Crystal Reports. Basta adicionar os campos através de uma
lista de campos acessíveis e colocá-los na localização desejada.
Os campos de texto, são campos que contêm informação explicita que se deseja
que apareça no relatório, como por exemplo a data e a hora. Se se quiser que estes
campos apareçam em todas as páginas é necessário colocá-los no cabeçalho ou no
rodapé.
Os campos tipo fórmula combinam o resultado dos campos da Base de Dados, de
texto ou de ambos. Estes campos são compostos por um nome (seguido do símbolo @),
dentro do qual são adicionadas as fórmulas.
O Crystal Reports tem disponíveis várias fórmulas predefinidas, assim como,
funções e operadores que nos permitem construir fórmulas complexas. Também é
permitida a inserção de declarações tipo IF, para testar a veracidade de campos.
Figura 36 - Janela do editor de fórmulas
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 61
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Esta janela, é a caixa de diálogo dos campos do tipo Fórmulas, e é constituída por
3 janelas distintas:
•
Campos da Base de Dados e / ou fórmulas na primeira Coluna.
•
Campos de Funções, com uma enorme variedade de funções
predefinidas na segunda Coluna.
•
Os Operadores na terceira Coluna com todos os operadores lógicos e
aritméticos existentes.
Conjugando estas três colunas podem-se criar fórmulas complexas, de modo a
atingir qualquer objectivo.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 62
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
O primeiro relatório
Foi dito na primeira página que uma das formas de executar o Crystal Reports seria
dentro do Visual Basic 5.0 ou superior, clicando em Add-Ins seguido de Report Designer,
como mostra a imagem que se segue:
Figura 37 - Janela de abertura do Crystal Reports
Para utilizar a possibilidade de imprimir através de um Form um ficheiro do Crystal
Reports, é necessário adicionar um novo objecto à Toolbox. Como mostra a figura
seguinte:
Figura 38 - Janela de gestão de controlos do Visual Basic
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 63
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Objecto Crystal Reports
Na sequência de clicar em Report Designer, aparece a primeira caixa de diálogo
onde é permitido escolher que tipo de relatório se quer elaborar. Tal como exemplifica a
figura seguinte:
Figura 39 - Criação de um relatório (Tipo de relatório)
Deve-se em Standard porque o objectivo é criar uma lista de amigos, por ordem
alfabética, onde podemos consultar quer o telefone e o telemóvel. Algo como uma lista
telefónica pessoal.
Na caixa de diálogo que se segue, clica-se no botão Data File, para escolher a
Base de Dados com que se pretende trabalhar.
Figura 40 - Criação de um relatório (Escolher Base de Dados)
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 64
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
A imagem seguinte revela uma janela tipo o explorador do Windows, onde se
escolhe a pasta que contém uma Base de Dados, neste exemplo é usada uma base de
dados com a listagem de os dados de uma pessoa (pode ser consultada a Base de
Dados na Figura 8, caso se deseje realizar um teste igual a este manual).
Figura 41 - Explorador do Windows (Escolha do caminho da Base de Dados)
Depois de seleccionada a Base de Dados pretendida (neste caso a amigos.mdb)
clica-se no botão Done.
Figura 42 - Esquema da Base de Dados seleccionada
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 65
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Na imagem seguinte, já no separador 4: Sort activo, escolhe-se "amigos.nome"
como campo de ordenação, isto é, a nossa lista irá aparecer por ordem alfabética, ou
seja, escolhe-se qual o campo pelo qual se quer ordenar o relatório. Caso seja
seleccionado um campo de texto o relatório é ordenado por ordem alfabética, caso seja
um número é o relatório é ordenado por ordem crescente.
Figura 43 - Criação de um relatório (Escolha do campo de ordenação)
Neste momento pode-se clicar no botão Preview Report pois o assistente está apto
a dar uma perspectiva ainda que "grosseira" do relatório final. Quando digo grosseira,
refiro-me a que o assistente irá listar toda a informação sem qualquer tipo de formatação,
é então necessário criar e configurar várias colunas para a correcta colocação dos
campos que se pretendem que apareçam no relatório.
Na linha de cabeçalho utiliza-se duas linhas com os textos conforme de forma a
que se possa colocar toda a informação pretendida. Acrescenta-se com o Insert Text Filed
as palavras "Data de emissão" que atrás de campo data, "Página" e mais ou menos a
meio da lista o texto "Lista dos meus amigos - Alfabética", como mostra a imagem
seguinte. É necessário ter em atenção que esta forma é apenas um exemplo, não é
absolutamente preciso que fique desta forma.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 66
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 44 - Exemplo de um relatório gerado pelo Crystal Reports
Pode-se e deve-se pelo menos melhorar os títulos na faixa de cabeçalhos. Para o
fazer, clica-se com o botão direito do rato e faz-se Edit Text File. Abre-se então um
pequeno processador de texto que nos permite, por exemplo, colocar a 1ª letra da palavra
em maiúsculas.
No exemplo que se segue, altera-se o título da coluna "Estado Civil" para "Est
Civil", além disso é colocado dentro de uma caixa para melhorar o aspecto gráfico do
relatório. Também é possível em vez de aparecer as iniciais que corresponderiam a um
determinado estado civil, aparecesse uma palavra que identificasse sem dúvida a referida
situação. Porque ninguém é obrigado a saber qual o diminutivo de determinado estado
civil.
Para realizar esta tarefa é necessário recorrer a programação como foi visto no
início deste manual utilizando cláusulas IF e transformar determinado diminutivo de
estado civil no seu estado completo. Para tal repara nas imagens seguintes:
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 67
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 45 - Código para verificar o Estado Civil
Para atingir o pretendido na coluna esquerda codifica-se o que está na coluna do
lado direito, cria-se então uma fórmula para atingir o objectivo pretendido. É preciso
codificar todas as situações possíveis.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 68
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
As opções dos menus
Opção
Função Descrição da acção
Cria um novo relatório. Após pedir para seleccionar uma Base de
New
File
Open
File
Save
File
Save As
File
Guarda o presente relatório com um novo nome
Save Data with Reports
File
Guarda o valor dos campos com o relatório
Close
File
Fecha o relatório corrente
Print Preview
File
Mostra no écran o relatório
Preview Sample
File
Printer
File
Envia o relatório para a impressora
Export
File
Imprime em diferentes formatos (Ex.html)
Mail
File
Envia o relatório por e-mail
Reports Definition
File
Imprime as definições do relatório
Printer Setup
File
Mostra as características da impressora
Page Margins
File
Permite definir as margens
Options
File
Reports Options
File
Define as opções do relatório corrente
Exit
File
Termina o Crystal Reports
Undo
Edit
Anula a última execução efectuada
Redo
Edit
Anula a execução anterior
Cut
Edit
Anula um texto seleccionado
Copy
Edit
Copia um texto seleccionado para o área de transferência
Dados
Abre um relatório já existente (*.RPT)
Guarda o presente relatório. Se não existe, pede para que seja
atribuído um nome.
Mostra o exemplo de um relatório perguntando o número de
páginas a visualizar
Define por defeito as pastas onde estão as base de dados e onde
serão guardados os relatórios
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 69
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Paste
Edit
Paste Especial
Edit
Select Fields
Edit
Fórmula
Edit
Para editar uma fórmula existente
Text Field
Edit
Para editar um campo de texto
Summary Field
Edit
Para editar um campo de resumo
Browse Field Data
Edit
Visualiza a lista de todos os valores possíveis
Show/Hide Section
Edit
Delete Section
Edit
Apaga um grupo/secção adicionada ao relatório
Object
Edit
Para editar um objecto OLE
Links
Edit
Permite alterar os links para um objecto OLE
Query
Edit
Para editar uma query, usada para extrair dados de campos SQL
Query Title
Edit
Modifica o titulo de uma query
Refresh Data
Edit
Actualiza os campos de um relatório
Database Field
Insert
Selecciona o campo de uma Base de dados
Text Field
Insert
Cria um campo de texto
Fórmula Field
Insert
Cria uma fórmula
Insert
Mostra no relatório a página corrente
Record Number Filed
Insert
Mostra a posição do registo na tabela, ordenado no relatório
Group Number Field
Insert
Permite criar um campo com um numero de grupo
Print Date Filed
Insert
Imprime a data do dia da impressão
Subtotal
Insert
Cria faixa para um sub-total. Só usada com campos numéricos
Grand Total
Insert
Page Number
Field
Cola o texto da área de transferência
Usa a área de transferência do Windows para copiar informação de
outra aplicação e colocá-la no relatório actualmente aberto.
Permite seleccionar um grupo de campos para, por exemplo,
executar a mesma tarefa
Mostra uma caixa de diálogo onde permite visualizar ou esconder
determinada secção
Cria uma faixa com um total geral. Como a anterior só pode ser
usada com campos numéricos.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 70
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Summary
Insert
Insere campos do tipo somas, médias, máximos, mínimos, etc.
Group Section
Insert
Determina o ponto de quebra e total
Group Name Field
Insert
Contem um texto que identifica cada grupo
Line
Insert
Desenha linhas
Box
Insert
Desenha caixas
Picture
Insert
Insere uma imagem
Graph/Chart Expext
Insert
Permite criar um gráfico no relatório
Object
Insert
Permite inserir um objecto OLE
Reports Style
Format
Permite escolher o formato do relatório
Auto Arrange
Format
Arranja os campos segundo determinada ordenação
Font
Format
Permite alterar a fonte de um campo
Field
Format
Permite alterar o formato do campo seleccionado
Borders and Colors
Format
Adiciona sombras, cores, etc., aos campos seleccionados
Change Line Height
Format
Altera a altura da linha seleccionada
Line...
Format
Altera a espessura da linha
Box...
Format
Permite modificar os atributos de uma caixa
Picture...
Format
Permite alterar a escala de uma imagem
Graph/Chart
Format
Permite alterar a imagem de um gráfico
Section
Format
Permite atribuir atributos a todas as secções das faixas do relatório
Visual Link Expert
Database Permite ver e alterar as relações entre as tabelas
Add Database to Reports Database Permite adicionar base de dados ao relatório
Remove From Reports
Set Location
Set Alias
Verify Database
Database Retira uma base de dados do relatório
Database
Permite determinar o caminho exacto das tabelas da base de
dados
Database Pemite criar Alias para as tabelas da base de dados
Database
Verifica se as tabelas da base de dados estão actualizadas com as
ultimas alterações
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 71
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Verify on Every Print
Database Se está on, faz a verificação da base de dados em cada impressão
Log On Server
Database Permite ligar ODBC
Log Off Server
Database Permite desligar ODBC
Show SQL Query
Stored Procedures
Parameters
Database Verifica o SQL query gerado pelo Crystal Reports
Database Reve os procedimentos de detalhe mantidos na fonte SQL
Reports
Determina um critério de selecção dos registos
Reports
Igual ao menu de selecção de registos
Reports
Permite um critério de selecção para os grupos
Change Group Expert
Reports
Permite facilmente alterar os grupos dos campos
Top N/Sort Group Expert
Reports
Cria relatórios na base de critérios percentuais
Sort Records
Reports
Especifica a forma como o relatório deve vir ordenado
Search
Reports
Permite procurar registos segundo determinado critério
Search Again
Reports
2ª procura
Zoom
Reports
Permite alterar o tamanho da visualização do relatório no ecran
Refresh Reports Data
Reports
Permite reler os dados da base de dados
Reports Title
Reports
Coloca um titulo no relatório
Set Print Date
Reports
Select Record Expert
Edit Selection
Fórmula/Record
Edit Section
Fórmula/Group
Permite alterar a data do sistema ou definir o valor do campo data
que aparece no relatório
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 72
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
O Cross-tab (Tabela Cruzada)
O Cross-Tab é um tipo de relatório que pode dar informações estatísticas
agrupadas de diferentes formas, como por exemplo, os valores de venda mensais por
cliente.
No exemplo que se segue é demonstrado de uma forma simples, com a Base de
Dados de amigos, como se faz este tipo de relatório.
Observe a imagem seguinte:
Figura 46 - Botão do assistente do Cross-Tab
Clicando neste botão, seguimos os passos normais da escolha da base de dados
até surgir uma caixa de diálogo onde definimos quais os valores que pretendemos que
apareçam nas Colunas, nas Linhas e no Detalhe.
Figura 47 - Assistente da criação de CrossTabs
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 73
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Nesta caixa de diálogo, selecciona-se o campo amigos.nome, e arrasta-se para o
espaço Row, ou clicamos em Add Row, assim como o campo amigos.tm.
Selecciona-se o campo amigos.dtnasc e arrasta-se para o espaço Columns, ou
clicamos no botão Add Column.
Selecciona-se o campo amigos.dtnasc o arrasta-se para o espaço Summarized
Field, ou clica-se no botão Set Summarized Field. Neste campo irá aparecer a
quantidade de amigos que fazem anos em determinado mês.
Podemos neste momento clicar no botão Preview Reports, para ter uma imagem
do relatório acabado de elaborar.
Já com a imagem do relatório no écran, pode-se clicar no separador Design para
se poder configurar o relatório à medida de cada utilizador, esta ferramenta não é nada
mais do a formatação do relatório.
Assim, clica-se com o botão direito do rato sobre o campo no título Data para abrir
uma caixa de diálogo. Retira-se o valor Year (ano) para espaço assim como o valor Day
(dia). No campo Month (mês) selecciona-se o mês pretendido, neste caso o MAR de
Março. Tudo isto para que apareça somente o nome do mês em título e não a data de
nascimento.
No detalhe clica-se com o botão direito do rato sobre o campo e selecciona-se
Change Format. Nesta caixa de diálogo activa-se a Check Box Suppress if Zero, para
que não nos apareça o valor zero, nos meses onde os nossos amigos não fazem anos.
Figura 48 - Formatação da data
Com este exemplo quis-se ilustrar a facilidade de apresentar um relatório
estatístico baseado no cruzamento de dados utilizando o Crystal Reports.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 74
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
A impressão através do Visual Basic
Estes relatórios acompanham os projectos de Visual Basic, e dentro do projecto é
possível imprimir os relatórios directamente, acrescentando como já foi visto o objecto
Crystal Reports à nossa ToolBox, e posteriormente ao Form dentro do qual queremos
que a impressão se efectue.
É dado em seguida um exemplo da forma com se processa a impressão usando o
Crystal Reports:
Imagine-se que dentro de um Form existe um botão com a propriedade "Caption" =
Imprimir e a propriedade "Name" = cmdimprimir. Vamos escrever um código possível
seguido da explicação que acho pertinente.
Private Sub cmdimprimir_click()
Dim iResult as Integer
CrystalReport1.DataFiles(0) = "c:\projectos\tutoriais\amigos.mdb"
CrystalReport1.CopiesToPrinter = 2
CrystalReport1.ReportFileName = "c:\projectos\tutoriais\amigos.rpt"
CrystalReport1.Destination = 0
iResult = CrystalReport1.PrintReport
If iResult <> 0 Then
MsgBox CrystalReport1.LastErrorString
End If
End Sub
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 75
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Comentário sobre o código anterior
•
Reparar que o nome da variável crystalreport1 é independente, ou seja, tem o
nome que quiser dar tal e qual como o command1 está associado a um botão.
•
A linha que indica datafiles diz o caminho onde está alojada a Base de Dados.
•
Serão impressas duas cópias do relatório.
•
Esta linha indica o caminho e o nome do relatório a ser impresso.
•
Destination=0 indica a visualização no ecran antes de ser reencaminhado para a
impressora. Os outros valores possíveis são: 1 - Impressora; 2 - Ficheiro; 3 - Email
via MAPI; 4 - Email via VIM
•
Se a execução da ordem de impressão for diferente de zero, é porque ocorreu uma
situação de erro, que será visualizada no écran.
•
Os caminhos indicados nas linhas 5 e 7 poderão ser substituídas por strings,
contendo os valores respectivos.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 76
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Criação de Help Files
O Help é, sem dúvida, um dos factores que contribui para que qualquer aplicação,
se realmente for uma boa ferramenta, seja um sucesso. É com recurso ao Help que os
utilizadores das aplicações podem ultrapassar obstáculos, de uma forma rápida e simples.
Existem duas formas de documentar as aplicações: a primeira é com um Help
online, para que o utilizador tenha acesso à ajuda em qualquer parte da aplicação e a
segunda é escrever manuais, menos prática que a primeira porque consiste na impressão
de manuais.
Para criar um Help, é necessário um processador de texto que tenha capacidades
de utilização de Footnotes (Notas de rodapé nas versões portuguesas) e que possa
guardar o ficheiro em formato .RTF (Rich Text Format). O Microsoft Word é um excelente
exemplo que poderá ser utilizado.
É necessário ainda um compilador de ficheiros .HLP a partir de ficheiros .RTF. Para
esta função vai ser utilizado o Microsoft Help Workshop, que pode ser encontrado no
CD do Visual Basic.
Mas para se poder utilizar o Microsoft Help Workshop é necessário instalá-lo
primeiro, pois, tal como o Crystal Reports ele não é instalado de origem com o
Visual Studio ou Visual Basic.
O Microsoft Help Workshop pode ser encontrado no CD do Visual Studio na
pastas \Common\Tools\VB\HCW.
O Microsoft Help Workshop é iniciado a partir do menu Iniciar do Windows.
Para criar um ficheiro Help, é necessário criar um índice (content file), os tópicos e
o seu desenvolvimento (topic file), e o projecto (project file). O ficheiro contents (.CNT) é
um ficheiro ASCII e define a aparência e o layout do tabulador Contents do ficheiro Help.
O ficheiro Topic é onde se escreve o texto, se inserem gráficos e que no conjunto fazem o
“Help”. O ficheiro Project cria a ligação entre os ficheiros Contents e Topic, assim como
outros ficheiros que são necessários ao projecto.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 77
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
As figuras seguintes mostram um ficheiro de Contents (.CNT) e um ficheiro de
Help.
Figura 49 - Exemplo de um ficheiro de Contents
Figura 50 - Exemplo de um ficheiro de Help
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 78
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Os passos para criar um ficheiro Help passam por compilar o ficheiro RTF e o
ficheiro Help Project com o compilador Help para assim dar origem ao ficheiro final de
ajuda a utilizar. A figura seguinte mostra o esquema de funcionamento do compilador.
Figura 51 - Esquema de funcionamento do compilador Help
Para criar então um ficheiro de Help abre-se o Microsoft Help Workshop e
seleccione o New no menu File. Na caixa de diálogo que surge escreva no campo
Default Filename e Default Title, os nomes que pretender para o seu ficheiro de ajuda.
Neste exemplo foi utilizado um ficheiro referente ao meio ambiente.
Em seguida adiciona-se um Heading à lista clicando no botão Add Below e
seleccionando a opção de Heading. No campo Title escreva o que desejar com título
principal do seu ficheiro de ajuda. Clique em OK para fechar a caixa de ajuda.
Vão-se adicionando todos os títulos que se desejarem da mesma forma até o
ficheiro ter todos os títulos que se desejem. Para criar um subtítulo como mostra a
imagem seguinte selecciona-se o título que se pretende e depois pressiona-se o botão
Move Right.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 79
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 52 - Ambiente do Microsoft Help Workshop
Após ter adicionado todos os tópicos que pretende guarde o ficheiro na pasta do
projecto em Visual Basic. Após ter terminado então a criação do ficheiro Content é
necessário criar o ficheiro de Topic, utilizando, como já foi referido um processador de
texto que suporte Footnotes e ficheiros RTF.
No ficheiro de texto escreva o conteúdo que pretende para cada tópico introduzido
no ficheiro de Content com a estrutura apresentada em baixo. Esta estrutura é necessária
para que o compilador reconheça as ligações entre os dois ficheiros que constituem a
ajuda propriamente dita.
Antes de cada tema que inseriu no ficheiro de Content, em seguida é necessário
efectuar a inserção de três Footnotes antes do tópico propriamente dito.
1. Inserir um Footnote com a marca de # associada ao texto IDH_1.
2. Inserir um Footnote com a marca de $ associada ao texto do tópico, neste
caso é Ecossistema.
3. Inserir um Footnote com a marca de k associada ao texto que se pretende
que seja pesquisável para aquele tópico.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 80
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Após estes passos temos um ficheiro no Word com um aspecto semelhante ao
seguinte:
Figura 53 - Ficheiro exemplo de criação dos tópicos
Após a inserção de todos os tópicos guarda-se o ficheiro (não esquecer de alterar o
tipo de ficheiro para Rich Text Format).
Vamos então iniciar a criação do ficheiro de Help baseado nos dois ficheiros
criados anteriormente. Crie um novo ficheiro no Help Compiler Workshop. Seleccione o
item New do menu File e escolha Help Project e faça duplo clique no botão de OK.
Guarde o ficheiro com o nome que pretender, ficando com um ficheiro com o aspecto
como na figura seguinte:
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 81
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Figura 54 - Criação do ficheiro de Help
Depois faça clique no botão de Options e escreva qual o título do ficheiro, veja a
figura 55 para visualizar qual o aspecto pretendido:
Figura 55 - Tabulador General da caixa de diálogo Options
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 82
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Em seguida, é necessário configurar todos os aspectos referentes ao ficheiro de
ajuda, é o que irei explicar nas próximas páginas. Seleccione o separador Compression
e escolha a opção Custom e marque a caixa Hall Compressions, desta forma o ficheiro
de ajuda irá ficar com o menor tamanho possível e tornarse-á bastante mais rápido a
pesquisar.
No separador Files e no campo Help File escreva o ficheiro .HLP que pretende que
tenha o ficheiro de ajuda no final do projecto. Faça clique no botão Change referente ao
campo Rich Text Format e na caixa que é apresentada faça clique no botão Add e
escolha o ficheiro criado anteriormente no Microsoft Word.
Faça clique no botão Change referente ao campo Contents File e na caixa de
diálogo que é apresentada , faça clique no botão Add e escolha o ficheiro de Content que
criou no inicio do trabalho de criação do ficheiro de Help.
O separador Files da caixa de diálogo Options deverá estar semelhante ao da figura
seguinte:
Figura 56 - Definições para o separador Files
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 83
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Feche a caixa de diálogo das Options e clique no botão Windows ao aparecer a
caixa de diálogo Create a Window, escreva Main no campo Created a Window Named.
Mantenha o outro campo com Procedure (figura 57). Ao fazer clique no botão de OK é
apresentada a caixa de diálogo Window Properties.
Figura 57 - Definições para a caixa de diálogo Create a Window
Seleccione o separador Buttons e marque a caixa Browse. Após esta operação
feche a caixa de diálogo.
Faça clique no botão Map. Ao aparecer a caixa de diálogo Map, faça clique no
botão Add. Escreva IDH_1 para o campo Topic ID (aquele que tem o mesmo ID no
ficheiro de Word) e 100 para o campo Mapped numeric value. Veja a figura seguinte:
Figura 58 - Caixa de diálogo Edit Map Entry com as definições para o tópico IDH_1
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 84
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Com base nos seguintes dados, insira os restantes valores numéricos para os
tópicos criados, neste exemplo os tópicos teriam a seguinte configuração:
Topic ID
Context ID
IDH_1
100
IDH_2
101
IDH_3
103
IDH_4
201
IDH_5
202
IDH_6
203
IDH_7
301
IDH_8
302
Estes códigos correspondem aos tópicos inseridos anteriormente, ou seja, sempre
que o algarismo das centenas é incrementado, quer dizer que esse ID pertence a um
tópico diferente d anterior. O algarismo das unidades corresponde a novos tópicos dentro
de outro. Mas melhor que explicar é exemplificar:
Estruturas dos Ecossistemas
(IDH_1 100)
Ecossitemas
(IDH_2 101)
Factores bióticos
(IDH_3 103)
Funcionamento de ecossistemas
(IDH_4 201)
Relações entre seres vivos
(IDH_5 202)
Factores abióticos
(Etc… Etc.)
No final a caixa de diálogo deve apresentar um aspecto semelhante ao seguinte:
Figura 59 - Caixa de diálogo Map com os valores numéricos para os IDH
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 85
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Para terminar só falta guardar o trabalho e compilar o ficheiro de ajuda. Durante a
compilação a aplicação é minimizada (figura 60) e depois restaurada para apresentar os
resultados (figura 61) da mesma. Deverá obter uma janela com o aspecto seguinte:
Figura 60 - Projecto de um ficheiro de ajuda
Figura 61 - Resultados da compilação do ficheiro de ajuda
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 86
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Depois de termos criado o ficheiro de ajuda é necessário associá-lo correctamente
ao ficheiro de Visual Basic que se pretende.
Para esse fim abre-se as Properties de um projecto e na caixa onde refere Help
File Name escreve-se o caminho e o nome do ficheiro de ajuda criado. Ter em atenção
que se o ficheiro de ajuda estiver na mesma pasta que o projecto não se escreve o
caminho mas só o nome do ficheiro.
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 87
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Criação de pacotes de instalação
Tudo aquilo que se aprendeu e se pode programar em Visual Basic, bem como em
qualquer linguagem é nossa propriedade intelectual. De certeza que ninguém gostava que
alguém que não teve qualquer trabalho possa aceder, alterar e até mesmo comercializar
aquilo que tanto trabalho deu a concretizar.
Assim, o Visual Basic permite compilar os projectos, ou seja, transformar aquilo
que qualquer programador entende, em linguagem que só o computador entende. Deste
modo garante-se a nossa propriedade.
Para isso e ainda com o projecto aberto (qualquer um) (irei utilizar o projecto de
agenda que serviu para exemplificar o DataControl), faz click em File seguido de Make
Nome_do_ficheiro.exe. Isto irá transformar o projecto actual num ficheiro executável.
Se não precisarmos de o distribuir, bastará clicar neste executável, para que o
projecto funcione.
Mas se se pretender distribuir o projecto, há a necessidade de criar um pacote de
instalação. Assim o projecto funcionará em qualquer outro computador. Em Visual Basic
6, clica em Package And Deployment Wizard, que é um assistente que auxilia a
concretizar este objectivo. Observe a figura seguinte:
Figura 62 - Janela do Wizard de criação de pacotes de instalação
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 88
Escola Profissional de Gaia – Informática de Gestão – Técnicas e Linguagens de Programação
Clicando em Package, e seguindo as opções do assistente, pode-se criar um conjunto de
ligações, secções, referências externas e funções, que serão geradas a partir do projecto,
originando assim um objecto que contém código máquina.
Figura 63 - Tipo de pacote de instalação que se pretende
E o assistente está concluído, assim sempre que se desejar instalar o projecto num
outro computador basta executar o ficheiro gerado e surgirá uma imagem como a
seguinte dando a escolher as opções de instalação pretendidas.
Figura 64 - Pacote de instalação em execução
Módulo XII – Visual Basic 6.0 – O Visual Basic 6.0
Página 89