none
Boleto Bancário - Código de Barras

    Question

  • Olá.

    Preciso montar um boleto bancário, mas não faço idéia de como colocar o código de barras, alguém poderia ajudar?

    Obrigada.
    Friday, October 10, 2008 1:09 AM

Answers

  • Carol,

     

    Surgiu essa dúvida aqui mesmo no fórum, e fiz a seguinte sugestão (veja se resolve):

     

    Solução: Gerar a imagem do Barcode (.BMP) via código e depois carregar essa imagem dinamicamente no relatório do crystal reports.

     

    Criei um tópico fixo no fórum MSDN com algumas dicas  sobre a construção de relatórios com Crystal Reports e ReportView (inclusive 2 vídeos sobre como construir relatórios "possui um exemplo de como carregar uma imagem dinamicamente em ambos os componentes"):

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=3761576&SiteID=21

     

    Para resolver esse problema, disponibilizei no meu blog, um mini projeto em .NET 2005 (VB.NET), contendo uma solução para gerar o código de barras para boleto bancário (já faz a geração do código de barras e exibe a imagem no Crystal Reports).

     

    A única coisa que precisa ser feita e "descomentar" o código do primeiro SQL e definir os demais dados do relatório (Banco, Cedente, etc.)

    http://laerciofreitas.home.services.spaces.live.com/

    (Na parte direita tem uma janela com o nome Arquivos Pastas Públicas, clique e faça o download do arquivo CrystalReportsBoletoBarCode.zip)

     

    Uma outra dica:

    http://www.codeplex.com/boletonet

    Projeto para geração de código de barras via web

     

     

    Eu não sei se atendeu pq o post ficou se resposta.

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=2349047&SiteID=21

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

    Friday, October 10, 2008 3:52 PM
    Moderator
  • Carol,

     

    Nos 2 vídeos eu faço o designer do relatório utilizando um DataSet e depois eu tenho uma sub responsável por carregar os dados do banco de dados no datasource do relatório.

     

    Um exemplo completo em VB.NET com Windows Forms e banco de dados SQL Server Compact

     

    Code Snippet

    'provider do banco de dados

    Imports System.Data.SqlServerCe

    Imports System.Data

    'crystal reports

    Imports CrystalDecisions.CrystalReports.Engine

    Imports CrystalDecisions.Shared

    'outros

    Imports System.Text 'StringBuilder

    Imports System.Configuration 'ConnectionStrings

    Imports System.IO 'Path.Combine

     

     

    Code Snippet

    Private Sub PreviewRelClientes(ByVal oTable As DataTable)

    '

    'visualizar o relat¢rio "rptCustomer.rpt" utilizando a fun‡Æo CarregarListaClientes()

    '

    Try

    '1 passo: definindo o relat¢rio a ser visualizado (ReportPath)

    Dim crReportDocument As New rptCustomer

    '2 passo: definindo o DataSource do relat¢rio

    crReportDocument.SetDataSource(oTable)

    '3 passo: visualizando o relat¢rio...

    crPreview.DisplayGroupTree = False

    crPreview.ReportSource = crReportDocument

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

     

     

    Code Snippet

    Private Function CarregarListaClientes() As DataTable

    'definindo a string de conexÆo do banco de dados

    Dim strConexao As String = _

    ConfigurationManager.ConnectionStrings("SQLServerCompact").ToString

    Dim oConn As New SqlCeConnection(strConexao)

    Dim strSQL As New StringBuilder

    Dim oTable As New DataTable()

    Dim oCmd As SqlCeCommand = Nothing

    Try

    'abrindo conexÆo com o banco de dados.

    oConn.Open()

    'definindo o SQL

    strSQL.Append(" Select CustomerID ")

    strSQL.Append(" ,CustomerName")

    strSQL.Append(" ,Phone")

    strSQL.Append(" ,EmailAddress")

    strSQL.Append(" ,AddressLine")

    strSQL.Append(" ,City")

    strSQL.Append(" ,StateProvinceName")

    strSQL.Append(" ,PostalCode")

    strSQL.Append(" ,CountryName")

    strSQL.Append(" ,LastUpdate ")

    strSQL.Append(" FROM Customer inner join Country ")

    strSQL.Append(" on Customer.CountryID = Country.CountryID ")

    strSQL.Append(" Order by CountryName, CustomerName ")

    'carregando os dados do banco de dados

    Dim oDA As New SqlCeDataAdapter(strSQL.ToString, oConn)

    oDA.Fill(oTable)

    Catch ex As Exception

    MsgBox(ex.Message)

    Finally

    'liberando os objetos

    oConn.Dispose()

    oConn = Nothing

    End Try

    Return oTable

    End Function

     

     

     

    [ ]' s

     

        Laércio.

    Wednesday, October 15, 2008 12:35 AM
    Moderator

