1713 Visual Basic

72
MICROSOFT VISUAL BASIC 1. A APLICAÇÃO TRADICIONAL E A APLICAÇÃO ORIENTADA A OBJETOS E DIRIGIDA A EVENTOS Em uma aplicação tradicional ou programada de forma procedural, a aplicação por si só controla que porções do código serão executadas. A execução começa na primeira linha de código e segue um caminho pré-definido através de toda a aplicação, chamando subrotinas conforme for sendo necessário. Em uma aplicação controlada por eventos ou event-driven, uma ação do usuário ou do sistema ativa um procedimento associado a este evento. Assim a ordem através do qual o seu Código de programa é executado depende de quais eventos ocorram. Estes eventos dependem das ações tomadas pelo usuário. 2. OBJETOS, MÉTODOS E EVENTOS Objetos são coisas definidas por CLASSES e que possuem Propriedades, Métodos e Eventos. Uma janela, um botão e um banco de dados são objetos. Mas para entender bem o que é um objeto ainda é preciso definir propriedades, métodos e eventos. Comecemos pelas Classes. Uma janela é muito diferente de um botão, mas os dois são objetos. Isso acontece porque eles são definidos por Classes diferentes. Classes definem um objeto a grosso modo. Definem suas propriedades, seus métodos e seus eventos. Classes são os moldes dos objetos. Um botão pode ser diferente do outro (maior ou menor, com uma legenda diferente...). Mas como isso é possível se eles pertencem à mesma classe? Porque suas propriedades são diferentes. As propriedades definem características mais específicas dos objetos. Um botão tem, por exemplo, propriedades que determinam sua altura, sua largura e sua legenda. Um método é uma ação que age sobre um objeto. Por exemplo, se tivermos uma lista, adicionamos ou removemos itens através de métodos. Ou ainda, se quiséssemos mover um certo objeto pela tela, poderíamos usar um método. Por fim, o evento. Digamos que em um certo programa, pressionamos um botão e um Beep é emitido. Como o programa sabe quando apertamos o botão? Ele sabe porque quando um objeto da classe botão é clicado, é gerado um evento. E é a esse evento que está associado o código (comandos) que produzirá o Beep. Ocorrem também eventos, por exemplo, ao modificarmos o texto de uma caixa de texto ou ao mover o cursor do mouse sobre uma janela. Para ficar mais claro, um exemplo não muito nobre: digamos que haja uma classe "Galinha". Um objeto Galinha poderia ter a propriedade "Idade", uma propriedade "CorDasPenas" e uma propriedade "Nome". Ela teria um método "PoeOvo" e um método "Cacareja". E ela geraria eventos ao dormir ao acordar e ao ser ameaçada. Ling. de Programação Prof.: Renata Rocha ADO

Transcript of 1713 Visual Basic

Page 1: 1713 Visual Basic

MICROSOFT VISUAL BASIC 1. A APLICAÇÃO TRADICIONAL E A APLICAÇÃO ORIENTADA A OBJETOS E DIRIGIDA A EVENTOS

Em uma aplicação tradicional ou programada de forma procedural, a aplicação por si só controla que porções do código serão executadas. A execução começa na primeira linha de código e segue um caminho pré-definido através de toda a aplicação, chamando subrotinas conforme for sendo necessário.

Em uma aplicação controlada por eventos ou event-driven, uma ação do usuário ou do sistema ativa um procedimento associado a este evento. Assim a ordem através do qual o seu Código de programa é executado depende de quais eventos ocorram. Estes eventos dependem das ações tomadas pelo usuário. 2. OBJETOS, MÉTODOS E EVENTOS

Objetos são coisas definidas por CLASSES e que possuem Propriedades, Métodos e Eventos. Uma janela, um botão e um banco de dados são objetos. Mas para entender bem o que é um objeto ainda é preciso definir propriedades, métodos e eventos.

Comecemos pelas Classes. Uma janela é muito diferente de um botão, mas os dois são objetos. Isso acontece porque eles são definidos por Classes diferentes. Classes definem um objeto a grosso modo. Definem suas propriedades, seus métodos e seus eventos. Classes são os moldes dos objetos.

Um botão pode ser diferente do outro (maior ou menor, com uma legenda diferente...). Mas como isso é possível se eles pertencem à mesma classe? Porque suas propriedades são diferentes. As propriedades definem características mais específicas dos objetos. Um botão tem, por exemplo, propriedades que determinam sua altura, sua largura e sua legenda.

Um método é uma ação que age sobre um objeto. Por exemplo, se tivermos uma lista, adicionamos ou removemos itens através de métodos. Ou ainda, se quiséssemos mover um certo objeto pela tela, poderíamos usar um método.

Por fim, o evento. Digamos que em um certo programa, pressionamos um botão e um Beep é emitido. Como o programa sabe quando apertamos o botão? Ele sabe porque quando um objeto da classe botão é clicado, é gerado um evento. E é a esse evento que está associado o código (comandos) que produzirá o Beep. Ocorrem também eventos, por exemplo, ao modificarmos o texto de uma caixa de texto ou ao mover o cursor do mouse sobre uma janela.

Para ficar mais claro, um exemplo não muito nobre: digamos que haja uma classe "Galinha". Um objeto Galinha poderia ter a propriedade "Idade", uma propriedade "CorDasPenas" e uma propriedade "Nome". Ela teria um método "PoeOvo" e um método "Cacareja". E ela geraria eventos ao dormir ao acordar e ao ser ameaçada.

Ling. de Programação Prof.: Renata Rocha

ADO

Page 2: 1713 Visual Basic

3. AMBIENTE DE PROGRAMAÇÃO DO VISUAL BASIC

Note que a janela Properties tem, logo abaixo da barra de título, uma "caixa de

seleção" dizendo "Form1 Form". Esta caixa lista todos os objetos colocados na janela ativa. O texto em negrito "Form1" indica o nome do objeto. O texto ao lado, "Form", indica a classe à qual pertence o objeto. Logo abaixo há a lista das propriedades. À esquerda ficam os nomes das propriedades e a direita os seus respectivos valores. 4. PRINCIPAIS CONTROLES DO VB

CommandButton (Botão de Comando) – É um dos Controles mais utilizados em programas do Windows, não apenas em VB. Sua função principal é executar comandos quando clicado. O Evento Click é o mais importante para ele. As Propriedades Caption, Name, Enabled são importantes entre outras. A propriedade Enabled indica se o botão responderá ao Evento Click ou não.

PictureBox (Caixa de Imagem) - Este Controle é utilizado para exibir figuras nos Formulários e também responde ao Evento Click. A propriedade Picture é a que abre a caixa de diálogo para indicarmos o path do ícone ou da figura que queremos exibir.

Page 3: 1713 Visual Basic

Label (Etiqueta ou Rótulo) – Exibir um texto onde o usuário não possa alterar. Sua propriedade principal é a Caption (que é o texto que o Controle exibirá). Outras Propriedades de formatação do texto: FontName, FontBold, Alignment, etc.

TextBox (Caixa de Texto) – Exibir um texto onde o usuário possa editar. Sua propriedade principal é o Text (que é o texto que o Controle contem). As Propriedades de formatação do texto são idênticas ao Label.

CheckBox (Caixa de Verificação) – Útil quando necessitamos informar ao sistema que determinadas informações são verdadeiras ou falsas. Em um mesmo Formulário vários CheckBoxs podem assumir o valor verdadeiro ao mesmo tempo. Algumas Propriedades: Visible, Enabled e Caption.

OptionButton (Botão de Opção ou botão de rádio) – Com este Controle somente uma das opções pode assumir o valor verdadeiro em um mesmo conjunto. Para Ter mais de um conjunto verdadeiro temos que utilizar o Controle Frame.

ListBox (Caixa de Listagem) – Exibir e selecionar uma lista de itens. As Propriedades ListCount e ListIndex são utilizadas para identificar os itens da lista. Os Métodos AddItem e RemoveItem são utilizados para adicionar e remover itens.

ComboBox (Caixa de Combinação) – Combinação de uma TextBox com uma ListBox. Pode-se editar um texto na parte superior ou selecionar um item da lista. Propriedades idênticas as da ListBox.

ScrollBar (Barra de Rolagem) Vertical e Horizontal - Estes controles assumem valos máximos ou mínimos de acordo com as propriedades Max e Min, respectivamente. Estes controles podem receber um deslocamento pequeno (propriedade SmallChange), que ocorre quando se clica nas setas e um deslocamento grande (propriedade LangeChange), que ocorre quando se clica na barra. O controle recebe o valor da posição atual.

Timer (Temporizador) – Útil para se controlar intervalos de tempo. Evento mais importante é o Timer e a propriedade mais importante é o Interval (que determina em milisegundos o intervalo de tempo d controle).

Shape (Formas Geométricas) – Adiciona figuras geométricas aos Formulários. Com a Propriedade Shape escolhemos o tipo de figura (forma). Outras Propriedades BorderColor, BorderStyle e BackColor.

