Você está na página 1de 89

Escola Profissional de Gaia

12 Ano de Informtica de Gesto Tcnicas e Linguagens de Programao

Verso 1.0

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Introduo
O Visual Basic uma das linguagens mais utilizadas no desenvolvimento de interfaces grficas para Windows. Este pequeno manual ir introduzir algumas das caractersticas do Visual Basic e tentar explicar o porqu deste se ter tornado to popular em todo o mundo.

Porqu o Visual Basic


de fcil aprendizagem Permite criar controlos ActiveX Pode-se integrar com a Internet Disponibiliza assistentes para melhor produtividade uma linguagem POO (Programao Orientada por Objectos) Permite utilizar objectos OLE (Object Linking and Embedded) Permite utilizar API's do Windows (Application Programming Interface) Permite desenvolver rpidas aplicaes

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Tipo de Aplicaes em Visual Basic


H muitos tipos de aplicaes que se podem criar em Visual Basic. Cada tipo de aplicao destinado a um objectivo bastante especfico.

Standard EXE Este tipo utilizado para criar uma aplicao stand-alone, que no necessite de pertencer a aplicao. A maioria das aplicaes de negcios so deste tipo.

ActiveX EXE Este tipo de aplicao geralmente criado para ser usado por outras aplicaes, para um servio particular ou vrios servios. Estes servios podem correr local ou remotamente.

ActiveX DLL Este tipo de aplicaes geralmente criado para ser usado por outras aplicaes para servio particular ou vrios servios mas criado como livraria. Este DLL tem que estar na mquina onde se pretende executar o programa final. executado dentro do mesmo processo da aplicao original.

ActiveX Document DLL Este tipo de aplicao desenvolvido para ser usado dentro do contexto de outra aplicao. Muito parecido com ActiveX EXEs e DLLs, mas geralmente providenciam um interface com a aplicao que os chama. Sendo uma DLL, executa-se no mesmo processo da aplicao que o invoca.

ActiveX Document EXE Este tipo de aplicao desenvolvido para ser usado dentro do contexto de outra aplicao. Muito parecido com ActiveX EXEs e DLLs, mas geralmente providenciam um interface com a aplicao que os chama. Sendo um EXE, corre num processo separado da aplicao que o invoca.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Componentes do Visual Basic


Projects Um projecto um conjunto de forms, controlos, etc. referenciados para uma automatizao de servidores, num cenrio de criao de aplicaes.

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 cdigos associados, so armazenados num ficheiro com extenso FRM.

Controlos Um controlo uma ferramenta que permite mostrar ou receber informaes do utilizador. Exemplo de controlos so: caixas de texto, botes, etiquetas, grelhas, etc. Os controlos, so apresentados / disponibilizados dentro de uma toolbox e tm uma extenso OCX.

Code Modules O code module, um cdigo origem escrito para fazer os controlos e forms responder a uma interaco do utilizador. Serve para declarar variveis, constantes, procedimentos ou funes, declaraes, chamar API's do Windows, etc. So guardados em ficheiros com extenso BAS.

Class Modules Permite criar os nossos prprios objectos. O Visual Basic permite a criao de classes completas com propriedades e mtodos. So guardados em ficheiros com a extenso CLS.

Resource Files Os ficheiros de recurso permitem guardar recursos do Windows, tais como strings, bitmaps, cursores, cones, etc.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Hierarquia das aplicaes em Visual Basic


Aplicaes Propriedades das aplicaes Forms Propriedades Propriedades de procedimentos Eventos Outros procedimentos Controlos Propriedades Eventos Mdulos Procedimentos Classes Propriedades Propriedades de procedimentos Mtodos Outros procedimentos Resource Files Documentos ActiveX Componentes ActiveX

Trs passos para criar uma aplicao


No importa que tipo de aplicao se pretende criar, sempre se devem seguir estes passos para o fazer.

Criar um Interface. Fixar as propriedades para os controlos. Escrever o cdigo.


Pgina 5

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

O Ambiente do Visual Basic


O ambiente do Visual Basic pode ser utilizado desde a resoluo de 800x600 at ao mximo que o computador e monitor aguentar. Claro que quanto maior for a resoluo maior ser o ambiente disponvel para trabalhar. preciso ter em ateno que o Visual Basic possui Visual Memory, ou seja, ele decora a posio e tamanho das janelas quando estas so criadas e se mudarmos para um outro computador que possua uma resoluo diferente daquela em que foi guardado o projecto pela ltima vez, o aspecto deste pode ser diferente do desejado ou do planeado. A resoluo recomendada de 1024x768. A imagem que se segue a primeira que aparece quando entrares no Visual Basic 6.0.

Figura 1 - A janela de incio do Visual Basic 6.0

Pressiona OK para abrir um projecto novo Standard EXE (um projecto normal que ser depois mais tarde guardado como executvel). O ambiente de desenvolvimento aparecer como o que se segue:

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 2 - O ambiente de desenvolvimento do Visual Basic 6.0

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Os vrios componentes da janela do Visual Basic 6.0


Menu Bar Permite-te executar todas as funes no Toolbar, assim como seleccionar todas as outras funes existentes no VB.

Toolbar O Toolbar contm cones localizados horizontalmente situado no topo da janela de desenvolvimento do Visual Basic. a barra que permite controlar todas as funes bsicas 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 aplicao. Todos os controlos tm de ser colocados em forms. Seguidamente se o controlo necessitar de alguma programao esta feita na janela de programao, mas o objecto que inclui as librarias necessrias 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 mdulos que criam a tua aplicao. nesta janela que podes intercalar entre os vrios 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).

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Immediate Window vista quando h uma quebra na aplicao (a aplicao que est em execuo gera um erro) esta janela aparece na linha em que a aplicao 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 necessrio 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.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Descrio da ToolBox

