[VB6]Como criar relatorios em HTML com VB6 e imprimi-los

Status
Fechado a novas mensagens.

Armadillo

Folding Member
Ora bem, muitas vezes o programador tem a necessidade de criar relatórios e de os imprimir.
Como a maioria das aplicações são muuuito caras, decidi que os meus relatórias seriam em HTML.

Fica aqui um pequeno exemplo de como fazer isto em VB6.


Adicionar o componente Microsoft Internet Controls ao projecto.

Criar um form, com um botao com o nome Bt_Imprimir.
Adicionar o componente WebBrowser ao form com o nome WebBrowser1.
O código do form segue em baixo...
Código:
'Codigo do form


Private Sub Bt_Imprimir_Click()
Dim chaveRoot As String, ChaveNome As String
Dim chave As String
Dim f As String, h As String

'Vamos alterar as chaves do Registry, de forma a nao aperecerem os cabecalhos e ropdapes predefinidos do Internet Explorer
chave = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\PageSetup\header"

chaveRoot = "HKEY_CURRENT_USER"
ChaveNome = "Software\Microsoft\Internet Explorer\PageSetup"

f = AcessoReg.GetKeyValue(HKEY_CURRENT_USER, ChaveNome, "footer")   'gravar valores originais da key para uso posterior
h = AcessoReg.GetKeyValue(HKEY_CURRENT_USER, ChaveNome, "header")   'gravar valores originais da key para uso posterior


AcessoReg.UpdateKey HKEY_CURRENT_USER, ChaveNome, "footer", ""      'limpar valores da key
AcessoReg.UpdateKey HKEY_CURRENT_USER, ChaveNome, "header", ""      'limpar valores da key



WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT          'mostrar caixa de dialogo de impressao

AcessoReg.UpdateKey HKEY_CURRENT_USER, ChaveNome, "header", h       'gravar dados originais do cabec
AcessoReg.UpdateKey HKEY_CURRENT_USER, ChaveNome, "footer", f       'e do rodape
End Sub




Private Sub Form_Load()
Dim MyHTML As String

'Criar HTML desejado

WebBrowser1.Navigate "about:blank"
MyHTML = "<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""> " & _
"<html xmlns=""http://www.w3.org/1999/xhtml""><head>" & _
"<meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1"" /><title>Untitled Document</title>" & _
"</head><body><p>Documento 2008-0000001</p><p>&nbsp;</p><p>Cliente X</p>" & _
"<p>Morada Y</p><p>&nbsp;</p><table border=""1"">  <tr>" & _
"<td>Produto</td><td>Descri&ccedil;&atilde;o</td><td>Quantidade</td><td>Desconto</td>" & _
"<td>PVP</td></tr><tr><td>x</td><td>x</td>" & _
"<td>1</td><td>0</td><td>12</td></tr><tr>" & _
"<td>w</td><td>w</td><td>2</td><td>12</td><td>1234</td></tr></table> <p>&nbsp;</p></body></html>"

'Mostrar HTML desejado
WebBrowser1.Document.Write MyHTML
  
End Sub
Agora vem o modulo responsável pela manipulação do Registry do Windows(atenção que estão a brincar com fogo aqui...)
Criem um novo módulo.
Abram o seguinte ficheiro: C:\Programas\Microsoft Visual Studio\VB98\Template\Code\Registry Access.bas
Copiem todo o seu conteúdo para o novo módulo.
O módulo deverá ter o nome AcessoReg.

Este exemplo foi testado apenas com o Windows XP.


Cumprimentos


Usem este código por vossa conta e risco.
Não me responsabilizo por qualquer problema que possa advir da utilização deste código
 
Status
Fechado a novas mensagens.
Back
Topo