如何使用ActiveReports動態綁定數據源

在使用ActiveReports報表控件進行在線報表設計的時候,經常會有這樣的需求:設計出的報表,需要加入了固定的字段,但每次需顯示的數據都不一樣,要怎麼做纔可以動態綁定數據源的數據呢?
如何使用ActiveReports動態綁定數據源
下載ActiveReports最新版

其實,通過ActiveReports最新推出的Web端在線報表設計器可以很容易的實現動態綁定數據源操作。ActiveReports在線報表設計器主要使用場景包含:

用拖拽的方式,在Web應用程序和瀏覽器中在線設計報表
直連數據庫、動態數據源綁定
本文將爲您介紹如何使用ActiveReports的在線報表設計器動態綁定數據源。

具體操作步驟

1、 首先通過Visual Studio打開ActiveReports的Web端在線報表設計器,其存儲路徑如下:

如何使用ActiveReports動態綁定數據源

2、 在控制層DataSetsController裏進行一個數據源名稱和數據集字段的設置,簡單說就是創建表結構、表的命名和表對應的字段名稱。

實現代碼如下:

public ActionResult GetDataSetContent(string id)
{
DataSet data1= returndata();
ArData XmlJsonData = new ArData();
XmlJsonData.DataSet = new ArDataSet();
XmlJsonData.DataSet.Name = "DataSet1";
XmlJsonData.DataSet.Query = new ArQuery();
XmlJsonData.DataSet.Query.DataSourceName = "DataSource1";
XmlJsonData.DataSet.Fields = new
ArField[data1.Tables[0].Columns.Count];
foreach (DataColumn drc in data1.Tables[0].Columns)
{
XmlJsonData.DataSet.Fields[drc.Ordinal] = new
ArField(drc.ColumnName, drc.ColumnName, drc.Caption);

      }
        XmlJsonData.DataSource = new ArDataSource();
        XmlJsonData.DataSource.Name = "DataSource1";
      XmlJsonData.DataSource.ConnectionProperties = new

ArConnectionProperties();
XmlJsonData.DataSource.ConnectionProperties.DataProvider =
"DATASET";
string dataSet = JsonHelper.ObjTranJson(XmlJsonData);
return new ContentResult { Content = dataSet, ContentType =
"application/json" };
}
public DataSet returndata()
{
DataTable dt = new DataTable();
dt.Columns.Add("產品編號");
dt.Columns.Add("產品名稱");
dt.Columns.Add("單價");
dt.Columns.Add("庫存量");
dt.Columns.Add("產地");
dt.Rows.Add("A001", "蘋果", 10, 300, "中國");
dt.Rows.Add("A002", "葡萄", 20, 200, "中國");
dt.Rows.Add("A003", "香蕉", 30, 400, "中國");
dt.Rows.Add("A004", "甘蔗", 10, 300, "中國");
dt.Rows.Add("A005", "荔枝", 20, 200, "中國");
dt.Rows.Add("A006", "芒果", 30, 400, "中國");
dt.Rows.Add("A007", "獼猴桃", 110, 300, "中國");
dt.Rows.Add("A008", "檸檬", 210, 200, "中國");
dt.Rows.Add("A009", "栗子", 320, 400, "中國");
dt.Rows.Add("A010", "火龍果", 100, 300, "中國");
dt.Rows.Add("A011", "青芒", 250, 200, "中國");
dt.Rows.Add("A012", "巴旦木", 320, 200, "中國");
dt.Rows.Add("A013", "土豆", 380, 400, "中國");
dt.Rows.Add("A014", "蘋果", 110, 300, "中國");
dt.Rows.Add("A015", "葡萄", 420, 200, "中國");
dt.Rows.Add("A016", "香蕉", 530, 400, "中國");
dt.Rows.Add("A017", "土豆", 380, 400, "中國");
dt.Rows.Add("A018", "蘋果", 110, 300, "中國");
dt.Rows.Add("A019", "葡萄", 420, 200, "中國");
dt.Rows.Add("A020", "香蕉", 530, 400, "中國");
dt.Rows.Add("A021", "蘋果", 10, 300, "中國");
dt.Rows.Add("A022", "葡萄", 20, 200, "中國");
dt.Rows.Add("A023", "香蕉", 30, 400, "中國");
dt.Rows.Add("A024", "甘蔗", 10, 300, "中國");
dt.Rows.Add("A025", "荔枝", 20, 200, "中國");
dt.Rows.Add("A026", "芒果", 30, 400, "中國");
DataSet temp = new DataSet();
temp.Tables.Add(dt);
return temp;
}
[Route("list")]
[HttpGet]
public ActionResult GetDataSetsList()
{
var dataSetsService =
HttpContext.GetServiceFromContext();
//var dataSetsList = dataSetsService.GetDataSetsList();
//return Json(dataSetsList, JsonRequestBehavior.AllowGet);
return Json(new object[] { new { Id ="test", Name = "添加數據" } },
JsonRequestBehavior.AllowGet);
}
3、 需要對創建好的報表進行數據綁定,這裏需要注意的是:在進行數據綁定時,務必在Startup.cs裏進行對應的動態數據源綁定,不然在報表預覽時會報錯。

主要實現代碼如下:

app.UseReporting(config =\>
{
config.UseFileStore(ResourcesRootDirectory);
config.LocateDataSource = args =\>
{
DataSetsController TemCon = new DataSetsController();
DataSet data1 = TemCon.returndata();
return data1;
};
});
4、完成上述步驟,即可實現在ActiveReports的在線報表設計器中動態綁定數據源,下面我們來看看具體的運行樣式:

如何使用ActiveReports動態綁定數據源
如何使用ActiveReports動態綁定數據源
如何使用ActiveReports動態綁定數據源

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