PictureBox Este controlo pode mostrar grficos de ficheiros bitmap, icon, ficheiros JPEG ou GIF. Caso o controlo no tenha o espao suficiente o prprio controlo corta a imagem at ao espao disponvel. O programador tem que ajustar a janela do controlo at esta ter espao suficiente para a imagem que l pretende colocar. LabelControl um controlo grfico que utilizado para mostrar texto na form que no editvel pelo utilizador (pode ser uma mensagem a indicar informaes no form). TextBox Control Algumas vezes chamado campo de edio ou controlo de edio, mostra/recebe informaes digitadas pelo utilizador. Este controlo permite alterar uma das suas propriedades Multiline para True, de modo a serem mostradas/recebidas vrias linhas de texto.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 10

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Frame Control Permite identificar um grupo de controlos, ou seja, permite agregar vrios controlos numa nica frame. Por norma usasse esta funcionalidade para tornar uma janela mais funcional. CommandButton Control Utiliza-se este comando como controlo da aplicao o controlo que permite adicionar botes 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 opo verdadeira ou falsa, sim ou no (opo do tipo booleano). Pode usar-se em grupos para mostrar mltiplas escolhas, onde o utilizador pode seleccionar uma ou mais. usada para poder seleccionar as opes. Para utilizar correctamente este controlo ento definido no cdigo da aplicao as aces desejadas conforme a opo seja verdadeira ou falsa. OptionButton Control Mostra uma opo que pode ser alterada para verdadeira ou falsa (Ligado ou desligado). Utiliza-se em grupo para que o utilizador apenas possa seleccionar somente uma opo de um conjunto que possam ser seleccionadas. ComboBox Control Combina as caractersticas de uma TextBox e de uma ListBox. Os utilizadores podem introduzir informaes na TextBox, ou seleccionar um item de uma lista. til porque o utilizador quando interage com a aplicao no necessita de saber inicialmente as opes que pode escolher, visto estas serem apresentadas na prpria caixa de interaco. As opes podem ser inseridas por cdigo directo ou por acesso a uma base de dados.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 11

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

ListBox Control Mostra uma lista de opes na qual o utilizador pode seleccionar uma ou mais. Serve como uma combobox mas podem ser seleccionadas mais do que uma opo. HScrollBar, VScrollBar Controls Facilitam a navegao numa lista longa de opes, ou numa quantidade larga de informao, ou seja, so criadas barras de deslocamento que iro permitir deslocar todas as opes para o sentido desejado de forma a encontrar a opo desejada mais facilmente. Timer Control Pode executar um cdigo em intervalos de tempo regulares. Invisvel para o utilizador, til para um processo que se pretenda que seja executado com regularidade mas com total transparncia 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 vlido durante a execuo do processo. Utiliza-se este controlo para mostrar a lista dos discos rgidos ou no 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 hierrquica das pastas. FileListBox Control Lista os ficheiros de um directrio especfico. Pode seleccionar-se o tipo de ficheiros que se pretende visualizar ou apenas mostrar todos os ficheiros sem qualquer tipo de seleco ou escolha (utilizao de filtros).

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 12

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Shape Control um controlo grfico mostrado como um rectngulo, quadrado, oval, crculo, rectngulo arredondado, ou quadrado arredondado que permite criar uma janela de visualizao ou criar um aspecto de caixa de edio com a adio de sombras, efeitos, etc. Line Control um controlo grfico 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. necessrio seleccionar qual o motor de ligao 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 simultneo as teclas CRTL+T. Na caixa de dilogo, seleccionar os componentes que queremos integrar na nossa aplicao. Estes controlos aqui explicados so aqueles que vm por defeito no Visual Basic. O Visual Basic tem um conjunto de controlos extras que podem ser adicionados.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 13

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Janela de propriedades
A janela de propriedades encontra-se no lado direito do ambiente de trabalho. Aqui podem-se modificar as caractersticas de um objecto e o seu interface com o utilizador. A ttulo 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 aplicao (vulgo, o nome de uma varivel na linguagem C). Caption Palavra ou frase que aparece no topo esquerdo do Form. o texto que surge na janela de ttulo no form.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 14

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

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 funo da tecla TAB

Figura 3 - Exemplo de alterao de funes s teclas

Height Permite definir qual a altura da janela. Left Permite definir a distncia a que janela fica em relao margem esquerda do monitor. Top Permite definir a que distncia a janela fica em relao margem superior do monitor. Width Permite definir qual a largura da janela.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 15

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Para poder controlar estas quatro ltimas propriedades deve utilizar o Form Layout Window, para posicionar a janela na posio correcta. Colocando o cursor sobre a janela e pressionando com o boto esquerdo do rato, fixada a posio que se deseja para a posio da janela da aplicao em tempo de execuo.

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 hierrquica os Forms, Modules, Controls, Property Pages ou Objects Documents, do projecto que est a ser desenvolvido.

Figura 5 - Janela de gesto do projecto

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 16

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

A Notao Hngara
A caracterstica principal desta notao dar ao programador uma ajuda preciosa na elaborao dos nomes das variveis que iro ser utilizadas no projecto. No entanto, esta uma notao puramente opcional e deve ser encarada exclusivamente como um mtodo. O importante utilizar nomes curtos e simultaneamente significativos e fceis de recordar e de perceber conforme a funo que ir ter na aplicao para que outras pessoas possam analisar a perceber rapidamente o problema. A tabela que se segue alm do exemplo desta notao contem os valores limites das variveis.

Prefixo

Tipo de varivel

Valores

bln

Boolean

True / False

int

Integer

-32,768 a 32,767

lng

Long

-2,147,483,648 a 2,147,483,647

str

String

0 a +/- 2 bilies de caract.

dtm dbl

Date/Time

01/01/1000 a 31/12/9999 Nmeros Positivos 4.94065645 ^ -324 a 1.797693 ^ +308 Nmeros Negativos -1.797693^ +308 a -4.94065645^ -324 Nmeros Positivos 2.802597^-45 a 3.402823^+38 Nmeros Negativos -3.402823^+38 a -2.802597^-45 True / False

Double

sng

Single

bln

Boolean

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 17

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Operadores Matemticos, Relacionais e Lgicos:

Sinal
* = / ^ + MOD \ > >= <= < <> AND

Significado

Multiplicao Subtraco Atribuio Diviso potenciao Soma Resto da diviso Diviso Inteira Maior que Maior ou Igual Menor ou Igual Menor que Diferente Se ambas as expresses forem verdadeiras o resultado verdadeiro Se a expresso for falsa, o resultado verdadeiro. Se a expresso for verdadeira, o resultado falso Se algumas das expresses for verdadeira, o resultado verdadeiro Se uma das expresses for verdadeira, o resultado

NOT

OR

XOR

verdadeiro. Se ambas forem verdadeiras ou falsas, o resultado falso.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 18

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Estruturas de Deciso :
A estrutura IF If condio1 Then cdigo da condio1 se a mesma for verdadeira ElseIf condio2 Then cdigo da condio2 se a mesma for verdadeira ElseIf condio3 Then cdigo da condio3 se a mesma for verdadeira Else cdigo se nenhuma das condies anteriores for verdadeira End If

A estrutura Select - Case Select Case Executa um dos vrios grupos de instrues, dependendo do valor destas. Select Case expresso (expresso numrica ou string) Case expresso1 Cdigo.... relativo expresso1 Case expres1 Cdigo.... relativo expresso2 End Select

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 19

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Estruturas de repetio (Ciclos)


A estrutura Do - Until Do Until condio1 cdigo.... ( O ciclo mantm-se at que se verifique a condio ) Loop