Line (Linha) – Adicionar linhas geométricas a formulários. Propriedades BorderColor, BorderWidth, BorderStyle, X1, X2, Y1 e Y2.

Page 4: 1713 Visual Basic

Image (Imagem) – Exibe ícones ou figuras e também responde ao Evento Click. Diferentemente do Controle Picture este controle tem a Propriedade Stretch que ajusta o tamanho da imagem para preencher a moldura.

Adodc (ADO Data Control) – Conecta-se a um Banco de Dados para extrair e manipular informações deste BD.

DataList – Automaticamente preenche uma lista com campos de um ADO Data Control.

DataCombo – É similar ao DataList, mas permite editar o campo selecionado.

DataGrid – Exibe e manipula uma série de linhas e colunas representando Registros e Campos de um objeto Recordset.

OLE – Incorpora objetos de outros aplicativos em um formulário. 5. PROPRIEDADES GERAIS

As principais propriedades dos objetos do Visual BASIC, que estão presentes em praticamente todos os objetos, são as seguintes:

- Caption - Nos botões, form, e frames, altera o título a ser exibido. - Enabled - Presente em todos os objetos, permite que os objetos sejam

acessados, caso ela esteja definida como True. Esta propriedade habilita ou desabilita o objeto.

- Visible - Torna o objeto invisível caso esta propriedade esteja definida como

False.

- Font - Presente em objetos como textbox, label, botões command e botões check e option. Permite que seja alterada a fonte de um objeto.

- Name - Altera o nome do objeto, para fins de referência durante a

programação.

- Forecolor, Backcolor - define a cor da fonte e do fundo de um textbox, um label, ou outro objeto.

Page 5: 1713 Visual Basic

6. PROPRIEDADES DO FORMULÁRIO

- Height - altura do formulário - Weight - largura do formulário - Maxbutton - ativa ou desativa a presença do botão Maximizar - Minbutton - ativa ou desativa presença do botão Minimizar - Left - altera a distância do formulário a partir da extrema esquerda do vídeo - Top - altera a distância do formulário a partir do topo do vídeo

7. EVENTOS MAIS COMUNS

O Visual BASIC apresenta alguns eventos que são usados freqüentemente, e se apresentam na maior parte dos objetos. Abaixo segue uma relação dos principais e suas respectivas funções.

- Click: É um evento que executa determinadas ações especificadas pelo

programador quando alguém clica sobre o objeto. - Dblclick: Executa determinadas ações especificadas pelo programador quando

alguém clica duas vezes sobre algum objeto. - Load: executa ações sempre que um formulário for carregado na memória.

- Gotfocus: quando um objeto, um botão por exemplo, apenas ganha o foco.

- Lostfocus: quando o foco passa para um outro objeto. Quando um objeto perde

o foco.

- Keypress: quando é pressionada alguma tecla, geralmente em caixas de texto, são acionados determinados comandos.

- Mousemove: sempre que se move o ponteiro do mouse, algo será ativado.

8. VARIÁVEIS

Variáveis são áreas de memória utilizadas para armazenar dados temporariamente. Digamos que você queira fazer uma Calculadora. Os números serão armazenados em variáveis.

Uma variável é identificada por um nome. Este nome deve obedecer às seguintes regras:

- Não pode haver repetição de nomes. - O nome deve começar com uma letra. - O nome não pode conter espaços, pontos, vírgulas e outros caracteres do tipo

!, $, %. - Deve ter, no máximo, 255 caracteres.

Page 6: 1713 Visual Basic

Tipos de variáveis: Data type Storage

size Range

Byte 1 byte 0 to 255 Boolean 2 bytes True or False Integer 2 bytes -32,768 to 32,767 Long (long integer) 4 bytes -2,147,483,648 to 2,147,483,647 Single (single-precision floating-point)

4 bytes -3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values

Double (double-precision floating-point)

8 bytes -1.79769313486232E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values

Currency (scaled integer) 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807

Decimal 14bytes +/-79,228,162,514,264,337,593,543,950,335 c/ no decimal point; +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001

Date 8 bytes January 1, 100 to December 31, 9999 Object 4 bytes Any Object reference String (variable-length) 10 bytes +

string length

0 to approximately 2 billion

String (fixed-length) Length of string

1 to approximately 65,400

Variant (with numbers) 16 bytes Any numeric value up to the range of a Double

Variant (with characters) 22 bytes + string length

Same range as for variable-length String

Declaração de variáveis: Dim x as String

Dim matriz(9, 9) As Integer

Obs.: Quando você não declara uma variável, ela é considerada do tipo Variant. Note que este tipo ocupa pelo menos 16 bytes de memória, bem mais que os outros. Mas, será que faz muita diferença gastar 2, 4, 8 ou 16 bytes da memória? Hoje os computadores têm “muita” memória. Tudo bem, em programas pequenos isto não será uma diferença crucial, mas em um programa maior, com centenas de variáveis, isto pode fazer a diferença. Além disto, devemos lembrar que o Windows pode trabalhar com vários programas abertos ao mesmo tempo; e se seu programa for "gordo" poderá atrapalhar a

Page 7: 1713 Visual Basic

performance dos outros. Além disto, quanto menos memória ocupa um certo tipo de dado, mais rapidamente ele é processado. Por isso, procure sempre usar o "menor" tipo de dado possível. Mas lembre-se: se você ultrapassar o limite da variável acontecerá um erro. (Exemplo: tente criar uma variável do tipo Byte e atribua a ela um valor maior que 255). Conversão de tipos de variáveis Função Descrição Cbool Converte seu argumento para Boolean Cbyte Converte seu argumento para Byte Ccur Converte seu argumento para Currency Cdate Converte seu argumento para Date CDbl Converte seu argumento para Double Cint Converte seu argumento para Integer CLng Converte seu argumento para Long CSng Converte seu argumento para Single CStr Converte seu argumento para String Cvar Converte seu argumento para Variant CVErr Converte seu argumento para Error 9. INSTRUÇÕES DE FLUXO DE CONTROLE E INSTRUÇÕES LOO P If ... Then ... End If If ... Then ... Else ... End If Select Case … End Select Select Case … Case Else … End Select Do ... Loop (Do While – Do Until) For ... Next (Step) While ... Wend

Page 8: 1713 Visual Basic

10. A INSTRUÇÃO EXIT A instrução Exit permite que você saia prematuramente de um bloco de instruções em uma estrutura de controle de um loop. Exemplo:

x = 0 Do While x < 10 If Vetor(x) < 0 Then Exit Do Vetor(x) = Sqr(Vetor(x)) x = x + 1 Loop

11. UTILIZANDO MAIS DE UM FORMULÁRIO

A adição de novos formulários na sua aplicação é feita através do menu Project , comando Add Form . 12. CONECTANDO FORMULÁRIOS Comando Ação Load form Carrega o formulário, mas o deixa invisível. Form.Show [Modal] Mostra o formulário se ele estiver invisível. Se ele não

estiver carregado, então ele primeiro carrega o formulário e depois o mostra. Modal define se o formulário que fez a carga fica parado até a desativação do novo formulário (1), ou se continua a sua execução sem se importar com o próximo formulário (0). Exemplos: Form1.Show (0) Form1.Show (1)

Unload form O formulário é descarregado da memória e a sua execução é encerrada.

13. FORMULÁRIOS MDI Para criar um formulário MDI, clique sobre o menu Project e escolha a opção Add MDI Form. Um projeto do VB só pode possuir um formulário MDI. Para que os outros formulários sejam abertos dentro do MDI, a propriedade MDIChild de cada um deles deve ser definida como True. 14. FORMULÁRIOS SPLASH O formulário Splash é aquela tela que aparece logo ao iniciar a aplicação e desaparece em seguida, como se fosse uma tela de abertura/apresentação. Para criar um formulário Splash, clique sobre o menu Project > Add Form e escolha a opção Splash Screen.

Page 9: 1713 Visual Basic

Em seguida, defina uma aparência agradável ao Splash, adicionando novos objetos (Label, TextBox, Image) e/ou excluindo os objetos já inseridos automaticamente. Para fazer com que o Splash seja apresentado apenas durante alguns segundos, devemos adicionar ainda um objeto Timer. A propriedade Interval do objeto Timer deve ser definida de acordo com o tempo que o Splash será apresentado. Este tempo é definido em milisegundos. Por exemplo, para mostrar o Splash durante 4 segundos, defina a propriedade Interval como 4000. Além disso, devemos adicionar um pequeno código de programação associado ao evento Timer do objeto Timer. Private Sub Timer1_Timer() MDIForm1.Show Unload Me End Sub

No código acima, ao término dos 4 segundos, é mostrado o MDIForm, que provavelmente é o formulário principal da aplicação, e em seguida o Splash é descarregado.