All replies

  • Carol,

     

    Surgiu essa dúvida aqui mesmo no fórum, e fiz a seguinte sugestão (veja se resolve):

     

    Solução: Gerar a imagem do Barcode (.BMP) via código e depois carregar essa imagem dinamicamente no relatório do crystal reports.

     

    Criei um tópico fixo no fórum MSDN com algumas dicas  sobre a construção de relatórios com Crystal Reports e ReportView (inclusive 2 vídeos sobre como construir relatórios "possui um exemplo de como carregar uma imagem dinamicamente em ambos os componentes"):

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=3761576&SiteID=21

     

    Para resolver esse problema, disponibilizei no meu blog, um mini projeto em .NET 2005 (VB.NET), contendo uma solução para gerar o código de barras para boleto bancário (já faz a geração do código de barras e exibe a imagem no Crystal Reports).

     

    A única coisa que precisa ser feita e "descomentar" o código do primeiro SQL e definir os demais dados do relatório (Banco, Cedente, etc.)

    http://laerciofreitas.home.services.spaces.live.com/

    (Na parte direita tem uma janela com o nome Arquivos Pastas Públicas, clique e faça o download do arquivo CrystalReportsBoletoBarCode.zip)

     

    Uma outra dica:

    http://www.codeplex.com/boletonet

    Projeto para geração de código de barras via web

     

     

    Eu não sei se atendeu pq o post ficou se resposta.

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=2349047&SiteID=21

     

     

    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

    Friday, October 10, 2008 3:52 PM
    Moderator
  • Olá.

    Quando recebi o e-mail avisando da resposta não conseguia visualizar e quando eu acessava o fórum não conseguia encontrar o post, é a primeira vez que utilizo este fórum.

    Não consigo acessar
    http://laerciofreitas.home.services.spaces.live.com/ para pegar o arquivo. Por favor, pode enviar por e-mailr?



    Monday, October 13, 2008 1:16 AM
  • Carol,

     

    Sem problemas! Hoje a noite eu envio o o arquivo.

     

     

    [ ]'s

     

    Laércio.

     

     

     

    Monday, October 13, 2008 1:09 PM
    Moderator
  • Olá.

     

    Quando tiver um tempinho, envia para mim.

     

    Não sei se fica disponível neste site o e-mail, se não fica, meu e-mail é: carol_carter1@hotmail.com

     

    Obrigada.

    Tuesday, October 14, 2008 4:05 PM
  • Oi Carol,

     

    Acabei de enviar o arquivo para o seu e-mail. Precisando é só postar!

     

    [ ]'s

     

    Laércio.

     

    Tuesday, October 14, 2008 10:13 PM
    Moderator
  • Ótimo.

     

    Só para ter certeza, para buscar os dados das minhas tabelas basta utilizar o trecho abaixo:

     

    "oConn.ConnectionString = strConexao

    ''oConn.Open()

    ''carregando os dados

    ''strSQL.Append(" SELECT CodigoBanco, ")

    ''strSQL.Append(" Cedente, ")

    ''strSQL.Append(" DataPagamento ")

    ''strSQL.Append(" FROM ")

    ''strSQL.Append(" Boleto ")

    ''Dim oDA As New SqlDataAdapter(strSQL.ToString, oConn)

    ''oDA.Fill(oDataSet, "Boleto")

    '

     

     

    E utilizar um datatable no crystal report ou nem precisa?

    Tuesday, October 14, 2008 10:58 PM
  • Carol,

     

    Nos 2 vídeos eu faço o designer do relatório utilizando um DataSet e depois eu tenho uma sub responsável por carregar os dados do banco de dados no datasource do relatório.

     

    Um exemplo completo em VB.NET com Windows Forms e banco de dados SQL Server Compact

     

    Code Snippet

    'provider do banco de dados

    Imports System.Data.SqlServerCe

    Imports System.Data

    'crystal reports

    Imports CrystalDecisions.CrystalReports.Engine

    Imports CrystalDecisions.Shared

    'outros

    Imports System.Text 'StringBuilder

    Imports System.Configuration 'ConnectionStrings

    Imports System.IO 'Path.Combine

     

     

    Code Snippet

    Private Sub PreviewRelClientes(ByVal oTable As DataTable)

    '

    'visualizar o relat¢rio "rptCustomer.rpt" utilizando a fun‡Æo CarregarListaClientes()

    '

    Try

    '1 passo: definindo o relat¢rio a ser visualizado (ReportPath)

    Dim crReportDocument As New rptCustomer

    '2 passo: definindo o DataSource do relat¢rio

    crReportDocument.SetDataSource(oTable)

    '3 passo: visualizando o relat¢rio...

    crPreview.DisplayGroupTree = False

    crPreview.ReportSource = crReportDocument

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

     

     

    Code Snippet

    Private Function CarregarListaClientes() As DataTable

    'definindo a string de conexÆo do banco de dados

    Dim strConexao As String = _

    ConfigurationManager.ConnectionStrings("SQLServerCompact").ToString

    Dim oConn As New SqlCeConnection(strConexao)

    Dim strSQL As New StringBuilder

    Dim oTable As New DataTable()

    Dim oCmd As SqlCeCommand = Nothing

    Try

    'abrindo conexÆo com o banco de dados.

    oConn.Open()

    'definindo o SQL

    strSQL.Append(" Select CustomerID ")

    strSQL.Append(" ,CustomerName")

    strSQL.Append(" ,Phone")

    strSQL.Append(" ,EmailAddress")

    strSQL.Append(" ,AddressLine")

    strSQL.Append(" ,City")

    strSQL.Append(" ,StateProvinceName")

    strSQL.Append(" ,PostalCode")

    strSQL.Append(" ,CountryName")

    strSQL.Append(" ,LastUpdate ")

    strSQL.Append(" FROM Customer inner join Country ")

    strSQL.Append(" on Customer.CountryID = Country.CountryID ")

    strSQL.Append(" Order by CountryName, CustomerName ")

    'carregando os dados do banco de dados

    Dim oDA As New SqlCeDataAdapter(strSQL.ToString, oConn)

    oDA.Fill(oTable)

    Catch ex As Exception

    MsgBox(ex.Message)

    Finally

    'liberando os objetos

    oConn.Dispose()

    oConn = Nothing

    End Try

    Return oTable

    End Function

     

     

     

    [ ]' s

     

        Laércio.

    Wednesday, October 15, 2008 12:35 AM
    Moderator
  • Obrigada.

     

     

    Wednesday, October 15, 2008 4:30 PM
  • Estou tentando utilizar a dll para ter o código de barras no boleto, já adicionei a dll, ela aparece na lista de referências, está no meu projeto, mas está com esses dois erros.

    Namespace or type specified in the Imports 'BarcodeCreator' doesn't contain any public member or cannot be found. Make sure the namespace or the type is defined and contains at least one public member. Make sure the imported element name doesn't use any aliases.

    'BarcodeCreator.AsBarcode' is not defined.

    O que pode ser? Tem que fazer algo mais do que referenciar?

    Obrigada.
    Tuesday, November 04, 2008 9:30 AM
  • Olá Carol,

     

    Então, no exemplo que eu passei para vc por e-mail não estava funcionando a geração do código de barras? Faça o seguinte: Remova a referência do arquivo .DLL e tente efetuar novamente a referência do arquivo.

     

    [ ]'s

     Laércio.


    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

     

     

     

     

     

     

    Tuesday, November 04, 2008 12:54 PM
    Moderator
  • O exemplo que você passou está perfeito, até já montei o layout do jeito que preciso.

    O problema deu quando fui adicionar junto ao meu projeto. No meu projeto não aparecia na referência o nome da dll, eu que adicionei, porque estava com aqueles erros que citei no post acima, então achei que se eu fizesse referência resolveria, agora até aparece na listagem de referência, mas continua com o mesmo erro.

    Eu fiz o seguinte: copiei os arquivos do seu projeto e colei na pasta do meu projeto, depois cliquei com o botão direito sobre o nome do meu projeto e escolhi a opção adicionar itens existentes. E no form que exibe o boleto, já apareceu aqueles erros, depois que tentei adicionar a dll. Esses passos que fiz estão corretos?
    Tuesday, November 04, 2008 1:31 PM
  • Boa noite.

     

    Consegui resolver o problema da dll. Estava com aqueles erros, quando coloquei a dll na pasta bin\ debug e na pasta references e cliquei em rebuild.

     

    Obrigada pela atenção.

    Tuesday, November 04, 2008 10:51 PM
  • Carol,

     

    Desculpe, ontem eu estava com problemas para postar no fórum e somente hoje voltei a responder as dúvidas.

     

    Se vc observar no exemplo que eu enviei para você por e-mail, eu criei uma pasta dentro do projeto com as DLLs (Referencias ou Assemblys) e a partir desse diretório eu faço as referências do projeto.

     

    E precisando é só postar no Fórum!

     

     

    [ ]'s

     Laércio.


    Ajude a melhorar o nosso Fórum!
    Não esqueça de marca a mensagem como "útil", caso tenha ajudado.

    Wednesday, November 05, 2008 12:44 PM
    Moderator
  • Ok. Sem problemas.

     

    Eu utilizarei este material para a apresentação do tcc no sábado, provavelmente a banca perguntará sobre o código de barras, algo do tipo de fonte ou sei lá o que. O que devo dizer? Utilizei uma dll? Ela foi criada em que? Quais informações devo dizer?

     

    Não consegui usar puxando do bd, estou jogando na linha de código mesmo.

     

    Obrigada.

    Thursday, November 06, 2008 2:34 AM