A estrutura Do - While Do While condio2 cdigo.... ( O ciclo mantm-se enquanto se verificar a condio2 ) Loop

A estrutura For For ndice = inicio To fim cdigo.... ( O ciclo mantm-se desde inicio at fim ) Next ndice

A estrutura While While condio (executa uma srie de instrues enquanto a condio for verdadeira ou falsa. A condio nula, tratada como falsa) cdigo.... Wend

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 20

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

A Criao de Menus
A criao de menus, bastante intuitiva utilizando o Visual Basic. Para comear, 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 criao de menus

Os campos de preenchimento obrigatrio so aqueles assinalados com o Caption, sendo o Caption o nome que surge no menu propriamente dito. O campo Name, o nome atribudo a cada um dos "Captions". A forma mais fcil de explicar e perceber o modo de funcionamento realizar um exemplo prtico. Vamos criar um menu fictcio para perceber ento a lgica, tentado fazer uma imagem igual que se segue:

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 21

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 7 - Criao de menus

Algumas explicaes importantes: O caracter "&" que aparece no inicio da maioria das palavras, vai "provocar" que a letra a seguir aparea em sublinhado, indicando um atalho para esse procedimento. Premindo a tecla "ALT" + a letra sublinhada, acederemos directamente opo assinalada pela letra. Neste exemplo o T de Terminar vai ser a letra sublinhada e a qual pode ser acedida atravs 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 situao de um menu Drop-Down. Quando se clica na palavra "me", aparece um outro menu que permanece at que o utilizador o feche ou clique numa das suas opes. O caracter "-", que aparece entre "...&Amigos e ...&Cidades" tem como objectivo "separar" duas opes do respectivo submenu. Depois de executar estas instrues, e F5 (para executar o projecto) surge um menu parecido com a imagem seguinte:
Mdulo XII Visual Basic 6.0 O Visual Basic 6.0 Pgina 22

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 8 - Resultado do exemplo da criao de menus

As palavras "Pgina Principal", aparecem na barra de ttulo se forem alteradas as propriedades "Caption" do Form.

POPUP Menu Para a criao de um popup menu iremos utilizar tambm um exemplo prtico com demonstrao de como o cdigo funciona. Pretende-se registar e listar as pessoas que "no se gostam". Esta opo no se torna agradvel aparecer no menu desta forma, ento utiliza-se o chamado POPUP menu. Quando na janela principal, se clicar por exemplo com o boto direito do rato. Para isso necessrio codificar o "Evento" MOUSE UP do Form com o seguinte cdigo: If Button = 2 then PopupMenu mnucautelas (Nome da caixa Name) End If

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 23

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

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 no nos apaream no menu principal. Acrescentamos dois submenus "Gesto de inimigos" e Listar inimigos". Tecla em F5, e quando o Form se abrir, clica no boto direito do rato. Aparecer qualquer coisa como o que se segue:

Figura 9 - Exemplo do surgimento de um popup menu

Desta forma podem criadas funes que s o programador ou uma pessoa a quem tenha sido transmitida esta informao tem acesso a algumas funcionalidades que se pretendem que sejam ocultas para o utilizador normal.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 24

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Criao de uma ToolBar


Para tornar mais apelativo um projecto, pode-se/deve-se criar uma ToolBar por baixo do menu, anteriormente criado, onde sero mostrados botes com imagens, de forma a tornar as aces bsicas mais intuitivas de usar e alcanar.

Figura 10 - Insero dos controlos das ToolBox

Para acrescentar alguns objectos ToolBox, clicmos em Project e em seguida, Components. Com esta operao abre-se o menu de gesto de controlos do Visual Basic. Activa-se a Check Box Microsoft Windows Common Controls 5.0 (SP2), fazendo ento aparecer na ToolBox pelo menos mais dois componentes (ToolBar e ImageList) que vo ser importantes para a funo 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. Ateno que necessrio a colocao dos dois mtodos para a barra funcionar correctamente.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 25

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Aps a colocao dos objectos no Form, clica-se com o boto 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 - Insero e configurao de imagens para a ToolBox

Clicando no boto Insert Picture, insere-se as imagens *.ICO ou *. BMP existentes no nosso sistema, terminando com click no boto OK. Pode-se fechar a janela de Page Properties, para trabalhar o outro objecto. Temos ento de configurar a ToolBar, clicando nele com o boto direito do rato e em seguida em Properties.

Figura 12 - Configurao 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.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 26

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 13 - Associao de imagens aos botes

Com Insert Button, insere-se os botes na ToolBar. Na caixa de texto Image inserese o nmero da imagem, e se se pretender pode-se inserir uma caixa de texto com ajuda que ir aparecer caso o rato permanea em cima do boto. Esta aco 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 acabmos de fazer. Note que o objecto ImageList, no aparece em RunTime, s em DesignTime.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 27

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Message Box
Uma Message Box, mostra uma caixa de dilogo e espera que o utilizador click num boto retornando um valor indicador do boto que foi premido, para ento realizar uma opo predefinida. Como anteriormente iremos estudar a MessageBox atravs de um exemplo prtico. Em seguida encontra-se o cdigo necessrio para a criao de MessageBox:

Dim resp As Integer resp = MsgBox("Texto da mensagem", vbAbortRetryIgnore + vbCritical + vbDefaultButton1, "Titulo da mensagem")

O cdigo anterior gera uma MessageBox do gnero da seguinte:

Figura 15 - Exemplo de uma MessageBox

Em seguida publicada uma tabela com os mtodos que se podem criar com as caractersticas dos botes, bem como dos valores retornados consoante o boto que o utilizador clica.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 28

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Tabela com as caractersticas da MsgBox

Constante
vbOKOnly vbOKCancel vbAbortRetryIgnore vbRetryCancel VbCritical vbQuestion vbExclamation vbInformation vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbApplicationModal

Valor
0 1 2 5 16 32 48 64 0 256 512 768 0 Mostra o boto de Ok

Descrio

Mostra os botes de Ok e Cancelar Mostra os botes de Abortar, Repetir, Ignorar Mostra botes de Repetir e Cancelar Mostra o cone de Perigo Mostra o cone de Interrogao Mostra o cone de Exclamao Mostra o cone de Informao Selecciona por defeito o 1 boto Selecciona por defeito o 2 boto Selecciona por defeito o 3 boto Selecciona por defeito o 4 boto Aplicao modal. O utilizador deve responder caixa de mensagem antes de continuar a trabalhar na aplicao. Sistema modal. Todas as aplicaes so suspensas at que o utilizador responda caixa de mensagens.

vbSystemModal

4096

A funo MsgBox retorna os seguintes valores:

Constante vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo

Valor 1 2 3 4 5 6 7