Para que o Splash seja o primeiro formulário a ser apresentado, clique sobre o menu Project > Project1 Properties (em Project1 estará o nome do seu projeto). Em seguida, na guia General, escolha o formulário Splash na lista Startup Object. 15. CRIAÇÃO DE MENUS Para a criação de um Menu devemos ir ao menu Tools – Menu Editor. 1) Começamos digitando o Título (em Caption) do menu mais à esquerda. Caso

desejemos acessar esse menu via Alt e a letra grifada devemos inserir o & antes da letra que será grifada.

2) Depois digitamos o nome (em Name) do menu para referência no código. 3) Os outros itens não são obrigatórios. 4) Clicar em Next para entrar um novo menu ou item de menu. Caso seja um item de

menu devemos clicar na seta para a direita quando aparecerão três pontinhos à esquerda do título do item que ficará abaixo do nome do menu.

Page 10: 1713 Visual Basic

16. CRIANDO UMA BARRA DE FERRAMENTAS Para adicionar uma barra de ferramentas ao seu programa, primeiro é preciso adicionar um componente à Toolbox. Clique sobre o menu Project > Components e escolha a opção Microsoft Windows Common Controls 5.0. Surgirão alguns componentes na Toolbox, dentre eles o Toolbar e o ImageList, que utilizaremos na criação da barra de ferramentas. Siga os passos:

- Desenhe no seu formulário um objeto Toolbar e um objeto ImageList. - No objeto ImageList, serão armazenadas as imagens utilizadas na Toolbar.

Clique sobre o ImageList com o botão direito e escolha Properties. - Na janela que se abre, escolha a guia Images.

Page 11: 1713 Visual Basic

- Clique no botão Insert Picture para adicionar as imagens, repetindo o processo para cada imagem a ser adicionada.

- Repare que cada imagem adicionada possui um índice (Index). - Clique em OK após ter adicionado todas as imagens. - Para adicionar botões à Toolbar, clique sobre ela com o botão direito e escolha

Properties. - Na janela que se abre, escolha a guia Buttons.

- Clique em Insert Button para adicionar botões. - Para cada botão adicionado defina as propriedades Image (número da imagem

no ImageList) e ToolTipText (texto informativo mostrado quando se move o mouse sobre o botão).

Page 12: 1713 Visual Basic

- Após inserir e configurar todos os botões, clique em OK.

Em linha de código, para selecionar qual botão foi clicado, use um código semelhante ao exemplo seguinte: Private Sub Toolbar1_ButtonClick(ByVal Button As Co mctlLib.Button) Select Case Button.Index Case 1: Form1.Show Case 2: Form2.Show Case 3: Form3.Show Case 4: Form4.Show Case 5: Form5.Show End Select End Sub

No exemplo acima, cada botão clicado abre um formulário. 17. ESCOPO (OS NÍVEIS DE UM PROGRAMA) Private Sub txtNome_Change() Dim Nome As String Nome = txtNome.Text ‘A variável Nome recebe a propriedade Text da End Sub ‘txtNome

Quando declaramos uma variável com um Dim, dentro de um subprocedimento

(como no exemplo acima), a variável só existe dentro daquele subprocedimento. Ela não está disponível para outras "Subs". Além disto, quando a Sub que a continha acaba de ser executada, o valor da variável se perde, mesmo para futuras "chamadas" da mesma Sub.

Uma variável declarada na seção Declarations (General) de um Form está disponível para todas as suas Subs. Porém, se usarmos dois formulários, a variável declarada em um deles não estará disponível para o outro. A solução é declarar a variável em um nível "mais abrangente": o módulo. Para criar um módulo, acesse o menu Project > Add Module . Então, declare a variável da seguinte maneira:

Public Nome as String Note que declaramos usando "Public", que informa ao VB que esta variável será

"pública", ou seja, disponível para todas as Subs de todos os Forms deste programa. 18. A LINGUAGEM SQL

A linguagem SQL(Structured Query Language) é uma linguagem de alto nível para manipulação de dados dentro do modelo relacional. Seu objetivo é fornecer uma interface de alto nível ao usuário. É uma linguagem não procedural, e,não cabe ao usuário definir como o gerenciador de banco de dados executará uma tarefa, mas somente o ele que deve fazer.

Uma instrução SQL consiste em três partes:

Page 13: 1713 Visual Basic

• As declarações de parâmetros • A instrução manipulativa • As declarações de opções

Vejamos na tabela abaixo um resumo das cláusulas manipulativas e suas finalidades: Instrução Função

SELECT Obtém um grupo de registros e insere os registros em um dynaset ou em uma tabela.

UPDATE Define os valores dos campos de uma tabela em uma atualização. DELETE FROM

Remove registros de uma tabela.

INSERT INTO Acrescenta um grupo de registros a uma tabela. Vejamos alguns exemplos da instrução SELECT: 1) Seleciona os campos "Primeiro nome" e "Sobrenome" de todos os registros da tabela Empregados. SELECT [Primeiro nome], [Sobrenome] FROM Empregados 2) Seleciona todos os campos da tabela Empregados. Note o uso parâmetro (*) indicando todos os campos da tabela indicada. SELECT Empregados.* FROM Empregados 3) Conta o número de registros que têm uma entrada no campo "Código postal" e coloca o título Contagem no topo da coluna. SELECT Count([Código postal]) AS Contagem FROM Clientes 4) Seleciona os campos "Primeiro nome" e "Sobrenome" de cada registro cujo sobrenome seja Pereira. SELECT [Primeiro nome], [Sobrenome] FROM Empregados WHERE [Sobrenome] = 'Pereira' 5) Seleciona os campos "Primeiro nome" e "Sobrenome" para Empregados cujos sobrenomes começam pela letra S. SELECT [Primeiro nome], [Sobrenome] FROM Empregados WHERE [Sobrenome] Like 'S*' Observações: FROM – Indica as tabelas utilizadas como fonte de dados. WHERE – Especifica as condições que os registros devem satisfazer para compor o subconjunto de dados.

Page 14: 1713 Visual Basic

19. BANCOS DE DADOS FIREBIRD 19.1. Obtendo o Firebird A última versão do Firebird pode ser baixada gratuitamente no site oficial, através de seu browser preferido acesse o endereço http://www.firebirdsql.com/. Em seguida, selecione a opção download.

Ao contrário de muitos sistemas de gerenciamento de bancos de dados que executam apenas na plataforma Windows, o Firebird é compatível com Linux, Mac, Unix, dentre outros. Por isso tenha o cuidado de selecionar o programa na categoria win32 que é apropriada para quem trabalha com o Windows.

Selecione em seguida de que servidor será feito o download do programa:

Page 15: 1713 Visual Basic

Dica: as distribuições do Firebird terminadas com a string “-RCn” não são versões finais, por isso, prefira usar a última release do produto que é muito mais estável, e não, uma versão beta que ainda não foi testada totalmente. 19.2. Instalando o Firebird

a) Abra a pasta onde foi salvo o arquivo baixado do Firebird, em seguida, dê um duplo clique sobre o ícone do programa.

b) Será apresentada uma caixa de dialogo com a mensagem “This will install Firebird Database Server 1.0. Do you wish to continue?”. Clique no botão “Sim” para iniciar a instalação.

c) Antes de clicar no botão “Next >” para continuar a instalação, feche todos os aplicativos abertos.

d) Será apresentada a “License Agreement”, selecione o botão de opção “I

accept the agreement” para indicar ao programa que você concorda com a licença, em seguida, clique no botão “Next >” para continuar a instalação.

e) Na caixa de diálogo “Information” serão apresentadas informações

complementares sobre a instalação do Firebird. Clique no botão “Next >” para continuar.

f) No caixa de diálogo “Select Destination Directory” será possível informar o

local onde o Firebird será instalado. É recomendável não modificar a localização padrão que é “\Arquivos de programas\Firebird”. Clique no botão “Next >” para continuar.

Page 16: 1713 Visual Basic

g) O próximo passo é informar os componentes a serem instalados, selecione a

opção “Full installation of Server and development tools”, em seguida, clique no botão “Next >” para continuar.

h) Na caixa de diálogo “Select Start Menu Folder” deverá ser informado o nome

da pasta do menu iniciar onde os ícones do programa serão criados. Deixe o nome padrão da pasta que é “Firebird”. Dê um clique no botão “Next >” para continuar.

i) Na caixa de diálogo “Select Additional Tasks” não altere nenhuma das

opções, simplesmente, dê um clique no no botão “Next >” para continuar.

Dica: as distribuições do Firebird quando instaladas no Windows 95 e 98 são executadas como um aplicativo. A partir do Windows 2000 como um serviço.

j) Na caixa de diálogo “Ready to install” clique no botão “Install” para iniciar a copia dos arquivos para o disco rígido de seu computador.

k) Se for apresentada outra caixa de diálogo, clique no botão “Next” ou “Ok” para continuar a instalação.

Page 17: 1713 Visual Basic

19.3. Registrando um novo Servidor no Firebird

