Nel caso in cui non vi siano dati compare un Messaggio.
La Parte di Codice Interessante è :
Label1.Visible = False
Label1.Text = ""
Try
Dim dv As DataView
' ''''''''''''''''''''''
' Verifica Se Esistono i Dati
' ''''''''''''''''''''''
SqlDataSource2.SelectCommand = ""
SqlDataSource2.SelectCommand = SqlDataSource2.SelectCommand + "SELECT COUNT (UserId)"
SqlDataSource2.SelectCommand = SqlDataSource2.SelectCommand + " FROM Tb_Richiesta_Ricevuta"
SqlDataSource2.SelectCommand = SqlDataSource2.SelectCommand + " WHERE (Data_Stato < '" + Calendar2.SelectedDate + "' AND Data_Stato > '" + Calendar1.SelectedDate + "')"
' ''''''''''''''''''''''
dv = CType(SqlDataSource2.Select(DataSourceSelectArguments.Empty), DataView)
DatiPresenti = (CInt(dv.Item(0).Item(0)) > 0)
' '''''''''''''''''''''''''''''''''''''''''
Catch ex As Exception
Label1.Text = "Errore di Accesso al dataBase"
Label1.Visible = True
Exit Sub
End Try
Ecco tutto il Listato
Imports System.Data
Imports System.Data.SqlClient
Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine
Partial Class Statistica1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
MeseFine.SelectedValue = Now.Month.ToString
AnnoFine.SelectedValue = Now.Year.ToString
Calendar1.VisibleDate = "01/01/2003"
Calendar1.SelectedDate = "01/01/2003"
Calendar2.VisibleDate = Now.Day.ToString + "/" + Now.Month.ToString + "/" + Now.Year.ToString
Calendar2.SelectedDate = Now.Day.ToString + "/" + Now.Month.ToString + "/" + Now.Year.ToString
End If
End Sub
Protected Sub Avvia_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Avvia.Click
Dim DatiPresenti As Boolean
Label1.Visible = False
Label1.Text = ""
Try
Dim dv As DataView
' ''''''''''''''''''''''
' Verifica Se Esistono i Dati
' ''''''''''''''''''''''
SqlDataSource2.SelectCommand = ""
SqlDataSource2.SelectCommand = SqlDataSource2.SelectCommand + "SELECT COUNT (UserId)"
SqlDataSource2.SelectCommand = SqlDataSource2.SelectCommand + " FROM ***"
SqlDataSource2.SelectCommand = SqlDataSource2.SelectCommand + " WHERE (Data_Stato < '" + Calendar2.SelectedDate + "' AND Data_Stato > '" + Calendar1.SelectedDate + "')"
' ''''''''''''''''''''''
dv = CType(SqlDataSource2.Select(DataSourceSelectArguments.Empty), DataView)
DatiPresenti = (CInt(dv.Item(0).Item(0)) > 0)
' '''''''''''''''''''''''''''''''''''''''''
Catch ex As Exception
Label1.Text = "Errore di Accesso al dataBase"
Label1.Visible = True
Exit Sub
End Try
If DatiPresenti Then
Try
' ''''''''''''''''''''''
' Avvio il Report con i Dati del Calendario
' ''''''''''''''''''''''
Dim myreport As New ReportDocument()
myreport.Load(Server.MapPath("CrystalReport2.rpt"))
myreport.DataSourceConnections.Item(0).SetLogon("STDPWeb", "ret87bak")
' ''''''''''''''''''''''
' Passo i Parametri al Report
' ''''''''''''''''''''''
myreport.SetParameterValue("Data_Inizio", Calendar1.SelectedDate.ToString("dd/MM/yyyy"))
myreport.SetParameterValue("Data_Fine", Calendar2.SelectedDate.ToString("dd/MM/yyyy"))
CrystalReportViewer2.ReportSource = myreport
' ''''''''''''''''''''''
' ''''''''''''''''''''''
Catch ex As Exception
Label1.Text = "Errore di Accesso al dataBase"
Label1.Visible = True
Exit Sub
End Try
Else
Label1.Text = "Non sono presenti Dati nell' Intervallo Selezionato"
Label1.Visible = True
CrystalReportViewer2.Visible = False
End If
End Sub
Sub Aggiorna_Data()
Calendar1.VisibleDate = "01" + "/" + MeseInizio.SelectedValue + "/" + AnnoInizio.SelectedValue
Calendar1.SelectedDate = "01" + "/" + MeseInizio.SelectedValue + "/" + AnnoInizio.SelectedValue
Calendar2.VisibleDate = "01" + "/" + MeseFine.SelectedValue + "/" + AnnoFine.SelectedValue
Calendar2.SelectedDate = "01" + "/" + MeseFine.SelectedValue + "/" + AnnoFine.SelectedValue
End Sub
Protected Sub MeseInizio_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MeseInizio.SelectedIndexChanged
Aggiorna_Data()
End Sub
Protected Sub AnnoInizio_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles AnnoInizio.SelectedIndexChanged
Aggiorna_Data()
End Sub
Protected Sub MeseFine_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MeseFine.SelectedIndexChanged
Aggiorna_Data()
End Sub
Protected Sub AnnoFine_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles AnnoFine.SelectedIndexChanged
Aggiorna_Data()
End Sub
End Class