Boto OK Cancel Abort Retry Ignore Yes No

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 29

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Dialog Box
A Message Box utilizada para informar o utilizador de algo que se passou, e espera um click para executar uma aco. Com a Dialog Box pretendemos que o utilizador introduza uma determinada informao para completar uma tarefa. Por exemplo, se pretender fazer um Backup (segurana) de uma Base de dados da nossa aplicao, 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 cdigo:

Dim Stexto as String mens = " DIGITE O NOME DA BASE DE DADOS " tit = " SISTEMA DE SEGURANA" Stexto = InputBox$(mens, tit)

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 30

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

ComboBox e ListBox
A ComboBox deve ser usada quando o utilizador pretende ter uma lista predefinida de valores. Algumas vezes tambm 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
List ListCount ListIndex Name Sorted Style Text

Descrio
Lista de todos os elementos Numero de elementos Numero do elemento seleccionado Nome do objecto ( com o prefixo cbo ) Ordenao dos elementos Simple, DropDown, ou DropDown List Valor do elemento seleccionado

Normalmente, e para que a Combobox tenha valores logo no incio da aplicao necessrio que as instrues de carregamento se encontrem no procedimento Form_load().

Figura 17 - Adiconar campos ComboBox

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 31

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Na execuo 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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 32

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Exemplo de criao de janela para interaco 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 ento composta por : Quatro objectos do tipo Label, onde se insere o texto que se pretende que surja no ecr do utilizador. Esta alterao efectuada na propriedade Caption da Label. Quatro objectos do tipo TextBox, stio onde o utilizador poder escrever. Dois objectos do tipo CommandButton, que iro assumir o executar de eventos.

Codificao da janela anteriormente mostrada


Private Sub Text1_GotFocus() Text1.Text="" Text2.Text="" Text3.Text="" Text4.Text="" End Sub

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 33

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 34

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 20 - Exemplo de aplicao em tempo de execuo

Comentrios codificao apresentada

1 - Quando a caixa de texto "Text1" tem o Focus, "esvazia/limpa" o contedo de todas as caixas de texto. 2 - A funo Ucase$ transforma em maisculas todos os caracteres. 3 - A funo Lcase$ transforma em minsculas todos os caracteres. 4 - S permite caracteres Ascii compreendidos entre 48 e 57, que correspondem aos caracteres numricos, 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 alfabticos, 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.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 35

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Procedimentos e Funes
Procedimentos so linhas de cdigo, usadas para responder a eventos ou executar algumas aces. Os procedimentos no retornam valores, e so identificados pela palavra Sub, na sua declarao. Todos os procedimentos devem comear com uma letra, e podem conter letras, nmeros e o caracter underscore. Funes so usadas quando se pretende executar clculos, ou testar valores. Nas funes retorna-se sempre algo. Mostramos de seguida algumas das funes mais comuns que podem ser utilizadas. A lista completa de funes pode ser consultada em "The Language reference Book". Funes
Chr, Chr$ Asc Str, Str$ Format, Format$ Val

Descrio
Converte valores ANSI numa string. Converte uma string num valor ASCII. Converte um nmero numa string. Converte um numero numa string formatada. Converte uma string num nmero.

Date, date$ / Time, Time$ Obtm a data do sistema e hora do sistema, respectivamente. Now InputBox, InputBox$ MsgBox LCase, LCase$ UCase, UCase$ Space, Space$ String, String$ Len InStr Left, Left$ LTrim, LTrim$ Mid, Mid$ RTrim, RTrim$ Right, Right$ Trim, Trim$ IsDate IsNull IsNumeric Beep Obtm a data e a hora do sistema. Mostra uma caixa de input, espera uma string do utilizador. Mostra uma caixa de mensagens Converte uma string em caracteres minsculos Converte uma string em caracteres maisculos Insere espaos repetidos entre duas strings Converte numa string uma varivel Retorna o comprimento de uma string Determina se uma string est dentro doutra string Retorna uma string esquerda de uma string Anula os espaos esquerda de uma string Procura uma string contida noutra string Anula os espaos direita de uma string Retorna uma string direita de uma string Anula espaos esquerda e direita de uma string Valida se uma data vlida Valida se uma varivel nula Valida se uma varivel numrica Emite um som

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 36

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Eventos
Imagine um Form com vrios 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 possveis em Visual Basic

A descrio dos eventos


GotFocus Ocorre quando um objecto recebe o focus ( seleccionado). Quer seja pela aco do utilizador, da tecla TAB, pelo Click do rato ou ainda pela utilizao do mtodo 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 aco do utilizador, da tecla TAB, pelo Click do rato ou ainda pela utilizao do mtodo SetFocus.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 37

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Click Ocorre quando o utilizador pressiona e liberta o boto do rato sobre o objecto. Este evento est tipicamente relacionado com os objectos CommandButton (Botes), Menus ou PicturesBox.

DblClick O duplo-click ocorre quando o utilizador pressiona, liberta, volta a pressionar e a libertar o boto 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 especfico.

Propriedade SelStart Indica ou fixa a posio de insero do texto a seleccionar.

Propriedade SelLength Indica ou fixa o nmero de caracteres seleccionados.

Funo Len Indica o nmero de caracteres de uma string.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 38

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Ole Objects como fazer, exemplificando


Os objectos OLE (Objects Linked & Embebed) so uma forma de podermos aceder a aplicaes 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 insero 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 dilogo. Segue-se o mesmo critrio caso se pretenda inserir mais algum tipo, neste caso inseri mais um objecto, que o Microsoft Excel. Aps estes passos obtem-se uma imagem como a seguinte:

Figura 23 - Imagem de exemplo com objectos

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 39

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Data Control
Como tem vidno sendo hbito ao longo deste manual, a explicao das funes de Visual Bsic vo ser dadas recorrendo a um exemplo prtico. O projecto que se ir criar ter o nome de Agenda e tem como objectivo registar dados de amigos, sendo o nmero de acesso, chave principal. Para que se possa tornar o projecto mais pessoal e mais personalizvel, ir ser cirada uma outra tabela onde se iro 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 - Boto do Data Control

Outra fazer a abertura manual da Base de Dados e das Tabelas utilizando para isso essencialmente cdigo SQL (Structed Query Language). Existem vantagens e desvantagens em cada um dos processos. Vamos esquematizar ambos os casos para uma compreenso facilitada.

Data Control - Vantagens: Escrever poucas linhas de cdigo. Rapidez de execuo do processo. Projectos pequenos.