a) Após executar o IB Console, dê um clique com o botão direito do mouse sobre o objeto InterBase Server, em seguida selecione a opção “Register ...” do menu de atalho.

b) Selecione a opção “Remote Server”, em seguida, preenche todos parâmetros necessários ao registro e conexão de um novo servidor no IB Console.

Page 18: 1713 Visual Basic

Nome do Servidor: número IP da máquina local (e.g. 127.0.0.1), ou então, o número IP de uma máquina remota da rede (e.g. 192.168.0.1). Protocolo da Rede: TCP/IP. Apelido do Servidor: normalmente o nome da instituição, departamento ou setor onde o computador que possui o banco de dados esta armazenado (e.g. Laboratorio3). Descrição: informação complementar Nome do Usuário: SYSDBA Senha: masterkey Não se esqueça de deixar selecionada a caixa de checagem “Save Alias Information”.

c) Após preencher todos os parâmetros obrigatórios, dê um clique com o botão

esquerdo do mouse no botão OK.

19.4. Fechando a conexão de um Servidor no Firebird

a) Estando no IB Console, dê um clique com o botão direito do mouse sobre o objeto DSI, em seguida selecione a opção “Logout” do menu de atalho.

Page 19: 1713 Visual Basic

b) O IB Console apresentará uma caixa de dialogo com a pergunta: “você tem

certeza que você quer fechar a conexão do servidor selecionado?”. Dê um clique no botão “Sim”.

19.5. Abrindo a conexão de um Servidor no Firebird

a) Estando no IB Console, dê um clique com o botão direito do mouse sobre o objeto DSI, em seguida selecione a opção “Login...” do menu de atalho.

Page 20: 1713 Visual Basic

b) Será solicitada a informação de Login no servidor. Informe para os campos “Nome do Usuário” e “Senha”, respectivamente, “sysdba” e “masterkey”. Em seguida, dê um clique no botão “Login”.

19.6. Criando um novo Banco de Dados

a) Estando no IB Console, dê um clique com o botão direito do mouse sobre o

objeto Database, em seguida selecione a opção “Create Database...” do menu de atalho.

Page 21: 1713 Visual Basic

b) Durante o processo de criação de um novo Banco de Dados é obrigatório o preenchimento dos seguintes campos: “Filename(s)”, “Size (Pages)” e “Alias”. É interessante preencher o campo “Size (Pages)” com o valor padrão “4096” e deixar selecionada a caixa de checagem “Register Database”. Após preenchê-los dê um clique no botão OK.

O ícone do objeto de dados correspondente ao banco de dados “Hotel” será incluído dentro do objeto Databases do Servidor DSI.

Page 22: 1713 Visual Basic

19.7. Verificando onde foi gravado o novo Banco de Dados

a) Dê um clique com o botão direito do mouse sobre o ícone do servidor DSI, em seguida, selecione a opção “Properties...”.

b) Na caixa de diálogo “Server Properties” selecione a guia “General” e verifique

o conteúdo do campo “Attached Databases”.

Page 23: 1713 Visual Basic

19.8. Trabalhando com Tabelas Como criar uma tabela e definir o campo que é a chave primária

a) Selecione o nome do Banco de Dados onde será criada a tabela clicando com o botão esquerdo do mouse. Em seguida, selecione o comando “Interactive SQL...” existente no menu “Tools”.

Page 24: 1713 Visual Basic

b) Digite no Interactive SQL o comando “Create Table” com as informações

sobre o nome da tabela; o nome, o tipo de dados e se o conteúdo pode ser nulo para cada campo; e o nome do campo escolhido para ser chave primária.

c) Ao terminar de digitar o comando no Interactive SQL execute-o pressionando Ctrl+E ou então clicando sobre o ícone da barra de ferramentas mostrada na ferramenta abaixo:

d) Se o comando digitado não possuir nenhum erro de sintaxe e for executado

corretamente, a tela do Interactive SQL será apagada e não será apresentada uma mensagem de erro. Para rever o comando digitado use o ícone da barra de ferramentas mostrado na figura abaixo:

Como conferir se a tabela Hospede e sua chave primária foi criada

a) Com o botão esquerdo do mouse clique na opção “Windows” do menu do Interactive SQL, selecione na caixa de listagem da caixa de diálogo do Active Windows o “IB Console”, em seguida, clique no botão de comando “Switch To...”.

Page 25: 1713 Visual Basic

b) Ao retornar a janela do IB Console, selecione com o mouse o objeto “Table” existente dentro do objeto “Hotel” do “Databases” do servidor “DSI”. Se a tabela “Hospede” tiver sido realmente criada ela será apresentada no lado direito da janela do IB Console.

Como criar uma tabela que possui dependência de identificação Suponha que você viajou para uma cidade onde pretende passar parte de suas férias, chegando lá decidiu se hospedar em um Hotel. Como se trata de um novo cliente o atendente somente conseguirá registrar sua hospedagem após cadastrá-lo como novo hospede. Dizemos neste caso que a tabela “Hospedagens” possui dependência de identificação da tabela “Hospedes”, ou seja, somente será possível cadastrar hospedagens para hospedes anteriormente cadastrados. O procedimento para criação da tabela “Hospedagens” será acrescido da criação de um relacionamento com a tabela “Hospedes”.

a) Digite os comandos “create table” e “alter table” conforme mostrado na figura abaixo. Observe que o campo “hContador” que identifica o hospede aparece com o mesmo nome nas tabelas “Hospedes” e “Hospedagens”.

Page 26: 1713 Visual Basic

20. CONEXÃO DO BANCO DE DADOS FIREBIRD COM O VISUAL BASIC 20.1. Instalação do Driver ODBC

No VB, para abrir um banco de dados Firebird, é necessário antes instalar um driver ODBC. Para instalá-lo, basta seguir os passos do assistente. Nesta apostila, está sendo usado o IBPhoenix Firebird ODBC Driver.

Page 27: 1713 Visual Basic

20.2. Incluindo a Referência ao ADO

No Visual Basic, para incluir a referência ao ADO, clique no menu Project > References. Na lista relacionada marque a opção: Microsoft ActiveX Data Objects 2.x Library. 20.3. Criando a String de Conexão

A string de conexão é um texto com informações necessárias à conexão. Para criá-la, inclua em seu projeto o componente “Data Environment” executando uma das seguintes seqüências: Menu Project � Add Data Environment, ou então, Menu Project � More Active X Designers � Data Environment.

Será mostrada a janela do “Data Environment”. Dê um clique com o botão direito do mouse sobre o item “Connection1”, em seguida, selecione a opção “Properties...” do menu de atalho.

Page 28: 1713 Visual Basic

Na próxima caixa de diálogo deverá ser selecionado o “provedor de acesso” para o banco de dados que a conexão abrirá. Selecione a opção Microsoft OLE DB Provider for ODBC Drivers .

Clique em Next.

Page 29: 1713 Visual Basic

Na tela seguinte, selecione a opção Use connection string e clique no botão Build .

Selecione a guia Machine Data Source e clique em New.

Page 30: 1713 Visual Basic

Na próxima tela, clique em Avançar .

Selecione a opção Firebird/Interbase(r) driver e clique em Avançar , depois em

Concluir .

Na tela que se segue, deveremos dar um nome à fonte de dados criada (DSN). Também será preciso indicar o arquivo do banco de dados (Database), a conta para acesso ao banco (Database Account) e a senha (Password). No exemplo abaixo,

Page 31: 1713 Visual Basic

nomeamos a fonte de dados como Banco, o arquivo do banco de dados se chama Teste.gdb e está localizado na Área de Trabalho, a conta para acesso é SYSDBA e a senha masterkey. Veja a figura:

Após efetuar todas as configurações nesta tela, clique em Test connection . Deverá aparecer a seguinte mensagem:

Clique em OK e depois OK novamente. Na tela anterior, deverá aparecer a string de conexão, conforme mostrado abaixo:

Page 32: 1713 Visual Basic

Selecione a string de conexão e copie-a utilizando CTRL+C. A string de conexão também pode ser copiada mais tarde. Para encontrá-la, clique

com o botão direito sobre Connection1 e selecione Properties. Em seguida, escolha a guia Connection. 21. DEFININDO AS VARIÁVEIS DO PROGRAMA

As variáveis que representarão o banco de dados e a tabela deverão ser declaradas dentro da seção “General/Declarations ” do formulário atual.

É importante ainda declarar uma variável onde será armazenada a string de conexão usada para abrir o banco de dados.

Page 33: 1713 Visual Basic

22. COMANDOS PARA ABERTURA DO BANCO DE DADOS

Como a string de conexão será utilizada em diversos eventos do formulário, é interessante que ela seja armazenada em uma variável para facilitar a sua reutilização, poupando digitação desnecessária.

23. DESENHANDO A INTERFACE DO PROGRAMA

