【问题标题】:Report Output Export File Name Issue in CRM 4.0CRM 4.0 中的报告输出导出文件名问题
【发布时间】:2009-02-28 10:40:06
【问题描述】:

我们最近将 CRM 系统从 3.0 升级到了 4.0。从此我们就

我们的报告有问题。

每当我们将报告导出为 excel 格式时,在

中创建的文件

CRM 4.0 的名称是一些“GUID”.xls。不只是文件名,工作表

contianing 输出也有 GUID 作为名称。这适用于其他

格式也(输出文件名包含 GUID)。

我可以将重命名文件另存为其他内容。但是我们有订阅

在我们的大多数报告中,将报告的 excel 输出发送到一组

的人。

如果我可以将报告上传到,而不是从 CRM 4.0 上传 RDL

其他一些 SSRS 文件夹并提供链接,它将起作用。但我们不想这样做

它。

谁能帮我解决这个问题?

谢谢

【问题讨论】:

    标签: reporting-services report dynamics-crm dynamics-crm-4


    【解决方案1】:

    不确定,但可以尝试创建custom render extention for Excel。按照this comment 的建议更改文章中的渲染方法,唯一的区别 - 使用 excel 格式:

    public bool Render(Report report, 
      NameValueCollection reportServerParameters, 
      NameValueCollection deviceInfo, NameValueCollection clientCapabilities, 
      EvaluateHeaderFooterExpressions evaluateHeaderFooterExpressions, 
      CreateAndRegisterStream createAndRegisterStream)
    {
        string strUri = string.Empty;
        strUri += 
          "http://localhost/Reports/Reserved.ReportViewerWebControl.axd";
        strUri += "?ReportSession=" + reportServerParameters["SessionID"];
        // Here you can check the name of report provided to viewer for export. 
        // If it's incorrect, you may extend method to set the right name.
        strUri += "&FileName=" + report.Name;  
        strUri += "&ControlId=" + Guid.Empty;
        strUri += "&Culture=" + 
          CultureInfo.CurrentCulture.LCID.ToString(
            CultureInfo.InvariantCulture);
        strUri += "&UICulture=" + 
          CultureInfo.CurrentUICulture.LCID.ToString(
            CultureInfo.InvariantCulture);
        strUri += "&ReportStack=1";
        strUri += "&OpType=Export";
        strUri += "&ContentDisposition=OnlyHtmlInline";
        strUri += "&Format=MHTML";
        Stream outputStream = null;
        StreamWriter streamWriter = null;
        try
        {
            //Output to Excel
            outputStream = createAndRegisterStream(report.Name, "xls",
              System.Text.Encoding.UTF8,
            "application/vnd.ms-excel", true, StreamOper.CreateAndRegister);
            streamWriter = new StreamWriter(outputStream);
            //Input
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUri);
            //Credentials
            request.Credentials = System.Net.CredentialCache.DefaultCredentials;
            //Output
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            //Input
            Stream inputStream = response.GetResponseStream();
            StreamReader streamReader = 
              new StreamReader(response.GetResponseStream());
            //Read/Write
            streamWriter.Write(streamReader.ReadToEnd());
        }
        finally
        {
            if (streamWriter != null)
            {
                streamWriter.Flush();
            }
        }
        return false;
    }
    

    您可以将此渲染器添加为新的自定义扩展(然后您必须更改订阅格式)或替换现有的 excel 扩展 - 请参阅 Specifying Rendering Extension Parameters in Configuration Files

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多