Data Control - Desvantagens: No se pode adaptar a outro projecto. Debug (testar projecto pao a pao) difcil. Dificuldades de modificao por outro programador.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 40

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Abertura Manual - Vantagens: Total controlo sobre todos os aspectos do processo. Melhor utilizao em multi utilizador. Cdigo genrico reutilizvel 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 anlise do projecto. Iro ser criar trs 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, atravs de uma caixa de dilogo, perguntar se se quer mesmo terminar, dando a opo de cancelar a operao. Na janela de "Amigos" iro 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, Vivo, 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.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 41

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 25 - Menu de insero de imagens

Com o boto direito do rato, sobre o objecto ImageList, clica-se em Properties para aparecer a caixa de dilogo anterior. No separador "General" pode-se definir o tamanho das imagens, neste caso 16X16. Nesta caixa de dilogo insere-se trs imagens de cones que se querem que apaream por baixo no Menu, para dar um aspecto mais apelativo nossa pgina principal. Termina-se com OK.

Figura 26 - Menu de definio de propriedades

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 42

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Com o boto direito do rato, sobre o objecto Toolbar, clica-se em Properties para aparecer a caixa de dilogo 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 aparea quando se aponta com o boto do rato. Finaliza-se com OK. No final a pgina principal ter este aspecto. De notar que o objecto ImageList, no aparece quando o projecto est em execuo.

Figura 27 - Aspecto da aplicao exemplo

Clica-se ainda em Project, Add Module, a que se vai chamar Amigos onde introduz o cdigo 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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 43

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

O cdigo 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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 44

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Propriedades alteradas na janela Frmprincipal


Name : frmprincipal Caption : Agenda Pessoal WindowState : 2 Maximized

Figura 28 - Aspecto geral da aplicao 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 botes chamados respectivamente cmdgravar, cmdactualizar, cmdapagar, cmdnovo e cmdsair. Nestes botes e na propriedade Caption faz-se aparecer os nomes mostrados. Altera-se ainda a propriedade Font para Bold, em cada um deles.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 45

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

O cdigo 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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 46

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 47

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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


Mdulo XII Visual Basic 6.0 O Visual Basic 6.0 Pgina 48

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 49

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 29 - Aspecto da segunda janela da aplicao 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 botes chamados respectivamente cmdgravar, cmdactualizar, cmdapagar, cmdnovo e cmdsair. Nestes botes e na propriedade Caption faz-se aparecer os nomes mostrados. Um objecto SSTab com trs separadores cujas propriedades Caption foram alteradas para Sexo, Estado Civil e Memrias.

Figura 30 - Aspecto da janela de SStab

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 50

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

A imagem anterior e a seguinte so as duas imagem do separador SSTab. Convm referir, a existncia de uma Frame em cada separador onde so 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 cdigo 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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 51

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 52

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 53

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 54

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


Private Sub txtdatnasc_LostFocus() If txtdatnasc.Text <> "" Then If Not IsDate(txtdatnasc.Text) Then MsgBox ("A Data Introduzida No Vlida") 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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 55

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 56

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao


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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 57

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 32 - Aspecto de um DataControl

A imagem anterior, utiliza o objecto DataControl, este objecto deve ter a propriedade Visible=False, para no aparecer durante o tempo de execuo 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 cdigo, alterando somente as propriedades AllowAddNew, AllowDelete e AllowUpdate para "True". Acrescenta-se um Form ao qual chammos frmdb, e adicionmos um novo item ao Menu, de forma a podermos aceder a este Form. Neste caso justifica-se plenamente a utilizao do objecto DataControl.

Figura 33 - Boto da DBGrid

Figura 34 - Boto do DataControl

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 58

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

O que o Crystal Reports?


O Crystal Reports Pro um programa completo que ajuda a fazer relatrios, guard-los em disco e utiliz-los com uma Base de Dados. O Crystal Reports Pro tem a caracterstica de poder ser chamado dentro de aplicaes em Visual Basic 5 ou superior. Numa abordagem mais acadmica achei que seria mais positivo realizar este pequeno manual usando exemplos prticos. Acho que desta forma se torna mais fcil tanto a explicao como a aprendizagem. Podemos iniciar o Crystal Reports dentro do prprio Visual Basic no menu Add-ins e invocar o Report Designer. Mas antes necessrio verificar se o computador possui o Crystal Reports, visto, este ser um programa externo ao Visual Basic e como consequncia no 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 aplicao instalada. Aps concluda a instalao 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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 59

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

O Crystal Reports contm vrias faixas, cada uma das quais com os seus prprios processos e cenrio, que podemos alterar de modo a atingirmos os objectivos pretendidos.

As Principais faixas do Crystal Reports

Cabealho Rodap Detalhe

O cabealho e o rodap contm as informaes que aparecem no topo e na parte inferior de cada pgina do relatrio, como por exemplo ttulos, nmeros de pgina, data e hora de impresso, etc. Cada pgina ter assim a sua faixa de cabealho e de rodap. O detalhe contm os campos de registo da Base de Dados. Pode ter mais que uma linha, mas representa unicamente um registo lgico.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 60

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Os Campos do Crystal Reports

O Crystal Reports reconhece 3 tipos de campos: Campos de Base de Dados Campos de texto Frmulas

Os campos de Base de Dados, provm directamente das tabelas que se abrem quando se inicia o uso do Crystal Reports. Basta adicionar os campos atravs de uma lista de campos acessveis e coloc-los na localizao desejada. Os campos de texto, so campos que contm informao explicita que se deseja que aparea no relatrio, como por exemplo a data e a hora. Se se quiser que estes campos apaream em todas as pginas necessrio coloc-los no cabealho ou no rodap. Os campos tipo frmula combinam o resultado dos campos da Base de Dados, de texto ou de ambos. Estes campos so compostos por um nome (seguido do smbolo @), dentro do qual so adicionadas as frmulas. O Crystal Reports tem disponveis vrias frmulas predefinidas, assim como, funes e operadores que nos permitem construir frmulas complexas. Tambm permitida a insero de declaraes tipo IF, para testar a veracidade de campos.

Figura 36 - Janela do editor de frmulas

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 61

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Esta janela, a caixa de dilogo dos campos do tipo Frmulas, e constituda por 3 janelas distintas: Campos da Base de Dados e / ou frmulas na primeira Coluna. Campos de Funes, com uma enorme variedade de funes predefinidas na segunda Coluna. Os Operadores na terceira Coluna com todos os operadores lgicos e aritmticos existentes. Conjugando estas trs colunas podem-se criar frmulas complexas, de modo a atingir qualquer objectivo.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 62

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

O primeiro relatrio

Foi dito na primeira pgina 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 atravs de um Form um ficheiro do Crystal Reports, necessrio adicionar um novo objecto Toolbox. Como mostra a figura seguinte:

Figura 38 - Janela de gesto de controlos do Visual Basic

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 63

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Objecto Crystal Reports

