Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8695

Using Crystal Report in ASP.Net website, Report not showing in CrystalReportViewer

$
0
0

I am working on an ASP.Net website to display a Crystal Report in a CrystalReportViewer on a ASP.Net page.

 

I am using Visual Studio 2013 and Crystal Reports 2011 for Sage.

 

I have Crystal Reports for Visual Studio version 13.0.2000.0 installed.

 

Trying run the Website on a Win 7 Pro in the local IIS.

 

On the Test1.aspx page, there are 2 DropDownList boxes for the user to filter the data for the report.  When the user clicks on Run Report button, it does the following:

 

1. Connect to the Oracle database.

2. Run a query using a SELECT statement based on what the user selected in the DropDownList boxes.

3. Fill a dataset with the results of the query.

4. Set the CrystalReportViewer to the dataset.

 

CrystalReportViewer is not even shown on the web page.

 

I know the dataset is getting data because I can display it in a label.

 

What do I need to do to get this to work?

 

Test1.aspx  ------

 

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Test1.aspx.vb" Inherits="Test1" %>

 

 

<%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>

 

 

<!DOCTYPE html>

 

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        Plex H Shipment YM SUM Report<br />

        <br />

   

        Year:

        <asp:DropDownList ID="ddlYear" runat="server">

        </asp:DropDownList>

        <br />

        Month:

        <asp:DropDownList ID="ddlMonth" runat="server">

            <asp:ListItem Selected="True">ALL</asp:ListItem>

            <asp:ListItem>1</asp:ListItem>

            <asp:ListItem>2</asp:ListItem>

            <asp:ListItem>3</asp:ListItem>

            <asp:ListItem>4</asp:ListItem>

            <asp:ListItem>5</asp:ListItem>

            <asp:ListItem>6</asp:ListItem>

            <asp:ListItem>7</asp:ListItem>

            <asp:ListItem>8</asp:ListItem>

            <asp:ListItem>9</asp:ListItem>

            <asp:ListItem>10</asp:ListItem>

            <asp:ListItem>11</asp:ListItem>

            <asp:ListItem>12</asp:ListItem>

        </asp:DropDownList>

        <br />

        <br />

           

        <asp:Button ID="Button1" runat="server" Text="Run Report" />

        <br />

        <br />

        <asp:Label ID="Label1" runat="server"></asp:Label>

        <br />

        <asp:Label ID="Label2" runat="server"></asp:Label>

   

        <br />

        <br />

        <asp:Label ID="Label3" runat="server"></asp:Label>

        <br />

   

        <br />

        <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" GroupTreeImagesFolderUrl="" Height="962px" ReportSourceID="CrystalReportSource1" ToolbarImagesFolderUrl="" ToolPanelWidth="200px" Width="1344px" EnableDatabaseLogonPrompt="False" EnableParameterPrompt="False" ToolPanelView="None" />

   

        <CR:CrystalReportSource ID="CrystalReportSource1" runat="server">

            <Report FileName="PlexHShipmentYMSumReport_2.rpt">

            </Report>

        </CR:CrystalReportSource>

   

    </div>

    </form>

</body>

</html>

------------------------------------------------------------------------------------------------

 

Test1.aspx.vb -----

 

Imports CrystalDecisions.CrystalReports.Engine

 

 

