Fast Report-關連式對話框查詢

Fast Report-關連式對話框查詢

在「Fast Report」中,若用在「AP」,

可以使用它內建的「對話框查詢」做查詢、過濾資料後產生報表,

而「對話框 」的資料可以自行建立連動的「DataSource」或連原報表的「DataSource」。

 

不過,要如何做到關連式對話框查詢呢?

以下有簡單的例子:

DIA

 

我們想做的就是可以先選「年度」、「學期」後,

依「年度」、「學期」的資料再查詢「班級名稱」,

最後利用「班級名稱」的資料查詢「課程名稱」。

 

做法:

1-要建立各自的「DataSource」-「年度」、「學期」、「班級名稱」、「課程名稱」。

2-在「班級名稱」、「課程名稱」的「DataSource」下參數條件,將「年度」、「學期」的值帶入

3-建立不同的「ComboBox」連接「年度」、「學期」、「班級名稱」、「課程名稱」。

年度-ComboBox1、學期-ComboBox2、班級名稱-ComboBox3、課程名稱-ComboBox4

4-在「ComboBox」的事件下「ComboBox3.FillData(); 」即可將產生的資料填入「班級名稱」、「ComboBox4.FillData(); 」即可將產生的資料填入「課程名稱」。

SQL:

ComboBox1
select distinct ClassYear from tClass

ComboBox2
select Description from dbSystem.dbo.tSysCode


ComboBox3
select tCI.ClassName
from tClass tCI
left join tSysCodeTable tST on tST.code=tCI.ClassSemester 
where ClassYear=@p1 and  tST.ClassSemester =@p2

ComboBox4
select tCI.ClassName,tCC.AClassName
from tClassCus tCCS
inner join tClass tCI on tCI.ClassID=tCCS.ClassID
inner join tClassCourses tCC on tCC.SemCourseID=tCCS.SemCourseID
where tCI.ClassName=@p1

CODE

namespace FastReport
{
  public class ReportScript
  {     
    private void ComboBox1_TextChanged(object sender, EventArgs e)
    {
      ComboBox3.FillData(); 
    }
    private void ComboBox2_TextChanged(object sender, EventArgs e)
    {
      ComboBox3.FillData(); 
    }     

    private void ComboBox3_TextChanged(object sender, EventArgs e)
    {
      ComboBox4.FillData(); 
    }
  }
}


 

自我LV~