Na sequncia de clicar em Report Designer, aparece a primeira caixa de dilogo onde permitido escolher que tipo de relatrio se quer elaborar. Tal como exemplifica a figura seguinte:

Figura 39 - Criao de um relatrio (Tipo de relatrio)

Deve-se em Standard porque o objectivo criar uma lista de amigos, por ordem alfabtica, onde podemos consultar quer o telefone e o telemvel. Algo como uma lista telefnica pessoal. Na caixa de dilogo que se segue, clica-se no boto Data File, para escolher a Base de Dados com que se pretende trabalhar.

Figura 40 - Criao de um relatrio (Escolher Base de Dados)

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 64

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

A imagem seguinte revela uma janela tipo o explorador do Windows, onde se escolhe a pasta que contm 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 boto Done.

Figura 42 - Esquema da Base de Dados seleccionada

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 65

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Na imagem seguinte, j no separador 4: Sort activo, escolhe-se "amigos.nome" como campo de ordenao, isto , a nossa lista ir aparecer por ordem alfabtica, ou seja, escolhe-se qual o campo pelo qual se quer ordenar o relatrio. Caso seja seleccionado um campo de texto o relatrio ordenado por ordem alfabtica, caso seja um nmero o relatrio ordenado por ordem crescente.

Figura 43 - Criao de um relatrio (Escolha do campo de ordenao)

Neste momento pode-se clicar no boto Preview Report pois o assistente est apto a dar uma perspectiva ainda que "grosseira" do relatrio final. Quando digo grosseira, refiro-me a que o assistente ir listar toda a informao sem qualquer tipo de formatao, ento necessrio criar e configurar vrias colunas para a correcta colocao dos campos que se pretendem que apaream no relatrio. Na linha de cabealho utiliza-se duas linhas com os textos conforme de forma a que se possa colocar toda a informao pretendida. Acrescenta-se com o Insert Text Filed as palavras "Data de emisso" que atrs de campo data, "Pgina" e mais ou menos a meio da lista o texto "Lista dos meus amigos - Alfabtica", como mostra a imagem seguinte. necessrio ter em ateno que esta forma apenas um exemplo, no absolutamente preciso que fique desta forma.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 66

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 44 - Exemplo de um relatrio gerado pelo Crystal Reports

Pode-se e deve-se pelo menos melhorar os ttulos na faixa de cabealhos. Para o fazer, clica-se com o boto direito do rato e faz-se Edit Text File. Abre-se ento um pequeno processador de texto que nos permite, por exemplo, colocar a 1 letra da palavra em maisculas. No exemplo que se segue, altera-se o ttulo da coluna "Estado Civil" para "Est Civil", alm disso colocado dentro de uma caixa para melhorar o aspecto grfico do relatrio. Tambm possvel em vez de aparecer as iniciais que corresponderiam a um determinado estado civil, aparecesse uma palavra que identificasse sem dvida a referida situao. Porque ningum obrigado a saber qual o diminutivo de determinado estado civil. Para realizar esta tarefa necessrio recorrer a programao como foi visto no incio deste manual utilizando clusulas IF e transformar determinado diminutivo de estado civil no seu estado completo. Para tal repara nas imagens seguintes:

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 67

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 45 - Cdigo para verificar o Estado Civil

Para atingir o pretendido na coluna esquerda codifica-se o que est na coluna do lado direito, cria-se ento uma frmula para atingir o objectivo pretendido. preciso codificar todas as situaes possveis.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 68

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

As opes dos menus

Opo

Funo Descrio da aco

New
Open

File

Cria um novo relatrio. Aps pedir para seleccionar uma Base de Dados Abre um relatrio j existente (*.RPT) Guarda o presente relatrio. Se no existe, pede para que seja atribudo um nome. Guarda o presente relatrio com um novo nome Guarda o valor dos campos com o relatrio Fecha o relatrio corrente Mostra no cran o relatrio Mostra o exemplo de um relatrio perguntando o nmero de pginas a visualizar Envia o relatrio para a impressora Imprime em diferentes formatos (Ex.html) Envia o relatrio por e-mail Imprime as definies do relatrio Mostra as caractersticas da impressora Permite definir as margens Define por defeito as pastas onde esto as base de dados e onde sero guardados os relatrios Define as opes do relatrio corrente Termina o Crystal Reports Anula a ltima execuo efectuada Anula a execuo anterior Anula um texto seleccionado Copia um texto seleccionado para o rea de transferncia

File

Save

File

Save As Save Data with Reports Close Print Preview

File File File File

Preview Sample

File

Printer Export Mail Reports Definition Printer Setup Page Margins

File File File File File File

Options

File

Reports Options Exit Undo Redo Cut Copy

File File Edit Edit Edit Edit

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 69

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Paste

Edit

Cola o texto da rea de transferncia Usa a rea de transferncia do Windows para copiar informao de outra aplicao e coloc-la no relatrio actualmente aberto. Permite seleccionar um grupo de campos para, por exemplo, executar a mesma tarefa Para editar uma frmula existente Para editar um campo de texto Para editar um campo de resumo Visualiza a lista de todos os valores possveis Mostra uma caixa de dilogo onde permite visualizar ou esconder determinada seco Apaga um grupo/seco adicionada ao relatrio Para editar um objecto OLE Permite alterar os links para um objecto OLE Para editar uma query, usada para extrair dados de campos SQL Modifica o titulo de uma query Actualiza os campos de um relatrio Selecciona o campo de uma Base de dados Cria um campo de texto Cria uma frmula

Paste Especial

Edit

Select Fields

Edit

Frmula Text Field Summary Field Browse Field Data

Edit Edit Edit Edit

Show/Hide Section

Edit

Delete Section Object Links Query Query Title Refresh Data Database Field Text Field Frmula Field Page Number Field Record Number Filed Group Number Field Print Date Filed Subtotal

Edit Edit Edit Edit Edit Edit Insert Insert Insert

Insert

Mostra no relatrio a pgina corrente

Insert Insert Insert Insert

Mostra a posio do registo na tabela, ordenado no relatrio Permite criar um campo com um numero de grupo Imprime a data do dia da impresso Cria faixa para um sub-total. S usada com campos numricos Cria uma faixa com um total geral. Como a anterior s pode ser usada com campos numricos.

Grand Total

Insert

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 70

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Summary Group Section Group Name Field Line Box Picture Graph/Chart Expext Object Reports Style Auto Arrange Font Field Borders and Colors Change Line Height Line... Box... Picture... Graph/Chart Section Visual Link Expert

Insert Insert Insert Insert Insert Insert Insert Insert Format Format Format Format Format Format Format Format Format Format Format

