簡體   English   中英

SSRS報告服務器使用C#將報告發送到Web客戶端

[英]SSRS Report Server sending report to web client using C#

https://msdn.microsoft.com/en-us/library/ms252172.aspx

我正在使用該文章中的render方法

public void Render(
    string format,
    string deviceInfo,
    CreateStreamCallback createStream,
    out Warning[] warnings
)

渲染方法調用CreateStream

private Stream CreateStream(string name, string fileNameExtension, 
      Encoding encoding, string mimeType, bool willSeek)
    {
        Stream stream = new FileStream(name + "." + fileNameExtension, 
          FileMode.Create);
        m_streams.Add(stream);
        return stream;
    }

m_streams = new List<Stream>();
report.Render("Image", deviceInfo, CreateStream, out warnings);

foreach (Stream stream in m_streams)
  stream.Position = 0;

如果我希望CreateStream方法使用塊的方式寫一個http響應對象,我如何實現它?

除了迭代之外,這里的foreach方法還做什么?為什么將stream.Position設置為0?

由於report.Render方法返回一個void並向CreateStram進行回調,如果圖像很大,我如何遍歷這些塊並將二進制塊返回到http響應對象?

您可以使用RenderStream的結果作為byte []做任何事情,對。 我不知道為什么將位置設置為上面的0,但是,您可以將圖像寫入臨時文件夾,例如:

var image = _service.RenderStream("HTML4.0", streamID, null, out imageEncoding, out mimeType);
File.WriteAllBytes(Path.Combine(_physicalTempFolder,streamID),image);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM