Automação OLE - Integração de Ambientes
Conceitos OLE - Object Linking and Embedding
Linking: Cria vínculos ou referências aos objetos, armazenando no documento principal apenas os dados realmente necessários.
Embedding: Incorpora os dados dos objetos ao documento principal.
Objeto Vinculado: São dados, informações (objeto) criadas em um arquivo de origem e inseridas em um arquivo de destino. O objeto vinculado não se torna parte do arquivo de destino. Porém, existe um vínculo, uma conexão entre os dois arquivos, de forma que o objeto vinculado no arquivo de destino é automaticamente atualizado quando o arquivo de origem é atualizado.
Objeto Incorporado (Embutido): Ao se criar um objeto incorporado, todos os dados associados a ele estão contidos no próprio objeto OLE. Se o usuário selecionar o objeto embutido, a aplicação fonte será iniciada automaticamente, de forma que se possa alterar diretamente o objeto. Ao incorporar um objeto em uma aplicação nenhuma outra aplicação poderá acessar os dados contidos no objeto. Utilize objetos embutidos quando desejar que apenas sua aplicação mantenha dados que são gerados e editados em outra aplicação.
Cliente e Servidor: Cliente: Aplicação cliente é aquela que solicita os dados; aplicação servidor é aquela que disponibiliza os dados.
Classe: A aplicação que gera os dados do objeto OLE e os tipos de dados que o objeto OLE contém determina a classe do objeto. Selecionando a propriedade Class na tela Properties, você poderá visualizar uma lista de nomes de classes de objetos que sua aplicação suporta.
Aplicação Recipiente: É uma aplicação que recebe e mostra os dados de um objeto OLE. Por exemplo, uma aplicação Visual Basic que usa uma caixa de controle OLE para embutir dados de outra aplicação é uma Aplicação Recipiente.
Objetos OLE
Um objeto OLE se refere a um dado discreto gerado por uma aplicacão. Uma mesma aplicação pode gerar diferentes tipos de objetos. Por exemplo, um banco de dados pode gerar bancos de dados, scripts, consultas ou relatórios como diferentes tipos de objetos. Existem três formas de gerar objetos OLE em Visual Basic:
1- Adicionando o Objeto OLE ao Toolbox (caixa de ferramentas) e colocando o objeto OLE diretamente no seu form (tela). Esta técnica (embedding) embute o objeto OLE dentro da interface da tela da sua aplicação.
2- Utilizando as funções CreateObject ou GetObject para criar o objeto OLE em código. Esta técnica (linking) cria o objeto OLE numa instância ativa da aplicação que gera o objeto OLE.
3- Inserindo ou vinculando o objeto OLE dentro de uma caixa de controle OLE. Esta técnica permite que você modifique os objetos na tela em tempo de execução, crie objetos OLE vinculados e ligue a caixa de controle OLE a um controle de dados.
Automação OLE
Algumas aplicações geram objetos OLE que suportam Automação OLE. Você pode usar o Visual Basic para manipular, via código, os dados destes objetos OLE.
A automação OLE permite que uma aplicação seja controlada por outra aplicação. É através dela que podemos requisitar a outro aplicativo que execute uma determinada tarefa.
Seguem abaixo dois códigos de automação OLE como exemplo:
Automação OLE - Exemplo Visual Basic / Word
1-Inicie o Visual Basic, crie um novo projeto.
2-No formulário, crie um botão de comando com a propriedade Caption definida como AUTOMAÇÃO OLE.
3-Crie um botão de comando com Caption, definida como &Sai e acrescente o seguinte código ao botão:
Private Sub Command1_Click()
End
End Sub
4. Insira o seguinte código ao botão :
Ao executar a aplicação e clicar no botão de comando AUTOMAÇÃO OLE, o Word será inicializado, criará um novo arquivo , incluirá o texto AUTOMAÇAO OLE em negrito e com fonte de tamanho 24, mostrando o resultado no visualizador de impressão. Para retornar ao aplicativo, feche o Word.
Observe que o "coração" do sistema está na função CreateObject("Word.Application"), pois é ela que cria efetivamente o objeto WordBasic e inicia o Word.
Automação OLE – Exemplo Visual Basic / Excel
1-Inicie o Visual Basic, crie um novo projeto.
2- No formulário, crie uma label para sinalização da mensagem.
3-Crie um botão de comando e acrescente o seguinte código ao botão:
Private Sub Command3_Click()
Dim dbdados As Database
Dim snp As Recordset
Dim x As Integer
Dim y As Integer
x = 1
'um indicativo para nos guiar
Label2.Caption = "Inicio da operação"
Screen.MousePointer = 11
'este código usa a sintaxe do VBA
Set oleexcel = CreateObject("excel.application.8")
Set oleworkbook = oleexcel.Workbooks.Add
Set oleworksheet = oleexcel.Worksheets.Add
'atenção para o caminho do banco de dados , no seu caso deverá ser diferente
Set dbdados = DBEngine.Workspaces(0).OpenDatabase("e:\vb_tips\nwind2.mdb")
'Como o nome de alguns campos possuem espaços, usamos o colchetes [ ]
Set snp = dbdados.OpenRecordset("SELECT [Número do empregado],[sobrenome],_
[Primeiro nome],[cargo] FROM Empregados", dbOpenSnapshot)
Label2.Caption = "Montando a planilha com dados do arquivo"
DoEvents
Do While Not snp.EOF
For y = 1 To snp.Fields.Count
oleworksheet.Cells(x, y) = snp.Fields(y - 1)
Next y
With oleworksheet.Range("A" & x)
.Value = snp.Fields(0) 'Número do empregado na coluna A1-A15
.Font.Bold = True 'destaca o texto em negrito
End With
x = x + 1
snp.MoveNext
Loop
Label2.Caption = "salvando a planilha..."
DoEvents
'atenção para o path com o diretório para salvar o arquivo
oleworksheet.SaveAs "d:\escola\teste.xls"
snp.Close
Screen.MousePointer = 0
oleexcel.Visible = True
Label2.Caption = "Ok !"
Label2.Caption = ""
'limpando a memória
Set snp = Nothing
Set oleexcel = Nothing
Set oleworkbook = Nothing
Set oleworksheet = Nothing
End Sub
Ao executar a aplicação, será exibido um documento do Excel apresentando os dados do seu banco de dados.
Você pode utilizar também outros aplicativos do windows, como, por exemplo, o Power Point para fazer a integração de ambientes via automação OLE.
Referências
JANONES, R. S. Curso integrando Delphi com Word e Excel. Disponível em: <http://www.ramosdainformatica.com.br/dwe.htm>. Acesso em: 18 abr. 2002.
MACORATTI, J. C. OLE - conceitos básicos. Disponível em: <http://www.geocities.com/SiliconValley/ Bay/3994/ole.htm>.
Acesso em: 17 abr. 2002.
SCHEIDER, R. L. Visual Basic - parte III . Disponível em:
<http://www.dcc.ufrj.br/~schneide/MSI2_962/grupo16/vb4.htm>. Acesso em: 18 abr. 2002