Insere campos do tipo somas, mdias, mximos, mnimos, etc. Determina o ponto de quebra e total Contem um texto que identifica cada grupo Desenha linhas Desenha caixas Insere uma imagem Permite criar um grfico no relatrio Permite inserir um objecto OLE Permite escolher o formato do relatrio Arranja os campos segundo determinada ordenao Permite alterar a fonte de um campo Permite alterar o formato do campo seleccionado Adiciona sombras, cores, etc., aos campos seleccionados Altera a altura da linha seleccionada Altera a espessura da linha Permite modificar os atributos de uma caixa Permite alterar a escala de uma imagem Permite alterar a imagem de um grfico Permite atribuir atributos a todas as seces das faixas do relatrio

Database Permite ver e alterar as relaes entre as tabelas

Add Database to Reports Database Permite adicionar base de dados ao relatrio Remove From Reports Database Retira uma base de dados do relatrio Permite determinar o caminho exacto das tabelas da base de dados

Set Location

Database

Set Alias

Database Pemite criar Alias para as tabelas da base de dados Verifica se as tabelas da base de dados esto actualizadas com as ultimas alteraes

Verify Database

Database

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 71

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Verify on Every Print Log On Server Log Off Server Show SQL Query Stored Procedures Parameters Select Record Expert Edit Selection Frmula/Record Edit Section Frmula/Group Change Group Expert Top N/Sort Group Expert Sort Records Search Search Again Zoom Refresh Reports Data Reports Title

Database Se est on, faz a verificao da base de dados em cada impresso Database Permite ligar ODBC Database Permite desligar ODBC Database Verifica o SQL query gerado pelo Crystal Reports

Database Reve os procedimentos de detalhe mantidos na fonte SQL

Reports

Determina um critrio de seleco dos registos

Reports

Igual ao menu de seleco de registos

Reports

Permite um critrio de seleco para os grupos

Reports Reports Reports Reports Reports Reports Reports Reports

Permite facilmente alterar os grupos dos campos Cria relatrios na base de critrios percentuais Especifica a forma como o relatrio deve vir ordenado Permite procurar registos segundo determinado critrio 2 procura Permite alterar o tamanho da visualizao do relatrio no ecran Permite reler os dados da base de dados Coloca um titulo no relatrio Permite alterar a data do sistema ou definir o valor do campo data que aparece no relatrio

Set Print Date

Reports

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 72

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

O Cross-tab (Tabela Cruzada)


O Cross-Tab um tipo de relatrio que pode dar informaes estatsticas 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 relatrio. Observe a imagem seguinte:

Figura 46 - Boto do assistente do Cross-Tab

Clicando neste boto, seguimos os passos normais da escolha da base de dados at surgir uma caixa de dilogo onde definimos quais os valores que pretendemos que apaream nas Colunas, nas Linhas e no Detalhe.

Figura 47 - Assistente da criao de CrossTabs

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 73

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Nesta caixa de dilogo, selecciona-se o campo amigos.nome, e arrasta-se para o espao Row, ou clicamos em Add Row, assim como o campo amigos.tm. Selecciona-se o campo amigos.dtnasc e arrasta-se para o espao Columns, ou clicamos no boto Add Column. Selecciona-se o campo amigos.dtnasc o arrasta-se para o espao Summarized Field, ou clica-se no boto Set Summarized Field. Neste campo ir aparecer a quantidade de amigos que fazem anos em determinado ms. Podemos neste momento clicar no boto Preview Reports, para ter uma imagem do relatrio acabado de elaborar. J com a imagem do relatrio no cran, pode-se clicar no separador Design para se poder configurar o relatrio medida de cada utilizador, esta ferramenta no nada mais do a formatao do relatrio. Assim, clica-se com o boto direito do rato sobre o campo no ttulo Data para abrir uma caixa de dilogo. Retira-se o valor Year (ano) para espao assim como o valor Day (dia). No campo Month (ms) selecciona-se o ms pretendido, neste caso o MAR de Maro. Tudo isto para que aparea somente o nome do ms em ttulo e no a data de nascimento. No detalhe clica-se com o boto direito do rato sobre o campo e selecciona-se Change Format. Nesta caixa de dilogo activa-se a Check Box Suppress if Zero, para que no nos aparea o valor zero, nos meses onde os nossos amigos no fazem anos.

Figura 48 - Formatao da data

Com este exemplo quis-se ilustrar a facilidade de apresentar um relatrio estatstico baseado no cruzamento de dados utilizando o Crystal Reports.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 74

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

A impresso atravs do Visual Basic

Estes relatrios acompanham os projectos de Visual Basic, e dentro do projecto possvel imprimir os relatrios directamente, acrescentando como j foi visto o objecto Crystal Reports nossa ToolBox, e posteriormente ao Form dentro do qual queremos que a impresso se efectue. dado em seguida um exemplo da forma com se processa a impresso usando o Crystal Reports:

Imagine-se que dentro de um Form existe um boto com a propriedade "Caption" = Imprimir e a propriedade "Name" = cmdimprimir. Vamos escrever um cdigo possvel seguido da explicao 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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 75

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Comentrio sobre o cdigo anterior

Reparar que o nome da varivel crystalreport1 independente, ou seja, tem o nome que quiser dar tal e qual como o command1 est associado a um boto. A linha que indica datafiles diz o caminho onde est alojada a Base de Dados. Sero impressas duas cpias do relatrio. Esta linha indica o caminho e o nome do relatrio a ser impresso. Destination=0 indica a visualizao no ecran antes de ser reencaminhado para a impressora. Os outros valores possveis so: 1 - Impressora; 2 - Ficheiro; 3 - Email via MAPI; 4 - Email via VIM

Se a execuo da ordem de impresso for diferente de zero, porque ocorreu uma situao de erro, que ser visualizada no cran. Os caminhos indicados nas linhas 5 e 7 podero ser substitudas por strings, contendo os valores respectivos.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 76

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Criao de Help Files


