2009-03-11 12 views
1

Bir ASP.NET sayfasında, bir kullanıcı Crystal Report Viewer'dan (CRV) bir raporu görüntülediğinde, raporu dışa aktarabilme (örneğin PDF'ye)). Dışa aktarma için varsayılan dosya adı, CRV'nin kimliğidir.kristal rapor görüntüleyicide varsayılan dışa aktarma adını nasıl belirlersiniz

Varsayılan adı, raporun parametrelerini temel alan bir şey olacak şekilde ayarlamak istiyorum. (örneğin "2008 için Satışlar").

Sayfanın başına bir bağlantı ekleyebileceğimi biliyorum ve sonra PDF'yi kod içinde oluşturduğum bir çözümle tarayıcımın içine aktarabilirdim, ancak bir yolu olabileceğini umuyorum. Crystal Reports'taki bu doğallık.

+0

Rapordaki DocumentName özelliğinin olduğuna inanıyorum – sam

cevap

0

Rapor oluşturmak için Visual Studio 2008 kullanıyorsanız, DefaultName özelliğinizi eklemek için oluşturulan ReportClass öğesini düzenleyebilirsiniz.

3
// You could pass the parameters to the web page 
// where you have theCrystalReportViewer control 
protected void Page_Load(object sender, EventArgs e) 
{ 
    string reportId = Request["rid"]; 
    string reportTitle = Request["rtitle"]; 

    ReportDocument reportDocument = HttpContext.Current.Session[reportId] as ReportDocument; 
    this.CommonCrystalReportViewer.ReportSource = reportDocument; 
    this.CommonCrystalReportViewer.DataBind(); 

    // Set the default export file name for the report. 
    this.CommonCrystalReportViewer.ID = reportTitle; 
} 
0

Doğal olarak, ReportViewer sınıfı yerine kullanılacak bir ReportExporter sınıfı vardı ancak artık desteklenmiyor. Benzer bazı üçüncü bölümler vardır.

Bu kod örnekleri kullanın:

string myParamName="XXX"; 
object myParamValue; 
foreach (ParameterField field in reportDocument.ParameterFields) 
      { 
       if (string.Compare(field.Name.TrimStart('@'), myParamName, true) == 0) 
        myParamValue= field.CurrentValues; 
      } 

İhracat rapor adı gerekli kullanarak (başka bir yerde Oturum, QueryString veya zaten yoksa) raporundan

Get parametresi değeri

string myReportName = "sales for " + myParamValue.ToString() + ".pdf"; 
try 
    { 
    reportDocument.ExportToHttpResponse( 
       ExportFormatType.PortableDocFormat 
       ,Response, true, myReportName); 
    } 
catch (System.Threading.ThreadAbortException) 
    { 
     //System.Threading.ThreadAbortException is thrown 
     //because, Response.End is called internally in ExportToHttpResponse method: 
    } 
-1
protected void Page_Init(object sender, EventArgs e) { 
    ... 
    // Set the default export file name for the report. 
    this.mainReportViewer.ID = reportTitle; 
    ... 
} 

O reportViewerdeğiştirmek zorunludur Page_Init işlevindeişlevi, aksi halde çalışmaz.

İlgili konular