2009-04-25 118 views

回答

0

一个可能的库iTextSharp。显然iText是一个很大的交易,但是在需求上与iTextSharp一起工作时我并没有真正看到它,但那是多年前的事情。

-2
protected void btnReport_Click(object sender, EventArgs e) 

{ 

    showReport(); 

} 

private void showReport() 

{ 

    DataTable dat = Reports.getPartyWiseJobStatusReport(Convert.ToInt16(ddlDivName.SelectedValue), Convert.ToInt16(ddlJobGroup.SelectedValue), Convert.ToInt16(ddlProjectStatus.SelectedValue)); 

    ReportDocument rptdoc = new ReportDocument(); 

    string path = Server.MapPath("~/Reports/rptPartyWiseJobStatus.rpt"); 

    rptdoc.Load(path); 

    rptdoc.SetDataSource(dat); 

    //rptdoc.SetParameterValue(0, ddlDivName.SelectedItem.Text); 
    //ExportOptions exportOpts1 = rptdoc.ExportOptions; 
    rptdoc.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat; 

    rptdoc.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile; 

    rptdoc.ExportOptions.DestinationOptions = new DiskFileDestinationOptions(); 

    ((DiskFileDestinationOptions)rptdoc.ExportOptions.DestinationOptions).DiskFileName = Server.MapPath("~/Reports/rptPartyWiseJobStatus.pdf"); 

    rptdoc.Export(); 

    rptdoc.Close(); 

    rptdoc.Dispose(); 

    Response.ClearContent(); 

    Response.ClearHeaders(); 

    Response.ContentType = "application/pdf"; 

    Response.AppendHeader("Content-Disposition", "attachment; filename=rptPartyWiseJobStatus.pdf"); 

    Response.WriteFile("~/Reports/rptPartyWiseJobStatus.pdf"); 

    Response.Flush(); 

    Response.Close(); 

    File.Delete(Server.MapPath("~/Reports/rptPartyWiseJobStatus.pdf")); 

} 

公共静态数据表getPartyWiseJobStatusReport(Int16的DivisionID,Int16的JobGroup,Int16的ProjectStatus)

{ 串_procName = “sp_T_Proposal_SelectPartyWiseJobStatus”;

DataTable dt1 = new DataTable(); 

    Database objDatabase = DatabaseFactory.CreateDatabase(); 

    DbCommand objDbCommand = objDatabase.GetStoredProcCommand(_procName); 

    objDatabase.AddInParameter(objDbCommand, "@DivisionID", DbType.Int16, DivisionID); 

    objDatabase.AddInParameter(objDbCommand, "@JobGroup", DbType.Int16, JobGroup); 

    objDatabase.AddInParameter(objDbCommand, "@ProjectStatus", DbType.Int16, ProjectStatus); 

    using (IDataReader dr = objDatabase.ExecuteReader(objDbCommand)) 

    { 

     dt1.Load(dr); 

    } 

    return dt1; 

} 
+2

唯一代码的答案是很难理解,当有人试图真正想办法的,而不是仅仅“告诉我德codez”。 – 2012-09-24 18:03:12