FastReport 在C#中的應用-Learning_1

1.報表模板設計

image

2.c# 代碼

using FastReport;
using Oracle.ManagedDataAccess.Client;
using Sunny.UI;
using System;
using System.Data;
using System.Windows.Forms;
namespace WinPrint
{
    public partial class Form1 : UIForm
    {
        private DataSet ds = null;
        public Form1()
        {
            InitializeComponent();
            ds=new DataSet();
        }

        private void uiButton1_Click(object sender, EventArgs e)
        {
            Report rp=new Report();
            rp.Clear();
            rp.Load(@"c:\reports\rp1.frx");  //加載報表模板
            rp.RegisterData(ds,"tb1",true);  //註冊數據集  第一個參數是數據集  第二個參數是使用數據集中那個表,這裏是 tb1  第三個參數是是否使用數據集ds中的所有表
            DataBand band=rp.FindObject("Data1") as DataBand;  //查找報表中的對象Data1 即DataBand
            band.DataSource = rp.GetDataSource("tb1"); //設置DataBand 的數據集爲當前報表註冊的數據集中的表(並非具體的表,可以是一個查詢或者視圖)
            if (rp.Prepare()) {  //準備報表
                rp.ShowPrepared();  //顯示報表
            }

        }

        private void uiButton2_Click(object sender, EventArgs e)
        {
            string connStr = "Data Source=localhost:1521/ORCL;User Id=**;Password=****";
            using (OracleConnection conn = new OracleConnection(connStr)) {
                try {
                    conn.Open();
                    OracleCommand cmd= conn.CreateCommand();
                    cmd.Parameters.Clear();
                    cmd.CommandType=CommandType.StoredProcedure;
                    cmd.CommandText = "mypackage.pr_getEmployee";
                    cmd.Parameters.Add("res", OracleDbType.RefCursor, 50, ParameterDirection.Output);
                    OracleDataAdapter oda=new OracleDataAdapter(cmd);
                    oda.Fill(ds, "tb1"  );
                    uiDataGridView1.DataSource = ds.Tables[0];  
                }
                catch(Exception ex) {
                    MessageBox.Show(ex.Message);
                }   
            }
        }
    }
}

注意事項

rp.RegisterData(ds,"tb1",true) 這裏如果缺省了第三個參數,就會導致報表只顯示第一行,雖然這參數是控制數據DataSet中所有的表是否啓用

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章