水晶报告中未显示世界地图

时间:2019-03-12 10:46:09

标签: crystal-reports reporting crystal-reports-2010

我正在使用Crystal Report生成pdf报告,我想使用Data Map Tool

在C#代码中,我有一个数据集,其中包含地理字段和一些要在地图上显示的值。

    public class CrystalReportViewerPlugIn : ICrystalReportViewer
    {
      private ReportDocument _reportDocument;
      private CrystalReportViewer _crystalReportViewer;

      public void Init(string fileName, DataSet dataSet)
      {
        _reportDocument = new ReportDocument();
        _reportDocument.Load(fileName);
        _reportDocument.SetDataSource(dataSet);
        _crystalReportViewer = new CrystalReportViewer();
        _crystalReportViewer.DisplayToolbar = false;
        _crystalReportViewer.DisplayGroupTree = false;
        _crystalReportViewer.PageToTreeRatio = 4;
        _crystalReportViewer.RefreshReport();
        _crystalReportViewer.ReportSource = _reportDocument;
      }
    }

然后将结果导出到strem:

public MemoryStream GetCrystalReportResults(string rptFileName, DataSet ds)
{
  var crystalReportViewer = new CrystalReportViewerPlugIn();
  crystalReportViewer.PlugIn.Init(rptFileName, ds);
  crystalReportViewer.PlugIn.Control.Visible = true;
  var oStream = crystalReportViewer.PlugIn.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
  var byteArray = new byte[oStream.Length];
  oStream.Read(byteArray, 0, Convert.ToInt32(oStream.Length - 1));
  return new MemoryStream(byteArray);
}

该流将导出为pdf:

protected virtual IHttpActionResult FinalizeExport(MemoryStream data, string name)
{
  string contentType = "application/octet-stream";
  name = name.GetCleanFileName();

  var response = Request.CreateResponse(HttpStatusCode.OK);
  response.Content = new StreamContent(data);
  response.Content.Headers.Remove("content-type");
  response.Content.Headers.Add("content-type", contentType);
  response.Content.Headers.Remove("x-filename");
  response.Content.Headers.Add("x-filename", name);
  response.Content.Headers.Add("Content-Disposition", "inline; filename=\"" + name + "\"");
  response.Content.Headers.Add("Content-Length", data.Length.ToString());

  return ResponseMessage(response);
}

未显示世界地图,您对此问题有保姆的想法吗?

1 个答案:

答案 0 :(得分:0)

Crystal报表的地图仅在32位环境中有效。