星期四, 9月 13, 2018

[SSRS] 透過 ReportViewer 變更文字字型

論壇問題,基本上一開始誤會意思,不過既然都練習了,那就筆記一下囉,:p

練習目標是透過 ReportViewer 傳入指定字型來變更報表文字字型

[SSRS] 透過 ReportViewer 變更文字字型-10


SSRS 報表製作

建立一個 FontVar 變數,並指定預設值為微軟正黑體

[SSRS] 透過 ReportViewer 變更文字字型-1

[SSRS] 透過 ReportViewer 變更文字字型-2

設定 TextBox 屬性 => 一般 => 值的運算式
= IIF(string.IsNullOrEmpty(Parameters!FontVar.Value),"微軟正黑體",Parameters!FontVar.Value) + ":~楓花雪岳~"

[SSRS] 透過 ReportViewer 變更文字字型-3

[SSRS] 透過 ReportViewer 變更文字字型-9

設定 TextBox 屬性 => 字型 => 字型運算式

[SSRS] 透過 ReportViewer 變更文字字型-4

[SSRS] 透過 ReportViewer 變更文字字型-5

SSRS 報表 Layout

[SSRS] 透過 ReportViewer 變更文字字型-11

ReportViewer 呈現報表
  • 透過 WinForm 來表示,拖曳 ReportViewer 來使用,並直接指定報表
  • 建立一個 Button 來傳入指定字型參數進入 SSRS 的 FontVar 變數
using System.Windows.Forms;

namespace ReportLoadFont
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.reportViewer1.RefreshReport();
        }

        private void btnChangeFontFamily_Click(object sender, EventArgs e)
        {
            string FontFromCSharp = "新細明體";
            // 設定參數,ReportParameter 的第一個參數,要和報表內設定的參數名稱一致喔
            ReportParameter para = new ReportParameter("FontVar", FontFromCSharp);
            reportViewer1.LocalReport.SetParameters(new ReportParameter[] { para });
            // Render 報表
            reportViewer1.RefreshReport();
        }
    }
}
WinForm Layout

[SSRS] 透過 ReportViewer 變更文字字型-6

執行觀察效果

執行該 WinForm,因為 ReportViewer 有指定報表,一執行報表就 Render 出來啦

[SSRS] 透過 ReportViewer 變更文字字型-7

點擊 Button 把新細明體送進去,就可以發現字型變化啦

[SSRS] 透過 ReportViewer 變更文字字型-8

沒有留言:

張貼留言