原来程序使用的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的框架包。