1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

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

Discussão em 'Programação' iniciada por Armadillo, 21 de Maio de 2008. (Respostas: 0; Visualizações: 4189)

Estado do Tópico:
Fechado a novas mensagens.
  1. Armadillo

    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
     
Estado do Tópico:
Fechado a novas mensagens.

Partilhar esta Página