Antes de programar os demais eventos do formulário é necessário desenhar a interface do programa. Para este exemplo, levaremos em consideração que o formulário “FrmCli” possui o layout mostrado abaixo:

24. PROGRAMANDO OS EVENTOS 24.1. Consulta da Tabela

Sempre que o usuário digitar o código de um cliente que já está cadastrado no banco de dados, o programa deverá mostrar os dados deste cliente. Abaixo a lógica usada para realizar este procedimento. Private Sub txtCodigo_LostFocus() If Not IsNumeric(txtCodigo.Text) Then Exit Sub Dim ComandoSQL As String

Page 34: 1713 Visual Basic

ComandoSQL = "SELECT * FROM CLIENTES " & _ "WHERE Codigo=" & txtCodigo.Text & ";" TbCli.Open ComandoSQL, StringConexao, adOpenSta tic If TbCli.EOF Then Limpar_Campos Else txtNome.Text = TbCli!nome txtTelefone.Text = TbCli!telefone End If TbCli.Close End Sub 24.2. Exclusão de Registro

Antes de excluir o registro é interessante solicitar do usuário a confirmação da operação. O exemplo do código está mostrado abaixo: Private Sub btnExcluir_Click() If Not IsNumeric(txtCodigo.Text) Then Exit Sub Dim ComandoSQL As String If MsgBox("Tem certeza?", vbYesNo, "Excluir") = vbYes Then ComandoSQL = "DELETE FROM CLIENTES " & _ "WHERE Codigo=" & txtCodigo.Te xt & ";" Con.Execute ComandoSQL Limpar_Campos txtCodigo.SetFocus End If End Sub 24.3. Salvamento de Registro Private Sub btnSalvar_Click() Dim ComandoSQL As String Dim Comando As New ADODB.Command ComandoSQL = "select * from CLIENTES " & _ "where codigo = " & txtCodigo.Text & ";" TbCli.Open ComandoSQL, StringConexao, adOpenSta tic If TbCli.EOF Then ComandoSQL = "INSERT INTO CLIENTES (codigo, nome, telefone) " & _ "VALUES (?, ?, ?)" TbCli.Close Comando.ActiveConnection = StringConexao Comando.CommandText = ComandoSQL Comando.Parameters(0) = txtCodigo.Text Comando.Parameters(1) = txtNome.Text Comando.Parameters(2) = txtTelefone.Text Else ComandoSQL = "UPDATE CLIENTES SET nome=?, te lefone=? " & _ "WHERE codigo=" & txtCodigo.Tex t & ";" TbCli.Close Comando.ActiveConnection = StringConexao Comando.CommandText = ComandoSQL Comando.Parameters(0) = txtNome.Text

Page 35: 1713 Visual Basic

Comando.Parameters(1) = txtTelefone.Text End If Comando.Execute End Sub 25. MÉTODOS DE MOVIMENTAÇÃO

Os métodos de movimentação permitem a passagem de um registro para outro no interior dos recordsets, e alteram a posição do ponteiro do registro ao passar de um registro ativo para outro registro. Você pode usar os métodos de movimentação sobre quaisquer recordsets. Vejamos a seguir os métodos de movimentação: MoveFirst - Movimenta o ponteiro do registro ativo para o primeiro registro do recordset aberto. MoveNext - Movimenta o ponteiro do registro ativo para o registro seguinte. Se não houver registro seguinte, você está no último registro, o flag de final de arquivo EOF será ativado. MovePrevious - Desloca o ponteiro do registro ativo para o registro anterior no recordset aberto. Se não houver registro anterior, você está no primeiro registro, o flag de início de arquivo BOF será ativado. MoveLast - Movimenta o ponteiro do registro ativo para o último registro do recordset aberto.

26. VALIDAÇÃO DE CAMPOS Validação do conteúdo de um textbox durante a digit ação

No código abaixo, temos a validação para um campo data. Nesta caixa de texto só

será possível digitar números, Backspace e a barra (/). Note que 47 corresponde ao código ASCII da barra. Private Sub txtdata_KeyPress(KeyAscii As Integer)