O Help , sem dvida, um dos factores que contribui para que qualquer aplicao, se realmente for uma boa ferramenta, seja um sucesso. com recurso ao Help que os utilizadores das aplicaes podem ultrapassar obstculos, de uma forma rpida e simples. Existem duas formas de documentar as aplicaes: a primeira com um Help online, para que o utilizador tenha acesso ajuda em qualquer parte da aplicao e a segunda escrever manuais, menos prtica que a primeira porque consiste na impresso de manuais. Para criar um Help, necessrio um processador de texto que tenha capacidades de utilizao de Footnotes (Notas de rodap nas verses portuguesas) e que possa guardar o ficheiro em formato .RTF (Rich Text Format). O Microsoft Word um excelente exemplo que poder ser utilizado. necessrio ainda um compilador de ficheiros .HLP a partir de ficheiros .RTF. Para esta funo 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 necessrio instal-lo primeiro, pois, tal como o Crystal Reports ele no 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, necessrio criar um ndice (content file), os tpicos e o seu desenvolvimento (topic file), e o projecto (project file). O ficheiro contents (.CNT) um ficheiro ASCII e define a aparncia e o layout do tabulador Contents do ficheiro Help. O ficheiro Topic onde se escreve o texto, se inserem grficos e que no conjunto fazem o Help. O ficheiro Project cria a ligao entre os ficheiros Contents e Topic, assim como outros ficheiros que so necessrios ao projecto.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 77

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

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

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 78

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

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 ento um ficheiro de Help abre-se o Microsoft Help Workshop e seleccione o New no menu File. Na caixa de dilogo 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 boto Add Below e seleccionando a opo de Heading. No campo Title escreva o que desejar com ttulo principal do seu ficheiro de ajuda. Clique em OK para fechar a caixa de ajuda. Vo-se adicionando todos os ttulos que se desejarem da mesma forma at o ficheiro ter todos os ttulos que se desejem. Para criar um subttulo como mostra a imagem seguinte selecciona-se o ttulo que se pretende e depois pressiona-se o boto Move Right.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 79

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 52 - Ambiente do Microsoft Help Workshop

Aps ter adicionado todos os tpicos que pretende guarde o ficheiro na pasta do projecto em Visual Basic. Aps ter terminado ento a criao do ficheiro Content necessrio 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 contedo que pretende para cada tpico introduzido no ficheiro de Content com a estrutura apresentada em baixo. Esta estrutura necessria para que o compilador reconhea as ligaes entre os dois ficheiros que constituem a ajuda propriamente dita. Antes de cada tema que inseriu no ficheiro de Content, em seguida necessrio efectuar a insero de trs Footnotes antes do tpico 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 tpico, neste caso Ecossistema. 3. Inserir um Footnote com a marca de k associada ao texto que se pretende que seja pesquisvel para aquele tpico.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 80

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Aps estes passos temos um ficheiro no Word com um aspecto semelhante ao seguinte:

Figura 53 - Ficheiro exemplo de criao dos tpicos

Aps a insero de todos os tpicos guarda-se o ficheiro (no esquecer de alterar o tipo de ficheiro para Rich Text Format).

Vamos ento iniciar a criao 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 faa duplo clique no boto de OK. Guarde o ficheiro com o nome que pretender, ficando com um ficheiro com o aspecto como na figura seguinte:

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 81

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Figura 54 - Criao do ficheiro de Help

Depois faa clique no boto de Options e escreva qual o ttulo do ficheiro, veja a figura 55 para visualizar qual o aspecto pretendido:

Figura 55 - Tabulador General da caixa de dilogo Options

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 82

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Em seguida, necessrio configurar todos os aspectos referentes ao ficheiro de ajuda, o que irei explicar nas prximas pginas. Seleccione o separador Compression e escolha a opo Custom e marque a caixa Hall Compressions, desta forma o ficheiro de ajuda ir ficar com o menor tamanho possvel e tornarse- bastante mais rpido 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. Faa clique no boto Change referente ao campo Rich Text Format e na caixa que apresentada faa clique no boto Add e escolha o ficheiro criado anteriormente no Microsoft Word. Faa clique no boto Change referente ao campo Contents File e na caixa de dilogo que apresentada , faa clique no boto Add e escolha o ficheiro de Content que criou no inicio do trabalho de criao do ficheiro de Help. O separador Files da caixa de dilogo Options dever estar semelhante ao da figura seguinte:

Figura 56 - Definies para o separador Files

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 83

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Feche a caixa de dilogo das Options e clique no boto Windows ao aparecer a caixa de dilogo Create a Window, escreva Main no campo Created a Window Named. Mantenha o outro campo com Procedure (figura 57). Ao fazer clique no boto de OK apresentada a caixa de dilogo Window Properties.

Figura 57 - Definies para a caixa de dilogo Create a Window

Seleccione o separador Buttons e marque a caixa Browse. Aps esta operao feche a caixa de dilogo. Faa clique no boto Map. Ao aparecer a caixa de dilogo Map, faa clique no boto 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 dilogo Edit Map Entry com as definies para o tpico IDH_1

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 84

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Com base nos seguintes dados, insira os restantes valores numricos para os tpicos criados, neste exemplo os tpicos teriam a seguinte configurao:

Topic ID
IDH_1 IDH_2 IDH_3 IDH_4 IDH_5 IDH_6 IDH_7 IDH_8

Context ID
100 101 103 201 202 203 301 302

Estes cdigos correspondem aos tpicos inseridos anteriormente, ou seja, sempre que o algarismo das centenas incrementado, quer dizer que esse ID pertence a um tpico diferente d anterior. O algarismo das unidades corresponde a novos tpicos dentro de outro. Mas melhor que explicar exemplificar:

Estruturas dos Ecossistemas Ecossitemas Factores biticos Funcionamento de ecossistemas Relaes entre seres vivos Factores abiticos

(IDH_1 100) (IDH_2 101) (IDH_3 103) (IDH_4 201) (IDH_5 202) (Etc Etc.)

No final a caixa de dilogo deve apresentar um aspecto semelhante ao seguinte:

Figura 59 - Caixa de dilogo Map com os valores numricos para os IDH

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 85

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Para terminar s falta guardar o trabalho e compilar o ficheiro de ajuda. Durante a compilao a aplicao 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 compilao do ficheiro de ajuda

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 86

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Depois de termos criado o ficheiro de ajuda necessrio 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 ateno que se o ficheiro de ajuda estiver na mesma pasta que o projecto no se escreve o caminho mas s o nome do ficheiro.

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 87

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Criao de pacotes de instalao


Tudo aquilo que se aprendeu e se pode programar em Visual Basic, bem como em qualquer linguagem nossa propriedade intelectual. De certeza que ningum gostava que algum que no 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 executvel. Se no precisarmos de o distribuir, bastar clicar neste executvel, para que o projecto funcione. Mas se se pretender distribuir o projecto, h a necessidade de criar um pacote de instalao. 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 criao de pacotes de instalao

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 88

Escola Profissional de Gaia Informtica de Gesto Tcnicas e Linguagens de Programao

Clicando em Package, e seguindo as opes do assistente, pode-se criar um conjunto de ligaes, seces, referncias externas e funes, que sero geradas a partir do projecto, originando assim um objecto que contm cdigo mquina.

Figura 63 - Tipo de pacote de instalao que se pretende

E o assistente est concludo, 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 opes de instalao pretendidas.

Figura 64 - Pacote de instalao em execuo

Mdulo XII Visual Basic 6.0 O Visual Basic 6.0

Pgina 89

Você também pode gostar