轉(zhuǎn)帖|使用教程|編輯:陳津勇|2019-07-25 15:22:24.007|閱讀 563 次
概述:通過(guò)本文,你將了解在使用ActiveReports報(bào)表控件進(jìn)行在線報(bào)表設(shè)計(jì),遇到需要設(shè)計(jì)出的報(bào)表中加入固定的字段,但每次需顯示的數(shù)據(jù)都不一樣時(shí),怎樣動(dòng)態(tài)綁定數(shù)據(jù)源的數(shù)據(jù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
在使用ActiveReports報(bào)表控件進(jìn)行在線報(bào)表設(shè)計(jì)的時(shí)候,經(jīng)常會(huì)有這樣的需求:設(shè)計(jì)出的報(bào)表,需要加入了固定的字段,但每次需顯示的數(shù)據(jù)都不一樣,要怎么做才可以動(dòng)態(tài)綁定數(shù)據(jù)源的數(shù)據(jù)呢?
其實(shí),通過(guò)ActiveReports最新推出的Web端在線報(bào)表設(shè)計(jì)器可以很容易的實(shí)現(xiàn)動(dòng)態(tài)綁定數(shù)據(jù)源操作。ActiveReports在線報(bào)表設(shè)計(jì)器主要使用場(chǎng)景包含:
本文將為您介紹如何使用ActiveReports的在線報(bào)表設(shè)計(jì)器動(dòng)態(tài)綁定數(shù)據(jù)源。
1、 首先通過(guò)Visual Studio打開(kāi)ActiveReports的Web端在線報(bào)表設(shè)計(jì)器,其存儲(chǔ)路徑如下:
2、 在控制層DataSetsController里進(jìn)行一個(gè)數(shù)據(jù)源名稱(chēng)和數(shù)據(jù)集字段的設(shè)置,簡(jiǎn)單說(shuō)就是創(chuàng)建表結(jié)構(gòu)、表的命名和表對(duì)應(yīng)的字段名稱(chēng)。
實(shí)現(xiàn)代碼如下:
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("產(chǎn)品編號(hào)"); dt.Columns.Add("產(chǎn)品名稱(chēng)"); dt.Columns.Add("單價(jià)"); dt.Columns.Add("庫(kù)存量"); dt.Columns.Add("產(chǎn)地"); dt.Rows.Add("A001", "蘋(píng)果", 10, 300, "中國(guó)"); dt.Rows.Add("A002", "葡萄", 20, 200, "中國(guó)"); dt.Rows.Add("A003", "香蕉", 30, 400, "中國(guó)"); dt.Rows.Add("A004", "甘蔗", 10, 300, "中國(guó)"); dt.Rows.Add("A005", "荔枝", 20, 200, "中國(guó)"); dt.Rows.Add("A006", "芒果", 30, 400, "中國(guó)"); dt.Rows.Add("A007", "獼猴桃", 110, 300, "中國(guó)"); dt.Rows.Add("A008", "檸檬", 210, 200, "中國(guó)"); dt.Rows.Add("A009", "栗子", 320, 400, "中國(guó)"); dt.Rows.Add("A010", "火龍果", 100, 300, "中國(guó)"); dt.Rows.Add("A011", "青芒", 250, 200, "中國(guó)"); dt.Rows.Add("A012", "巴旦木", 320, 200, "中國(guó)"); dt.Rows.Add("A013", "土豆", 380, 400, "中國(guó)"); dt.Rows.Add("A014", "蘋(píng)果", 110, 300, "中國(guó)"); dt.Rows.Add("A015", "葡萄", 420, 200, "中國(guó)"); dt.Rows.Add("A016", "香蕉", 530, 400, "中國(guó)"); dt.Rows.Add("A017", "土豆", 380, 400, "中國(guó)"); dt.Rows.Add("A018", "蘋(píng)果", 110, 300, "中國(guó)"); dt.Rows.Add("A019", "葡萄", 420, 200, "中國(guó)"); dt.Rows.Add("A020", "香蕉", 530, 400, "中國(guó)"); dt.Rows.Add("A021", "蘋(píng)果", 10, 300, "中國(guó)"); dt.Rows.Add("A022", "葡萄", 20, 200, "中國(guó)"); dt.Rows.Add("A023", "香蕉", 30, 400, "中國(guó)"); dt.Rows.Add("A024", "甘蔗", 10, 300, "中國(guó)"); dt.Rows.Add("A025", "荔枝", 20, 200, "中國(guó)"); dt.Rows.Add("A026", "芒果", 30, 400, "中國(guó)"); 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 = "添加數(shù)據(jù)" } }, JsonRequestBehavior.AllowGet); }
3、 需要對(duì)創(chuàng)建好的報(bào)表進(jìn)行數(shù)據(jù)綁定,這里需要注意的是:在進(jìn)行數(shù)據(jù)綁定時(shí),務(wù)必在Startup.cs里進(jìn)行對(duì)應(yīng)的動(dòng)態(tài)數(shù)據(jù)源綁定,不然在報(bào)表預(yù)覽時(shí)會(huì)報(bào)錯(cuò)。
主要實(shí)現(xiàn)代碼如下:
app.UseReporting(config =\> { config.UseFileStore(ResourcesRootDirectory); config.LocateDataSource = args =\> { DataSetsController TemCon = new DataSetsController(); DataSet data1 = TemCon.returndata(); return data1; }; });
4、完成上述步驟,即可實(shí)現(xiàn)在ActiveReports的在線報(bào)表設(shè)計(jì)器中動(dòng)態(tài)綁定數(shù)據(jù)源,下面我們來(lái)看看具體的運(yùn)行樣式:
想要獲取更多 ActiveReports 資源的朋友,請(qǐng)點(diǎn)這里。
想要購(gòu)買(mǎi)正版 ActiveReports 產(chǎn)品的朋友,請(qǐng)。
有關(guān)慧都科技更多的精彩內(nèi)容,請(qǐng)關(guān)注下方的微信公眾號(hào)↓↓↓
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: