2009-04-25 24 views

答えて

2

iText#は、同様のJavaプロジェクトに基づいています。

http://itextsharp.sourceforge.net/

あなたは、これに連動してCrystal Reportsの必要はありません。あなたは、より堅牢な(しかし高価な)何かが必要な場合は、私は複雑なPDFファイルを大成功にこれを使用しています

http://www.pdflib.com/

0

一つの可能​​なライブラリがiTextSharpです。どうやらiTextは大したことですが、iTextSharpを要件に使って作業しているときは実際には見えませんでしたが、それは数年前のことでした。

0

あなたはいくつかのオープンソースの選択肢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")); 

} 

パブリック静的データテーブル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

コードのみの答えは単に「tehのcodez」私を見るのではなく、理解することは困難です。 –

+0

このコードは再びさえコピーペーストでは動作しません。 –

関連する問題