locked
ASPX Crystal Reports next page automation RRS feed

  • Question

  • Hello all,
     
    First let me say I know that there are probably hundreds of postings on the net that refer to asp and CR. I have looked for about a week trying things to no avail. If you have a web page that you think will help I would be very happy to check it out, but I have google'd this subject over and over again.
     
    I am working on a asp/C# project that will take any crystal report and display it on a web page, that part is simple enough. In this project I am looking for simplicity, something that will run possible for days/weeks on end on any type of browser or OS. I am using CR XIR2, asp.net 4.0 and VS2010. My project will display a report and refresh the data and report on a set time period. I do not have a dataset in my project. The report connects directly to the SQL server and pulls the data. I have gotten the automated page refresh working with some javascript on the asp page, but I am having trouble automating the next page display. I am looking to rotate through the pages every two minutes or so and refresh the entire report every 10 mins or so. Here is my asp page:
     

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
    <%@ Register TagPrefix="CR" Namespace="CrystalDecisions.Web" Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" %>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
        <script type="text/javascript">
            function timeClick() {
                var t = setTimeout("clickButton()", 180000);
            }
    
            function clickButton() {
                var button = document.getElementById('RefreshButton');
                button.click();
                timeClick();
            }
    </script>
    
    
    
    <script type="text/javascript">
        function refreshClick() {
            var t = setTimeout("clickButton()", 180);
        }
    
        function clickButton() {
            var button1 = document.getElementById('IconImg_CrystalReportViewer1_toptoolbar_nextPg');
            button1.click();
            refreshClick();
        }
    </script>
    
    
    
    <script type="text/C#" runat="server">
        public void CommandBtn_Click(object sender, CommandEventArgs e)
        {
            CrystalReportViewer1.RefreshReport();
        }
    </script>
    
    
    <%--<script type="text/C#" runat="server">
        public void Commandrefresh_Click(object sender, CommandEventArgs e)
        {
            CrystalReportViewer1.Navigate
        }
    </script>--%>
    
    
    </head>
    <body>
    <script type="text/javascript">
        window.onload = timeClick;
    </script>
        <form id="form1" runat="server">
        <div style="display: none;">
            <asp:Button ID="RefreshButton" runat="server" onCommand="CommandBtn_Click" />
        </div>
        <div>
            <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True"
                Height="1039px" ReportSourceID="CrystalReportSource1" Width="901px" DisplayStatusbar="False" 
                HasDrilldownTabs="False" HasToggleGroupTreeButton="False" 
                HasToggleParameterPanelButton="False" ToolPanelView="None" />
            <CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
                <Report FileName="CrystalReport1.rpt">
                </Report>
            </CR:CrystalReportSource>
        
        </div>
        </form>
    </body>
    </html>
    

    And here is my code behind (C#):

    using System;
    using System.Data;
    using System.Configuration;
    
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    using CrystalDecisions.Shared;
    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.Web;
    
    public partial class _Default : System.Web.UI.Page 
    {
        private ReportDocument rpt;
    
        private void Page_Init(object sender, EventArgs e)
        {
            ConfigureCrystalReports();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        private void ConfigureCrystalReports()
        {
            rpt = new ReportDocument();
            string reportPath = Server.MapPath("CrystalReport1.rpt");
            rpt.Load(reportPath);
            ConnectionInfo connectionInfo = new ConnectionInfo();
            connectionInfo.DatabaseName = "*****";
            connectionInfo.UserID = "*****";
            connectionInfo.Password = "*****";
            SetDBLogonForReport(connectionInfo, rpt);
            CrystalReportViewer1.ReportSource = rpt;
        }
        private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
        {
            Tables tables = reportDocument.Database.Tables;
            foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
            {
                TableLogOnInfo tableLogonInfo = table.LogOnInfo;
                tableLogonInfo.ConnectionInfo = connectionInfo;
                table.ApplyLogOnInfo(tableLogonInfo);
            }
        }
    }

    Thank you in advance for any help!

    • Moved by Jason Dot Wang Monday, January 21, 2013 6:06 AM This thread is about ASP.NET
    Friday, January 18, 2013 8:04 PM

All replies

  • Hi gchatt,

      Welcome to MSDN Forum Support.

     

      You'll need to post it in the dedicated ASP.Net Forum http://forums.asp.net for more efficient responses, where you can contact ASP.NET experts.

      Sincerely,

      Jason Wang



    Jason Wang [MSFT]
    MSDN Community Support | Feedback to us

    Monday, January 21, 2013 6:05 AM