原來程式使用的Word和Excel來做一些匯出資料和列印的操作,可是運行一段時間發現總有一些使用者的電腦上安裝的Office有些問題,還需要重新安裝調整造成一些額外的維護工作。
這裡通過簡單嘗試使用FastReport來代替Office,將一些需要匯出的資料以報表的形式產生,需要的話可以另存成excel格式,這樣就能減少一些不必要的麻煩。
程式裡將串連資訊從報表中提出來,避免報表檔案的不安全,另外這個串連資訊可以單獨做到設定檔中即可。
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace 測試FastReport{ public partial class Form1 : Form { private DataSet data; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string conStr = "Server='127.0.0.1';Initial catalog=WaiMaoJinKou;UID='sa';PWD='12345';Max Pool Size=512;"; try { SqlConnection con = new SqlConnection(conStr); con.Open(); SqlCommand sqlcmd = new SqlCommand(); sqlcmd.Connection = con; sqlcmd.CommandText = @"SELECT * FROM [Event] "; SqlDataAdapter sda = new SqlDataAdapter(sqlcmd); data = new DataSet(); sda.Fill(data); con.Close(); sda.Dispose(); } catch (Exception err) { MessageBox.Show(err.StackTrace); } try { FastReport.Report report = new FastReport.Report(); //string filename = Application.StartupPath + @"\FrxReport\qualityEvent.frx"; string filename = @"D:\qualityEvent.frx"; report.Load(filename); report.RegisterData(data); report.GetDataSource(data.Tables[0].TableName).Enabled = true; report.Show(); } catch (Exception err) { MessageBox.Show(err.Message); } } }}
試了幾次,只有使用.Net4.0的時候,FastReport才會被識別出來,所以開發的項目也需要重新設定一下,重新安裝.Net4.0的架構套件。