If Not ((KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = vbKeyBack Or KeyAscii = 47) Then

KeyAscii = 0 End If

End Sub No próximo código, temos a validação para um campo moeda. Nesta caixa de texto só será possível digitar números, Backspace e a vírgula (,). Note que 44 corresponde ao código ASCII da vírgula. Private Sub txtvalor_KeyPress(KeyAscii As Integer)

If Not ((KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = vbKeyBack Or KeyAscii = 44) Then

KeyAscii = 0 End If

End Sub

Page 36: 1713 Visual Basic

Abaixo segue a tabela de códigos ASCII:

ASCII Caractere ASCII Caractere ASCII Caractere ASCII Caractere 0 · 32 [space] 64 @ 96 ` 1 · 33 ! 65 A 97 a 2 · 34 " 66 B 98 b 3 · 35 # 67 C 99 c 4 · 36 $ 68 D 100 d 5 · 37 % 69 E 101 e 6 · 38 & 70 F 102 f 7 · 39 ' 71 G 103 g 8 * * 40 ( 72 H 104 h 9 * * 41 ) 73 I 105 i 10 * * 42 * 74 J 106 j 11 · 43 + 75 K 107 k 12 · 44 , 76 L 108 l 13 * * 45 - 77 M 109 m 14 · 46 . 78 N 110 n 15 · 47 / 79 O 111 o 16 · 48 0 80 P 112 p 17 · 49 1 81 Q 113 q 18 · 50 2 82 R 114 r 19 · 51 3 83 S 115 s 20 · 52 4 84 T 116 t 21 · 53 5 85 U 117 u 22 · 54 6 86 V 118 v 23 · 55 7 87 W 119 w 24 · 56 8 88 X 120 x 25 · 57 9 89 Y 121 y 26 · 58 : 90 Z 122 z 27 · 59 ; 91 [ 123 { 28 · 60 < 92 \ 124 | 29 · 61 = 93 ] 125 } 30 · 62 > 94 ^ 126 ~ 31 · 63 ? 95 _ 127 · · Caracteres não suportados pelo Windows. * * Valores 8, 9, 10, e 13 representam backspace, tab, linefeed (alimentador de linha), e enter, respectivamente. Validação de datas e valores numéricos após a digit ação

If Not IsDate(txtdata.Text) Then MsgBox ("Data inválida!") txtdata.SetFocus Exit Sub End If

Page 37: 1713 Visual Basic

If Not IsNumeric(txtvalor.Text) Then MsgBox ("Valor inválido!") txtvalor.SetFocus Exit Sub End If 27. DataList

A caixa de listagem vinculada aos dados – Data List – tem função idêntica à caixa de listagem – ListBox, a qual seja, apresentar ao usuário uma lista de opções. A principal diferença consiste no fato de a caixa de listagem vinculada aos dados buscar as informações em um Recordset, enquanto que a Caixa de Listagem, obtêm as informações através de uma série de instruções AddItem.

Vejamos como utilizar o controle DataList no roteiro a seguir: 1- Clique no menu Project > Components e escolha a opção Microsoft Data List Controls 6.0 (OLEDB). Selecione também a opção Microsoft ADO Data Control 6.0 (OLEDB). 2- Em um formulário, insira o controle Adodc (ADO Data Control) e configure as propriedades:

- Name – Nome do controle (o nome padrão é Adodc1). - ConnectionString – String de conexão. Dados necessários para efetuar a

conexão com o banco de dados (já citada anteriormente). Copie a string de conexão do Data Environment.

- RecordSource – Clique no botão ao lado da propriedade (...) e aparecerá a seguinte tela:

Page 38: 1713 Visual Basic

Deve-se escolher o tipo de comando (no caso, adCmdTable corresponde a Tabela), e o nome da tabela ou consulta (no caso, Empregado). 3- A seguir, insira o controle DataList e atente para as seguintes propriedades:

- RowSource – nome do controle de dados que contém as informações usadas para preencher a lista (no caso, Adodc1)

- ListField – o nome do campo da origem dos dados a ser exibido na lista 28. DataCombo Para configurar um DataCombo, proceda da mesma maneira como foi configurado o DataList: 1- Clique no menu Project > Components e escolha a opção Microsoft DataList Controls 6.0 (OLEDB). 2- Em um formulário, insira o controle Adodc (ADO Data Control) e configure as propriedades:

- Name – Nome do controle (o nome padrão é Adodc1). - ConnectionString – String de conexão. Dados necessários para efetuar a

conexão com o banco de dados (já citada anteriormente). Copie a string de conexão do Data Environment.

- RecordSource – Clique no botão ao lado da propriedade (...) e aparecerá a seguinte tela:

Deve-se escolher o tipo de comando (no caso, adCmdTable corresponde a Tabela), e o nome da tabela ou consulta (no caso, Empregado).

Page 39: 1713 Visual Basic

3- A seguir, insira o controle DataCombo e atente para as seguintes propriedades:

- RowSource – nome do controle de dados que contém as informações usadas para preencher a lista (no caso, Adodc1).

- ListField – o nome do campo da origem dos dados a ser exibido na lista 29. DataGrid

A grade vinculada aos dados – DataGrid – oferece um meio para visualizar vários registros ao mesmo tempo.

O seu primo pobre no VB seria o controle Grid. Enquanto o Grid precisa ser configurado quase que totalmente via código, para usar o DataGrid basta arrastar o ícone do controle para o seu formulário e definir a propriedade DataSource para identificar o controle de dados que contém os dados que você quer exibir, e pronto, a grade exibe todos os campos dos registros do recordset. Exemplo de Utilização e Configuração

Suponha que temos a seguinte tabela com os seguintes dados:

Empregado

Nome Telefone João 3221-1234 Maria 3222-5678 José 3212-1234 Mauro 3213-1234 Pedro 3214-1234

Criaremos uma consulta de pessoas por nome, utilizando o DataGrid e sentenças

SQL. Vejamos passo a passo como utilizar o DataGrid com o controle de dados

vinculados Adodc (ADO Data Control). 1- Clique no menu Project > Components e escolha a opção Microsoft DataGrid Control 6.0 (OLEDB). 2- Selecione o objeto Adodc na Toolbox do Visual Basic e acrescente-o ao seu formulário. 3- Defina a seguir as propriedades:

- Name – Nome do controle (o nome padrão é Adodc1). - Visible (False) – para que o objeto Adodc não apareça durante a execução do

programa - ConnectionString – String de conexão. Dados necessários para efetuar a

conexão com o banco de dados (já citada anteriormente). Copie a string de conexão do Data Environment.

- RecordSource – Clique no botão ao lado da propriedade (...) e aparecerá a seguinte tela:

Page 40: 1713 Visual Basic

Deve-se escolher o tipo de comando (no caso, adCmdTable corresponde a Tabela), e o nome da tabela ou consulta (no caso, Empregado). 4- Selecione o ícone do DataGrid na ToolBox e arraste-o até o seu form. 5- Defina a propriedade DataSource, vinculado-a ao controle de dados configurado anteriormente (Adodc1). 6- Para proibir a edição, inclusão e exclusão de registros na grade você deve definir como False as propriedades AllowAddNew, AllowUpdate e AllowDelete. Isto pode ser feito através da folha de propriedades do DataGrid.

Page 41: 1713 Visual Basic

7- Na folha de propriedades do DataGrid, na guia Columns, devemos associar cada coluna do DataGrid com um campo da tabela que será usada para preenchê-lo.

8- Desenhe, no mesmo formulário, um TextBox e um CommandButton.

Page 42: 1713 Visual Basic

Para completar o nosso exemplo, falta o código para a execução da pesquisa. No evento Click do Command1, acrescente o código abaixo: Private Sub Command1_Click() If Text1.Text = "" Then Adodc1.CommandType = adCmdTable Adodc1.RecordSource = "Empregado" Else Adodc1.CommandType = adCmdText Adodc1.RecordSource = "select enome, etelef one from Empregado

where Upper(enome) like '" & UCase(Text1.Text) & " %'" End If Adodc1.Refresh DataGrid1.Refresh End Sub

O resultado da execução é mostrado nas telas abaixo:

Page 43: 1713 Visual Basic

30. MASKED EDIT Para utilizar um controle MaskedEdit, devemos, inicialmente, clicar no menu Project > Components e escolher a opção Microsoft Masked Edit Control 6.0. Isto fará com que ele seja incluído na Toolbox do VB. Para configurar o MaskedEdit, clique sobre ele com o botão direito e escolha Properties. Surge a tela seguinte:

Page 44: 1713 Visual Basic

Nesta tela, basta definir a máscara (Mask) e/ou o formato do campo (Format).

Alguns exemplos de formatos:

Moeda – R$#,##0.00;(R$#,##0.00) Data – dd/mm/yyyy Alguns exemplos de máscaras:

Data – ##/##/#### CEP – ##\.###\-### CPF – ###\.###\.###\-## Telefone – \(##\)####\-#### Note que a barra invertida (\) sempre aparece antes de um caractere especial. Obs.1: Para limpar o conteúdo de um MaskedEdit, é preciso atribuir a ele o formato da máscara. Exemplos: MaskEdBox1.Text = "__.___-___" MaskEdBox2.Text = "(__)____-____" MaskEdBox3.Text = "___.___.___-__" MaskEdBox4.Text = "__/__/____" Obs.2: Para atribuir uma data a um MaskedEdit, é preciso antes formatá-la usando a função Format. Exemplo: MaskEdBox4.Text = Format(Date, "dd/mm/yyyy")

Page 45: 1713 Visual Basic

31. CRIAÇÃO DE GRÁFICOS UTILIZANDO O CONTROLE MSCHA RT

Para construir gráficos em sua aplicação você deve usar o controle gráfico do VB, o MSChart. O MSChart permite apresentar seus dados em forma de gráfico como uma planilha do Excel (linhas e colunas); gráficos tridimensionais, gráficos de torta, barra, pizza, etc. Antes de iniciar você deve adicionar o controle Microsoft Chart Control ao seu projeto da seguinte maneira: clique no menu Project > Components e escolha a opção Microsoft Chart Control 6.0 (OLEDB). As figuras abaixo mostram a barra de ferramentas e a configuração inicial do MSChart:

Agora, basta definir a fonte de dados que alimentará o gráfico, geralmente uma tabela, e fazer a configuração do Controle MSChart.

Para abrir um diálogo de propriedades do controle MSChart, clique com o botão direito do mouse sobre o mesmo, selecione a opção Properties e a janela para configuração surge como mostrada na figura abaixo:

Page 46: 1713 Visual Basic

Cada aba permite configurar diversas propriedades utilizadas na confecção de um gráfico. Utilização e Configuração Vejamos agora as propriedades do MSChart e como configurá-lo.

A configuração inicial do controle gráfico apresenta uma série de quatro barras em

cinco colunas com legendas R1 a R5. Esta seqüência de dados é definida pela propriedade RowCount. A quantidade de colunas é definida pela propriedade ColumnCount. Na figura acima alteramos RowCount para 2 e ColumnCount também para 2 e ainda definimos a propriedade RowLabel para cada coluna e a propriedade ShowLegend para True.

A propriedade ChartType permite obter os seguintes tipos de gráficos: • Barra - Valores 0 e 1 • Linha - Valores 2 e 3 • Áreas - Valores 4, 5 , 6 e 7 • Combinação - Valores 8 e 9 • Torta - Valor 14 • XY - Valor 16

Page 47: 1713 Visual Basic

Aba Chart

Chart Type - Permite escolher o tipo de gráfico usado Chart Options

Show Legend - Mostra a legenda no gráfico Show Markers - Marcas sobre cada coluna do gráfico Stack Series - Empilhar as colunas Series em rows - Inverte apresentação, colunas em linhas

Aba Axis e Axis Grid

Existem diversas propriedades que permitem configurar os eixos de um gráfico como: Espessura e cor de linhas Definição da escala - Valor Máximo e Mínimo Divisão da Escala - Valor Maior e Menor Aba Series e Series Color

Permitem configurar diversas propriedades relacionadas às séries do gráfico e à cor interior e da borda de cada série. Aba BackDrop

Configura os elementos de fundo e da borda do gráfico. O elemento a ser configurado é selecionado na lista Property Name. Aba Text

Através da lista Property Name podemos selecionar o título, o rodapé, títulos dos eixos X, Y ou de um segmento eixo Y e definir um nome para cada item, inclusive definindo o alinhamento e a orientação do texto através do grupo Alignment e Orientation. Aba Fonts

Permite definir a fonte, estilo, tamanho e efeitos de cor. Além destas propriedades temos as seguintes: Row - especifica a linha corrente RowCount - determina o número de seqüência de dados RowLabel - define o rótulo de dados da linha corrente Data - Permite a leitura e a atribuição dos valores de dados ao gráfico Column - define a coluna ativa ColumnCount - define o número de colunas ativas ColumnLabel - define a legenda para a coluna ativa BorderStyle - define a borda do gráfico

Page 48: 1713 Visual Basic

ChartData - permite atribuir valores às seqüências de dados a partir de uma matriz (array) de duas dimensões.

Exemplo de Utilização Suponha que temos uma tabela que armazene as notas de um grupo de alunos. Os dados na tabela são:

Nome Nota João 5,0 Paulo 7,5 Maria 8,0 Lucas 2,0 Laura 10,0

Criaremos um gráfico de colunas que representa a nota de cada aluno. Siga os passos: 1- Adicione um controle MSChart ao formulário. 2- Configure as seguintes propriedades do MSChart:

- RowCount = 5 - ColumnCount = 1

3- Adicione o seguinte código: Dim Con As New ADODB.Connection Dim TbAlunos As New ADODB.Recordset Dim StringConexao As String Dim x As Integer Private Sub Form_Load() StringConexao = “DSN=teste;Driver=OdbcJdbc;Dbna me=C:\prog\Escola.gdb;

CHARSET=NONE;UID=SYSDBA;PWD=DKEBFJENHFCOBHGHLAIMNAAFICELEAEGDNMFNOGALAMHBBGCHFADNKCBPPGMANOGIEKENIOPHDIPBIECPLLLCBIKEJKMJLPLIB"

Con.Open StringConexao Dim ComandoSQL As String ComandoSQL = "SELECT * FROM alunos order by aco digo" TbAlunos.Open ComandoSQL, StringConexao, adOpen Static TbAlunos.MoveFirst For x = 1 To 5 MSChart1.Row = x MSChart1.RowLabel = TbAlunos!anome MSChart1.Data = TbAlunos!anota TbAlunos.MoveNext Next x End Sub

Page 49: 1713 Visual Basic

O resultado será o seguinte:

32. DATA REPORT

Abra o projeto em questão. Em seguida, selecione o menu P roject . Selecione o comando Add Data Report para adicionar este componente ao

projeto. Ainda no menu P roject , selecione o comando Add Data Environment . Se por acaso um dos comandos acima não estiver disponível, use o comando

More ActiveX Designers... para adicionar o componente desejado.

Configurando o Ambiente de Dados (DataEnvironment)

Antes de trabalharmos com o Data Report ou qualquer outro componente que acesse registros de uma base dados, é necessário abrir o banco de dados e as respectivas tabelas ou consultas existentes neste banco de dados.

Dê um duplo clique no objeto DataEnvironment1 para abrir a janela do

DataEnvironment.

Page 50: 1713 Visual Basic

Para alterar as propriedades do DataEnvironment, será usado a janela do Project

Explorer em conjunto com a janela Properties Windows .

Como o objeto DataEnvironment1 será usado em diversas partes do projeto, para facilitar sua utilização, mudaremos a propriedade (Name) de “DataEnvironment1” para “deComercial”. Para alterar a propriedade “Name”, dê um clique no objeto DataEnvironment1, em seguida, utilizando a janela de propriedades modifique a propriedade name.

Definindo o Banco de Dados (através de conexão)

Dê um clique com o botão do mouse sobre o componente Connection1 , em

seguida, selecione Properties na barra de Ferramentas. Na tela que se segue, devemos configurar a string de conexão. Isto já foi feito no

item 20.3 – Criando a string de conexão . Caso necessário, veja novamente o item 20.3.

Definindo uma referência para uma Tabela

Antes de prosseguirmos, é interessante mudar a propriedade Name do componente Connection1 para conComercial . Para tal, use a janela de propriedades do Visual Basic.

Page 51: 1713 Visual Basic

No DataEnvironment, cada tabela ou consulta é denominada de “Command”. Para incluir um command, dê um clique com o botão direito sobre o objeto connection (que no exemplo se chama conComercial ), em seguida selecione a opção Add Co mmand .

Após adicionar o Command, o passo seguinte será alterar suas propriedades. Para tal, dê um clique com o botão direito sobre o Command1 , em seguida selecione a opção Properties .

Page 52: 1713 Visual Basic

Na guia “General” da janela de propriedades, deverá ser informado o nome do command, a conexão que contém o banco de dados que possui a tabela ou consulta desejada e a fonte de dados (os mais usados são Consultas e Tabelas).

O campo Command N ame deve ser preenchido de forma coerente com a tabela ou consulta selecionada.

No exemplo abaixo, foi informado como Command N ame “comProdutos”, porque este command será uma referência para a tabela “Produtos” (evite usar nomes pouco significativos). Após fazer isso, dê um clique no botão OK.

Se correr tudo bem, será acrescentado um novo objeto command chamado “comProdutos” subordinado a conexão “conComercial” .

Page 53: 1713 Visual Basic

Definindo uma referência para várias Tabelas

Para usarmos várias tabelas em uma consulta, a forma mais prática e simples é através de uma sentença SQL. Para tal, usaremos o Access para criarmos uma consulta, em seguida, usaremos a sentença SQL gerada por ele dentro do Visual Basic.

Após executar o “Microsoft Access”, abra o Banco de Dados que contem as

tabelas que serão usadas no Command.

Como iremos criar uma consulta, selecione a guia correspondente a esta opção no Access (observe que a figura abaixo é relativa a versão 97 deste aplicativo e não a 2000).

Após selecionar a guia “Consultas” , dê um clique no botão “N ovo” , para criar uma nova consulta. Será mostra a janela do assistente , selecione a opção “Assistente de Consulta Simples” . Em seguida, dê um clique no botão OK .

Page 54: 1713 Visual Basic

Utilize a caixa de combinação “T abelas/ Consultas:” , para selecionar o nome da tabela que possui os campos que serão usados na consulta.

Após selecionar o nome da tabela, o próximo passo é selecionar na caixa de

listagem “Campos disponíveis”, o nome do campo que será usado na consulta. Dê um clique no botão “>” para adicionar o campo “cNome” a caixa de listagem “Campos

Page 55: 1713 Visual Basic

selecionados” . O botão “>> ” é usado para adicionar todos os campos da tabela selecionada.

Os botões “<” e “<<” são usados para remover algum campo adicionado erroneamente ou não mais necessário.

Após selecionados os campos desejados da tabela de “Clientes”, selecione na

caixa de combinação “T abelas/ Consultas:” , o nome da próxima tabela. Feito isto, selecione o nome dos campos e assim sucessivamente até que todos os campos desejados estejam selecionados.

Page 56: 1713 Visual Basic

Dê um clique no botão “C oncluir” para finalizar a criação de sua consulta. Ao

fazer isto, a consulta será automaticamente salva e executada. A execução nada mais é que a apresentação do resultado.

A apresentação do resultado da consulta, é um sinal da que a mesma está correta.

Porém, como o que interessa é a sentença SQL correspondente, vamos mudar o modo de exibição para Modo S QL.

O comando SQL correspondente será apresentado conforme abaixo. Basta agora

copiarmos para a área de transferência, em seguida, colar no Visual Basic.

Page 57: 1713 Visual Basic

O próximo passo será adicionar um novo “Command” no DataEnvironment, para

tal, dê um clique com o botão direito do mouse sobre a conexão “conComercial” , em seguida, selecione a opção Add Co mmand .

Após adicionar o novo Command, o próximo será a alteração de algumas

propriedades. Dê um clique com o botão direito do mouse sobre o command criado.

Page 58: 1713 Visual Basic

Observe que como estamos usando uma sentença SQL, a fonte dos dados

(Source of Data ) deverá ser a opção SQL Statemend . Coloque o comando SQL criado no access conforme mostrado na figura anterior. Para finalizar dê um clique no botão OK.

Após feito isto, o command deverá possuir as características mostradas abaixo:

Utilizando Sub Commands

É comum a elaboração de relatórios ou consultas, onde dois ou mais commands

estão relacionados entre sí. Isso é bastante útil quando se deseja agrupar os dados em função de um determinado registro.

Só é possível usar um sub command quando ambos os commands tem um campo em comum. No exemplo abaixo, é possível relacionar “comEntradas” com “comItens_Entradas” , através do campo eID.

Page 59: 1713 Visual Basic

Ambas as sentenças SQL foram criadas no Access usando os passos descritos anteriormente. Para relacionar um command com o outro, ou deixar um command subordinado ao outro, é necessário alterar as propriedades do command filho. Ou seja, aquele que tem dependência de existência.

Selecione a guia “Relation” em seguida marque a opção “Relate to Parent

Command Object”. Indique na caixa de combinação “Parent Command” o “command pai”. Finalmente selecione os campos comuns aos commands em seguida dê um clique

no botão Add. Feito isso dê um clique no botão OK.

Os comands “comEntradas” e “comItens_Entrada” deverão ficar com a aparência

mostrada abaixo:

Page 60: 1713 Visual Basic

Criando um relatório a partir de um Command Simples

Primeiro Passo: dê um clique com o botão direito do mouse sobre a janela do “Project Explorer”. No menu de atalho, selecione o comando Add , em seguida, a opção Data Report .

Segundo Passo: altere as propriedades do objeto Data Report (no caso da figura,

DataReport1) de forma que ele fique ligado ao Command do item 7.3.2. Para cada DataReport (relatório), deverá ser definido um único Command.

(Name): rptProdutos Caption: Relatório de Produtos DataSource: deComercial DataMember: comProdutos

Terceiro Passo: dê um duplo clique no ícone do objeto rptProdutos (antigo

DataReport1) para que seja mostrado o formulário correspondente. Quarto Passo : dê um clique com o botão direito do mouse sobre o formulário

aberto no passo anterior, em seguida selecione o comando Retrieve S tructure.

Page 61: 1713 Visual Basic

Todos os objetos desenhados no relatório serão apagados após a execução deste

comando. Por questões de segurança, é solicitada a confirmação do usuário. Dê um clique no botão Sim. As seções do relatório serão definidas de acordo com o respectivo Command.

Page 62: 1713 Visual Basic

Alterando as características do Relatório

Como não se pode usar os componentes da caixa de ferramentas padrão para desenhar um relatório, o DataReport possui seus próprios componentes. Observe que os componentes da caixa de ferramentas “General” ficam indisponíveis se o DataReport estiver selecionado, da mesma forma que os componentes da caixa de ferramentas “DataReport” ficam indisponíveis se o Form estiver selecionado.

O RptLabel, RptTextBox, RptImage, RptLine e RptShape são os equivalentes ao existentes na caixa general, aplicando-se neles todos os conceitos vistos anteriormente.

O RptFunction é um caso que será tratado a parte.

Na seção “Page Header” deverá ser definido o cabeçalho da página, ou seja, o

texto que será impresso no topo de todas as páginas do relatório. Na figura abaixo, um exemplo de um cabeçalho simples desenhado com o RptLabel.

Para a seção “Detail (comProdutos_Detail)”, deverão ser arrastados todos os

campos do Command “comProdutos” que desejamos que sejam impressos no relatório.

Page 63: 1713 Visual Basic

Em Page Header deverá ser definido o cabeçalho da página, ou seja, o texto que deverá ser impresso no topo de todas as páginas. Usando o objeto RptLabel, desenhe 3.

Somente será permitido arrastar os campos do Command especificado na

propriedade DataMember. Sendo assim, como foi especificado o command comProdutos, somente podemos arrastar os campos existentes nele.

Para cada campo arrastado da janela do DataEnvironment até a seção Detail são

colados um RptLabel e um RptTextBox . Se você ainda não tiver rotulado o campo em questão, arraste o RptLabel para a

seção “Page Header” em seguida modifique suas propriedades. Observe que ao ser colado um campo na seção Detail, os objetos RptLabel e RptTextBox vem selecionados, desmarque o objeto RptTextBox antes de mover o objeto RptLabel.

Alignment: 1-RptJustifyRight Caption: Código DataFormat: General Font: Negrito

Page 64: 1713 Visual Basic

É importante observar que campos numéricos devem ser alinhados sempre à direita (right), enquanto campos alfanumericos devem ser alinhados a esquerda (left). A propriedade DataFormat é usada para formatar a apresentação dos dados no relatório. Após alterar as propriedades do campo pCódigo , repita o procedimento para os campos pDescrição e pEstoque_Atual .

É importante observar as seguintes característica do DataReport:

- Os objetos RptLabel , RptTextBox e todos os demais, ao serem movimentados através do mouse, observam o posicionamento do Grid (caixa retangular existente em segundo plano).

- Para colocar um objeto em um determinada posição do relatório, faça-o através da alteração das propriedades Left (posição horizontal) e Top (posição vertical).

- Use as propriedades Height e Width para modificar respectivamente a altura e o comprimento de um determinado componente.

- Em hipótese alguma modifique o comprimento e a altura do relatório. Se após alterar o comprimento ou a altura, o relatório ficar maior que as dimensões do formulário selecionado, ocorrerá um erro durante a impressão. Se o fizer, faça-o aos poucos e teste a impressão (no vídeo a medida que for fazendo).

- No DataReport existem diversas seções. Antes de alterar quaisquer propriedades, verifique antes na janela de propriedades se está atualmente selecionado o objeto desejado.

Incluindo número de página, data e hora ao relatóri o

Para incluir o número da página atual, total de páginas, data atual e hora. Dê um clique com o botão direito do mouse sobre a seção Page Header do relatório, em seguida, selecione a opção Insert C ontrol .

Page 65: 1713 Visual Basic

Fazendo a chamada do Relatório

A maneira mais simples de chamar um relatório criado no Data Report, é através

do método Show. A chamada deve ser digitada dentro de um botão de comando, conforme mostrado no exemplo abaixo.

Private Sub cmdImprimir_Click()

rptProdutos.Show End Sub

Page 66: 1713 Visual Basic

Filtrando os dados mostrados no relatório

O método “Filter” é uma ótima alternativa para filtrar os dados apresentados em um determinado relatório criado no DataReport. Ele dever ser usado antes do método show, conforme exemplos abaixo:

deComercial.rscomProdutos.Filter = "pCodigo=1" rptProdutos.Show

ou deComercial.rscomProdutos.Filter = "pCodigo=" & Tx tCodigo_Produto rptProdutos.Show deComercial.rscomProdutos.Filter = "pDescricao= ′Polvilho Azedo 1 ′ " rptProdutos.Show

ou deComercial.rscomProdutos.Filter = "pDescricao= ′′′′" & TxtDescricao & " ′′′′" rptProdutos.Show

Page 67: 1713 Visual Basic

Se por acaso o campo usado no filtro for uma data, esta deverá delimitada por duas tralhas (e.g. vData_Emissao=#2001-08-31#”). Criando um relatório a partir de um Sub Command

As mudanças em relação a um relatório que usa um único Command são poucas.

Entretanto, vamos detalhar as diferenças para que seja mais fácil compreende-la.

1ª Mudança: deve ser indicado como “DataMember” o nome do “command pai”, a partir dele, o Data Report recupera os demais dados existentes no “command filho”.

(Name): rptEntradas_Periodo Caption: Relatório de Entradas DataSource: deComercial DataMember: comEntradas

2ª Mudança: o uso do comando “Retrieve Structure”, deixa de ser opcional e passa a ser obrigatório. Observe que pelo fato do “Command” possuir um “Sub Command”, a partir de agora o relatório tem agora as seções “Group Header” e “Group Footer”. Para visualiza-las, aumente a altura do formulário.

Page 68: 1713 Visual Basic

33. PACKAGE & DEPLOYMENT WIZARD

Veja como gerar os discos de distribuição e o programa de instalação para a sua aplicação usando o PACKAGE & DEPLOYMENT WIZARD. • A questão da distribuição

Você acabou de desenvolver uma aplicação em Visual Basic, testou, depurou e, finalmente, está pronto para distribuí-la aos usuários finais. Geralmente tais usuários não possuem o Visual Basic instalado em suas máquinas (você deve sempre considerar essa situação como a padrão). Você terá então que distribuir com sua aplicação uma série de arquivos DLL, e, se sua aplicação usar controles personalizados, terá também que distribuir os arquivos de controle VBX/OCX que utiliza. Para isto, ou você cria um programa de instalação com o Wizard, que determina os arquivos que você precisa distribuir, ou tenta determinar por si mesmo quais os arquivos precisam ser distribuídos. O Package & Deployment Wizard é fornecido com o Visual Basic e você poderá usá-lo para criar um programa que instalará sua aplicação na máquina do usuário.

As tarefas básicas que o Package & Deployment Wizard faz são: • Construir o arquivo executável (EXE) do seu projeto. • Criar um programa de instalação para a sua aplicação. • Determinar os arquivos necessários para a aplicação. • Compactar os arquivos do programa, copiá-los e dividi-los em discos para distribuição

(Disquete, CD-ROM, Disco Rígido e Redes). • Criar um grupo de programas e um ícone no sistema do usuário. Gerando o assistente de Instalação e os discos para distribuição

Vamos descrever passo a passo o processo de criação do programa de instalação e da geração dos discos de distribuição para um projeto: agenda.vbp. Vamos supor que a distribuição será feita em discos de 3 1/2 (1.44) e iremos usar o Package & Deployment Wizard. Então vamos lá: 1 - Inicie o Package & Deployment Wizard, clicando em Iniciar > Programas > Microsoft Visual Studio 6.0 > Microsoft Visual Studio 6.0 Tools > Package & Deployment Wizard. Surgirá a tela abaixo:

Page 69: 1713 Visual Basic

2- Nesta tela, clicamos no botão Browse para selecionar o projeto. Em seguida, clicamos em Package . 3- Caso o seu projeto ainda não tenha sido compilado, aparecerá uma janela solicitando a compilação. Nela, devemos clicar em Compile . Em seguida, aparecerá a seguinte tela:

Page 70: 1713 Visual Basic

4- Nesta tela, basta selecionar Standard Setup Package e clicar em Next . Surge a tela seguinte:

5- Aqui selecionamos a pasta onde os arquivos de instalação serão gravados. Então clicamos em Next e:

Page 71: 1713 Visual Basic

6- Clicamos no botão Add para adicionar arquivos que serão distribuídos junto com a aplicação, como por exemplo, um arquivo de banco de dados. Clicando em Next :

7- Escolhemos se a instalação será distribuída em um único arquivo (HD, rede, CD) ou em vários arquivos (disquete), podendo especificar o tamanho. Clicando em Next :

Page 72: 1713 Visual Basic

8- Especificamos um nome para o programa de instalação. Next :

9- Definimos o local onde os ícones aparecerão no Menu Iniciar. 10- A partir daí, basta clicar em Next até finalizar o assistente clicando em Finish .