renderrpt.cs
来自「< SQL Server2005程序设计>」· CS 代码 · 共 168 行
CS
168 行
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CS_Forms.reportServer;
using CS_Forms.reportExecution;
using System.IO;
namespace CS_Forms
{
public partial class RenderRpt : Form
{
ReportingService2005 rptSrvr = new ReportingService2005();
ReportExecutionService rptExec = new ReportExecutionService();
CatalogItem[] catItem;
String RenderPath = "c:\\";
String rType = "HTML4.0";
String rExt = ".HTML";
public RenderRpt()
{
InitializeComponent();
}
private void RenderRpt_Load(object sender, EventArgs e)
{
rptSrvr.Credentials = System.Net.CredentialCache.DefaultCredentials;
rptSrvr.Url = "http://localhost/reportserver/reportservice2005.asmx";
TreeNode topNode = null;
int topNodeIndex = 0;
catItem = rptSrvr.ListChildren("/", true);
foreach (CatalogItem item in catItem)
{
TreeNode newNode = new TreeNode(item.Name);
switch (item.Type)
{
case ItemTypeEnum.DataSource:
TreeView1.Indent = 1;
break;
case ItemTypeEnum.Folder:
TreeView1.Indent = 0;
topNode = newNode;
break;
case ItemTypeEnum.LinkedReport:
TreeView1.Indent = 1;
break;
case ItemTypeEnum.Model:
TreeView1.Indent = 1;
break;
case ItemTypeEnum.Report:
TreeView1.Indent = 1;
break;
case ItemTypeEnum.Resource:
TreeView1.Indent = 1;
break;
case ItemTypeEnum.Unknown:
TreeView1.Indent = 1;
break;
}
if (topNode == newNode)
{
topNodeIndex = TreeView1.Nodes.Add(newNode);
}
else if (topNode != null)
{
TreeView1.Nodes[topNodeIndex].Nodes.Add(newNode);
}
}
TextBox2.Text = RenderPath;
}
private void btnGenerate_Click(object sender, EventArgs e)
{
string renderedFile = RenderPath + TextBox1.Text;
if (CheckBox1.Checked)
{
renderedFile += rExt;
}
Label2.Text = "";
if (TextBox1.Text != "" && TreeView1.SelectedNode.Level > 0)
{
DateTime ctime = DateTime.Now;
renderRpt("/" + TreeView1.SelectedNode.FullPath.Replace("\\", "/"),renderedFile,rType);
//renderRpt("/" & Replace(TreeView1.SelectedNode.FullPath.ToString, "\\", "/"), renderedFile, rType);
Label2.Text = String.Format("Time to render: {0:0.00} Seconds", (DateTime.Now - ctime).TotalSeconds);
}
else if (TextBox1.Text == "")
Label2.Text = "A file name must be specified";
else
Label2.Text = "A report must be selected";
}
private void renderRpt(string fullPath, string outputFile, string RenderType)
{
rptExec.Credentials = System.Net.CredentialCache.DefaultCredentials;
rptExec.Url = "http://localhost/reportserver/reportexecution2005.asmx";
CS_Forms.reportExecution.Warning[] warn;
string[] streamid;
string ext = "";
string mime = "";
string encode = "";
ExecutionInfo execInfo = new ExecutionInfo();
ExecutionHeader execHeader = new ExecutionHeader();
rptExec.ExecutionHeaderValue = execHeader;
string SessionId = rptExec.ExecutionHeaderValue.ExecutionID;
execInfo = rptExec.LoadReport("/chap21" + fullPath, null);
Byte[] rslt = rptExec.Render(RenderType, "", out ext, out mime, out encode, out warn, out streamid);
FileStream stream = File.Create(outputFile, rslt.Length);
stream.Write(rslt, 0, rslt.Length);
stream.Close();
}
private void Button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.Desktop;
FolderBrowserDialog1.Description = "Select an output location";
FolderBrowserDialog1.ShowDialog();
RenderPath = FolderBrowserDialog1.SelectedPath.ToString();
TextBox2.Text = RenderPath;
}
private void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
RadioButton Rbutton = (RadioButton)sender;
if (Rbutton.Checked)
{
switch (Rbutton.Text.ToUpper())
{
case "HTML":
rType = "HTML4.0";
rExt = ".HTML";
break;
case "EXCEL":
rType = "Excel";
rExt = ".XLS";
break;
case "PDF":
rType = "PDF";
rExt = ".PDF";
break;
case "XML":
rType = "XML";
rExt = ".XML";
break;
case "CSV":
rType = "CSV";
rExt = ".CSV";
break;
case "IMAGE":
rType = "IMAGE";
rExt = ".TIFF";
break;
}
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?