Académique Documents
Professionnel Documents
Culture Documents
Verso 1.0
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.
Pgina
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.
Pgina
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.
Pgina
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:
Pgina
Pgina
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).
Pgina
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.
Pgina
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.
Pgina 10
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.
Pgina 11
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).
Pgina 12
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.
Pgina 13
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.
Pgina 14
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
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.
Pgina 15
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.
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.
Pgina 16
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
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
Pgina 17
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
Pgina 18
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
Pgina 19
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
Pgina 20
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:
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:
Pgina 21
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
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
Pgina 23
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:
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.
Pgina 24
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.
Pgina 25
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:
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.
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.
Pgina 26
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:
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.
Pgina 27
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")
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.
Pgina 28
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
Valor 1 2 3 4 5 6 7
Pgina 29
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:
Dim Stexto as String mens = " DIGITE O NOME DA BASE DE DADOS " tit = " SISTEMA DE SEGURANA" Stexto = InputBox$(mens, tit)
Pgina 30
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().
Pgina 31
Na execuo do projecto ao ser pressionada a seta que se encontra direita da ComboBox surge a lista de items que adicionamos ComboBox.
Pgina 32
Crie uma janela para testar algo simples e ao simultaneamente importante a qualquer projecto futuro.
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.
Pgina 33
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
Pgina 34
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.
Pgina 35
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
Pgina 36
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:
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.
Pgina 37
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.
Pgina 38
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:
Pgina 39
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.
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.
Pgina 40
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.
Pgina 41
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.
Pgina 42
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.
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
Pgina 43
Pgina 44
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.
Pgina 45
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
Pgina 46
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{TAB}" KeyAscii = 0 End If 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
Pgina 47
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_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case vbKeyDelete Case vbKeyBack Case 48 To 57 Case Else Beep KeyAscii = 0 End Select End Sub
Pgina 49
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.
Pgina 50
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.
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
Pgina 51
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
Pgina 52
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{TAB}" KeyAscii = 0 End If End Sub
Pgina 53
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
Pgina 54
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
Pgina 55
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
Pgina 56
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
Pgina 57
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.
Pgina 58
Pgina 59
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.
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.
Pgina 60
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.
Pgina 61
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.
Pgina 62
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:
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:
Pgina 63
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:
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.
Pgina 64
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).
Depois de seleccionada a Base de Dados pretendida (neste caso a amigos.mdb) clica-se no boto Done.
Pgina 65
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.
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.
Pgina 66
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:
Pgina 67
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.
Pgina 68
Opo
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
Preview Sample
File
Options
File
Pgina 69
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
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
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
Pgina 70
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
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
Pgina 71
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
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
Reports
Pgina 72
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.
Pgina 73
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.
Com este exemplo quis-se ilustrar a facilidade de apresentar um relatrio estatstico baseado no cruzamento de dados utilizando o Crystal Reports.
Pgina 74
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
Pgina 75
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.
Pgina 76
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.
Pgina 77
Pgina 78
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.
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.
Pgina 79
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.
Pgina 80
Aps estes passos temos um ficheiro no Word com um aspecto semelhante ao seguinte:
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:
Pgina 81
Depois faa clique no boto de Options e escreva qual o ttulo do ficheiro, veja a figura 55 para visualizar qual o aspecto pretendido:
Pgina 82
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:
Pgina 83
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.
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
Pgina 84
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.)
Pgina 85
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:
Pgina 86
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.
Pgina 87
Pgina 88
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.
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.
Pgina 89