2009-04-25 7 views

Répondre

0

Une bibliothèque est possible iTextSharp. Apparemment, iText est une affaire énorme, mais je ne l'ai pas vraiment vu en travaillant avec iTextSharp sur une exigence, mais c'était il y a des années.

0

Vous avez plusieurs options open source here.

-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")); 

} 

statique DataTable getPartyWiseJobStatusReport publique (Int16 DivisionID, Int16 JobGroup, Int16 ProjectStatus)

{ chaîne _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

sont difficiles réponses Code seulement à comprendre, quand quelqu'un essaie de comprendre en fait quelque chose, plutôt que de « me montrer Teh codez. –

+0

à nouveau Ce code ne fonctionnerait pas même sur une pâte de copie. –

Questions connexes