【问题标题】:Crystal Report 2011 Report/SQL Server 2008/ASPX IssuesCrystal Report 2011 报表/SQL Server 2008/ASPX 问题
【发布时间】:2013-04-16 19:47:46
【问题描述】:

我有一个配置了 ColdFusion 10 的网络服务器。在我用 ColdFusion 构建的应用程序中,我想部署一个需要用户输入参数的 Crystal Report。我在 Crystal Reports 2011 中构建了报表。报表在 Designer 中工作。

然后我使用 Recrystallize 生成报告附带的 ASPX、ASPX.VB 和 Web.config 页面。

我不得不调整 IIS 设置以适应 ColdFusion 需要启用 32 位应用程序而 Crystal Reports 组件需要禁用 32 位应用程序的事实,方法是将 Crystal Report 和页面放在它们自己的文件夹中,将它们转换为一个应用程序并将该应用程序设置为与 ColdFusion 应用程序不同的应用程序池。

报表查看器最初打开时会提示输入报表所基于的参数。当您输入参数并单击“确定”时,报告将出现错误并显示以下对话框:无法打开连接。无法打开连接。 [带有报告名称]。

我不知道从哪里开始解决这个问题。

您能提供的任何帮助将不胜感激。

【问题讨论】:

  • 添加到这个问题的描述中。如果我创建一个静态报告并使用 Recrystallize 发布该报告,它将毫无问题地发布。此外,我确保笔记本电脑上的 ODBC 连接器与网络服务器上的连接器相同(即 SQL Server Native Client 10)。名字是一样的。我认为如果将一个连接器设置为 sqlservername\sqlserverinstance 与 sqlserver\sqlserverinstance 的 IP 地址,则可能是这样,但这没有任何影响。
  • 网络服务器上的 ODBC 数据源是否验证/测试正常?是否能够从数据源配置连接。

标签: coldfusion crystal-reports coldfusion-10


【解决方案1】:

这是aspx文件.....

 <asp:UpdatePanel ID="updpnlReport" runat="server">
        <ContentTemplate>
            <CR:CrystalReportViewer ID="crvAccountReportParameter" runat="server"             
                oninit="crvAccountReportParameter_Init" 
                EnableParameterPrompt="False" HasToggleParameterPanelButton = "false" HasCrystalLogo ="False"/>
        </ContentTemplate>
    </asp:UpdatePanel>

这是.cs文件…………

   protected void btnSubmit_Click(object sender, EventArgs e)
    {
        LoadData();

    }
    protected void LoadData()
    {

        string pstrType;
        pstrType = Request.QueryString["Type"];

        string strCompanyName = objSession.SelCompanyName;
        string strBranchName = objSession.SelBranchName;

        string strHeading = "";       
        DataSet dsData = null;

        dsData = objAccountReportBAL.getAccountRegister(Convert.ToInt16(objSession.FyId), int.MinValue, long.MinValue, Convert.ToDateTime(RadDtpFromDate.SelectedDate), Convert.ToDateTime(RadDtpToDate.SelectedDate), pstrType);
        dsData.Tables[0].TableName = "Account_Trn_v";

        if (pstrType == "JV")
        {
            strHeading = "Journal Voucher Register Report";
            rptDoc.Load(Server.MapPath("~/ReportCrystal/Account/Detail/GeneralVoucharRegister.rpt"));
        }


        rptDoc.SetDataSource(dsData.Tables[0]);

        rptDoc.SetParameterValue("@CompanyName", objSession.SelCompanyName);
        rptDoc.SetParameterValue("@BranchName", objSession.SelBranchName);
        rptDoc.SetParameterValue("@Heading", strHeading);
        rptDoc.SetParameterValue("@Stdate", RadDtpFromDate.SelectedDate);
        rptDoc.SetParameterValue("@EnDate", RadDtpToDate.SelectedDate);

        crvAccountReportParameter.ReportSource = rptDoc;         
        crvAccountReportParameter.DataBind();      

    }

【讨论】:

  • 我讨厌如此密集,但是该代码将在 ASPX 文件中的哪个位置,我没有 CS 文件可以输入该代码。我有一个 ASPX 文件、ASPX.VB 文件和 RPT 文件。
猜你喜欢
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
相关资源
最近更新 更多