Partial Class Test1

    Inherits System.Web.UI.Page

 

 

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

        Dim strCurYear As String

        Dim intYear As String

 

 

        'Get current Year.

        strCurYear = Format(Now, "yyyy")

 

 

        If ddlYear.Items.Count = 0 Then

 

 

            'Add Items to Year Drop Down List.

            ddlYear.Items.Add("ALL")

            ddlYear.Items.Add(strCurYear)

 

 

            intYear = Val(strCurYear) - 1

            Do While intYear >= 2012

                ddlYear.Items.Add(Trim(Str(intYear)))

                intYear = intYear - 1

            Loop

        End If

 

 

 

 

    End Sub

 

 

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim sql As String

        Dim strProcedure As String

        Dim strYear As String, strMonth As String

        Dim strErrorMsg As String

        strProcedure = "btnRunReport_Click"

 

 

        Try

            sql = ""

 

 

            strYear = ddlYear.Text

            strMonth = ddlMonth.Text

 

 

            sql = "SELECT SHIP_YEAR, SHIP_MONTH, SHIP_TO_BUILDING_CODE, TRUCK_CNT, INTERPLANT_SHIPPER_NO_CNT, " & _

                "TOTAL_ITEM_CNT, GTOT_NET_WEIGHT, GTOT_GROSS_WEIGHT, ENTRY_DATE, REVISE_DATE " & _

                "FROM VIEW_PLEX_H_SHIPMENT_YM_SUM "

 

 

            If strYear = "ALL" And strMonth <> "ALL" Then

                sql = sql & "WHERE SHIP_MONTH = '" & strMonth & "' "

            ElseIf strYear <> "ALL" And strMonth = "ALL" Then

                sql = sql & "WHERE SHIP_YEAR = '" & strYear & "' "

            ElseIf strYear <> "ALL" And strMonth <> "ALL" Then

                sql = sql & "WHERE SHIP_YEAR = '" & strYear & "' AND SHIP_MONTH = '" & strMonth & "' "

            End If

 

 

            sql = sql & "ORDER BY SHIP_YEAR ASC, SHIP_MONTH ASC"

 

 

            Label1.Text = "SQL Statement is:"

            Label2.Text = sql

            Call CreateReport2(sql)

 

 

ExitReport:

 

 

        Catch ex As Exception

            'strErrorMsg = "Date/Time: " & Format(Now, "MM/dd/yyyy HH:mm:ss") & vbCrLf & _

            '            "Procedure: " & strProcedure & vbCrLf & _

            '            "Application: " & strAppName & vbCrLf & _

            '            "Error Message: " & ex.Message & vbCrLf & vbCrLf

            'My.Computer.FileSystem.WriteAllText(strCurPath + "\" + strErrorLogFile, strErrorMsg, True)

        End Try

    End Sub

    Protected Sub CreateReport(ByVal strSql As String)

    End Sub

    Protected Sub CreateReport2(ByVal strSQL As String)

        Dim OrConn As Oracle.ManagedDataAccess.Client.OracleConnection

        Dim OrCmd As Oracle.ManagedDataAccess.Client.OracleCommand

        Dim OrDa As Oracle.ManagedDataAccess.Client.OracleDataAdapter

        Dim OrCB As Oracle.ManagedDataAccess.Client.OracleCommandBuilder

        Dim Rpt1 As ReportDocument

 

 

        OrConn = New Oracle.ManagedDataAccess.Client.OracleConnection()

 

 

        If IsNothing(Rpt1) Then

            Rpt1 = New ReportDocument

        End If

 

 

        If OrConn.State <> Data.ConnectionState.Open Then

            'Connection string using ODBC

            'OrConn.ConnectionString = "DATA SOURCE=GTRANS01;PERSIST SECURITY INFO=True;USER ID=GADMIN;PASSWORD=GADMINPASS;"

 

 

            'Connection string without using ODBC

            OrConn.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=999.8.7.65)(PORT=999)))(CONNECT_DATA=(SERVICE_NAME=Z99)));User Id=user;Password=password;"

 

 

            OrConn.Open()

        End If

 

 

        OrCmd = New Oracle.ManagedDataAccess.Client.OracleCommand(strSQL, OrConn)

        OrCmd.CommandType = Data.CommandType.Text

        OrDa = New Oracle.ManagedDataAccess.Client.OracleDataAdapter(OrCmd)

 

 

        OrCB = New Oracle.ManagedDataAccess.Client.OracleCommandBuilder(OrDa)

 

 

        Dim dsData As New Dataset1()

        dsData.DataSetName = "PlexHShipmentYMSumData"

        OrDa.Fill(dsData)

 

 

        Label3.Text = "Dataset has " & dsData.Tables(0).Rows.Count & " records."

 

 

        Rpt1.Load(Server.MapPath("PlexHShipmentYWSumReport_2.rpt"))

        Rpt1.SetDatabaseLogon("user", "password")

        Rpt1.SetDataSource(dsData.Tables(0))

 

 

        CrystalReportViewer1.ReportSource = Rpt1

 

 

    End Sub

End Class


Viewing all articles
Browse latest Browse all 8695

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>