2011-02-07 6 views
0

データベースに対してSQLクエリを実行するコンソールアプリケーションを作成する必要があります。アプリケーションはこの情報を受け取り、レポートにコンパイルし、このレポートをpdfにエクスポートした後、pdfレポートに電子メールを送信しなければなりません。 (。このすべてが自動的に行われなければならない - 私は、特定の日時にこのアプリケーションを実行するには、Windowsスケジューラを使用するつもりだ)コンソールアプリケーションでSQLレポートをコンパイル

ここ

私がこれまで持っているものです:私はどれだけ知っている必要がある

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data.Sql; 
using System.Data.SqlClient; 
using System.IO; 
using System.Net.Mail; 

namespace SqlQueryReports 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     SqlConnection dataConnection = new SqlConnection(); 
     try 
     { 
      dataConnection.ConnectionString ="Data Source=MY-PC\\SQLEXPRESS;Initial Catalog=mydb;Integrated Security=True;Pooling=False"; 
      dataConnection.Open(); 

      SqlCommand dataCommand = new SqlCommand(); 
      dataCommand.Connection = dataConnection; 

      dataCommand.CommandText = "SELECT Product_id,Product_name,Product_price FROM Product"; 
      Console.WriteLine("About to execute: {0}\n\n", dataCommand.CommandText); 

      SqlDataReader dataReader = dataCommand.ExecuteReader(); 

      // Compile data into Report 
      // Export Report to .pdf 
      // Email .pdf report 

      dataReader.Close(); 

      Console.WriteLine("DONE"); 
     } 
     catch(SqlException e) 
     { 
      Console.WriteLine(e.Message); 
     } 

     finally 
     { 
      dataConnection.Close(); 
     } 

    }  
} 
} 

to:

  1. この情報でレポートをコンパイルします。
  2. このレポートをPDFにエクスポート
  3. 電子メールpdfレポート。

ありがとうございます!

答えて

0

DevExpressや他のサードパーティーのレポートエンジンからXtraReportsを使用できるユーザーフレンドリーなデザイナーにレポートをうまくデザインしたい場合は、通常、DataSourceをバインドしてpdf(またはExcel 、pngなど...)。

すべてを自分で処理したい場合は、dataReaderのフィールドと列でグリッドルーピングを文字通り作成するテーブルなどでHTMLドキュメントの書式設定を行うことができます。 pdfドキュメントを作成し、最後に.NET FrameworkのSmtpメーリングを使用して電子メールでpdfを送信することができます。

0

私はまったく同じタスクを基本的に与えられているので、本当にあなたはこの1つをもっと入力して欲しいです。これまでに私が見つけたことは、助けになるかもしれません。サンプルのPDFエクスポート(ソース:ASPスニペット)...

protected void ExportToPDF(object sender, EventArgs e) 
{ 
    //Get the data from database into datatable 
    string strQuery = "select CustomerID, ContactName, City, PostalCode"  + 
     " from customers"; 
    SqlCommand cmd = new SqlCommand(strQuery); 
DataTable dt = GetData(cmd); 

//Create a dummy GridView 
GridView GridView1 = new GridView(); 
GridView1.AllowPaging = false; 
GridView1.DataSource = dt; 
GridView1.DataBind(); 

Response.ContentType = "application/pdf"; 
Response.AddHeader("content-disposition", 
    "attachment;filename=DataTable.pdf"); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
StringWriter sw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(sw); 
GridView1.RenderControl(hw); 
StringReader sr = new StringReader(sw.ToString()); 
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f); 
HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
pdfDoc.Open(); 
htmlparser.Parse(sr); 
pdfDoc.Close(); 
Response.Write(pdfDoc); 
Response.End(); 
関連する問題