Merhaba arkadaşlar bugün işinize çok yarayacak bir kod örneği vereceğim. Bugünkü konumuz Reporting service(.rdl) le yapılmış bir raporu pdf çevirmek. Bu işlemi yapmamdaki amaç Blackberry veya benzer bazı PDA’ lerle Ms crm den Reporting service’le yapılmış bir raporu çektiğimizde bunu göstermeyecektir Bu raporu pdf çevirdiğimizde sorunsuz bir şekilde şeklinde çalışacaktır. Bu konuda fazla ayrıntıya girmeyeceğim. Size bu işlemi nasıl yapacağınızı kısaca anlatacağım. İlk olarak yeni bir Reports Application uygulaması açın. Bu uygulamayı ihtiyacınıza göre şekilendirin ve alacağı parameterleri yazın. Daha sonra yeni bir .aspx uygulaması açın ve page’in load’una aşağıdaki kodu ekleyin. Uygulamanıza ReportExecution2005.wsdl web service kısmına RSWebReference adıyla ekleyin. Son olarak Ms crm’e bir button ile yaptığınız aspx sayfasını ekleyin.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using RSWebReference;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string oId = Request.QueryString["oId"].ToString();
ReportExecutionService rs = new ReportExecutionService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Render arguments
byte[] result = null;
string reportPath = "/Report_Project/Yeni açtığımız raporun adı";//rapaorun bulunduğu path
string format = "PDF";
string historyID = null;
//rapor uygulmamıza bir parametre yollayalım. İsterseniz aynı şekilde birden fazla parametre yollayabilirsiniz.
ParameterValue[] parameters = new ParameterValue[1];
parameters[0] = new ParameterValue();
parameters[0].Name = "rapordaki parametrenin adı";//
parameters[0].Value = oId;
string encoding;
string mimeType;
string extension;
Warning[] warnings = null;
string[] streamIDs = null;
ExecutionInfo execInfo = new ExecutionInfo();
ExecutionHeader execHeader = new ExecutionHeader();
rs.ExecutionHeaderValue = execHeader;
execInfo = rs.LoadReport(reportPath, historyID);
String SessionId = rs.ExecutionHeaderValue.ExecutionID;
rs.SetExecutionParameters(parameters, "tr-TR");
result = rs.Render(format, null, out extension, out encoding, out mimeType, out warnings, out streamIDs);
Response.ClearContent();
Response.AppendHeader("content-length", result.Length.ToString());
Response.ContentType = "application/pdf";
Response.BinaryWrite(result);
Response.Flush();
Response.Close();
}
}
Umarım işinize yarar. Gelecek yazımda görüşmek üzere...
Hiç yorum yok:
Yorum Gönder