none
Relatorio por data em vb.net RRS feed

  • Pergunta

  •  

    entao estou tentando montar uns relatorios o primeiro eu tenhu q selecionar a data inicial num datetimepicker e dt final

     

    eu dei uma procurada na net mas nao axei exemplos desse tipo se alguem puder me ajudar ou me falar algum lugar q tenha um expemplo agradeço

     

    valew ate +

    quarta-feira, 15 de outubro de 2008 15:52

Respostas

  •  

    Um exemplo com banco de dados ACCESS + Crystal Reports

     

    Referências do form:

     

    Code Snippet

    Option Explicit On

    Option Strict On

    'provider do banco de dados ACCESS

    Imports System.Data.OleDb

    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

     

     

    Adicionar no Form Load

     

    Code Snippet

    PreviewRelClientes(CarregarListaClientes(DateSerial(2008, 1, 1), DateSerial(2008, 12, 31)))

     

     

    Sub responsável pela visualização do relatório

     

    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)

    'rptCustomer: nome do relat¢rio do crystal reports

    '

    Dim crReportDocument As New rptCustomer

    '2 passo: definindo o DataSource do relat¢rio

    crReportDocument.SetDataSource(oTable)

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

    '

    'crPreview: nome do controle CrystalReportViewe

    crPreview.DisplayGroupTree = False

    crPreview.ReportSource = crReportDocument

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

    End Sub

     

     

    Função responsável pela pesquisa dos dados no banco de dados Access (com filtro por data para resolver a sua dúvida)

     

    Code Snippet

    Private Function CarregarListaClientes(ByVal datInicial As Date, _

    ByVal datFinal As Date) As DataTable

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

    Dim strConexao As String = ""

    'caso o banco de dados esteja no mesmo diret¢rio da aplica‡Æo

    'strConexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\AWorksLite.mdb;Persist Security Info=True"

    strConexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\Novos\Access\AWorks\AWorksLite.mdb;Persist Security Info=True"

    Dim oConn As New OleDbConnection(strConexao)

    Dim strSQL As New StringBuilder

    Dim oTable As New DataTable()

    Dim oCmd As OleDbCommand = 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(" Where LastUpdate between @DatInicial and @DataFinal ")

    strSQL.Append(" Order by CustomerName ")

    'definindo os parƒmetros do SqlCommand

    oCmd = New OleDbCommand(strSQL.ToString, oConn)

    oCmd.CommandType = CommandType.Text

    oCmd.Parameters.Add(New _

    OleDbParameter("@DatInicial", SqlDbType.DateTime)).Value = datInicial

    oCmd.Parameters.Add(New _

    OleDbParameter("@DataFinal", SqlDbType.DateTime)).Value = datFinal

    'carregando os dados do banco de dados

    Dim oDataReader As OleDbDataReader = _

    oCmd.ExecuteReader(CommandBehavior.CloseConnection)

    'carregar o DataTable com base no DataReader

    oTable.Load(oDataReader)

    Catch ex As Exception

    MsgBox(ex.Message)

    Finally

    'liberando os objetos

    oConn.Dispose()

    oConn = Nothing

    End Try

    Return oTable

    End Function

     

     

    Espero ter ajudado!

     

    quarta-feira, 15 de outubro de 2008 17:20
    Moderador