如何從應(yīng)用程序代碼創(chuàng)建到JSON數(shù)據(jù)庫的連接
大多數(shù)報(bào)表顯示一些數(shù)據(jù)。通常,此數(shù)據(jù)是從數(shù)據(jù)庫獲得的。因此,報(bào)表具有到數(shù)據(jù)源的連接,以便具有可用表和字段以及數(shù)據(jù)本身的列表。但是,如果在編寫報(bào)表時(shí),您只有一個(gè)本地?cái)?shù)據(jù)庫,并且您在報(bào)表中創(chuàng)建了到該數(shù)據(jù)庫的連接。這樣,報(bào)表將無法正常工作。我們需要有效的連接。解決這種情況的方法有兩種:使用用戶程序中的數(shù)據(jù)源,或替換報(bào)表中的連接線。
第一種方法是眾所周知的。您需要在應(yīng)用程序中創(chuàng)建連接,然后登錄到報(bào)表。然后,在設(shè)計(jì)報(bào)表時(shí),可以選擇此別名來源。一方面,這很方便,因?yàn)楦倪B接器不會(huì)影響報(bào)表。無論報(bào)表從何處獲取數(shù)據(jù),只要表和字段名稱、數(shù)據(jù)類型和模板中提供的數(shù)據(jù)類型相同即可。這種方法的缺點(diǎn)是沒有用戶應(yīng)用程序就無法設(shè)計(jì)報(bào)表。畢竟,連接只是在其中。報(bào)表開發(fā)人員可能沒有任何用戶連接到該應(yīng)用程序。在這種情況下,內(nèi)部連接到報(bào)表中的數(shù)據(jù)將是適當(dāng)?shù)摹?
因此,讓我們看一下如何輕松地使用內(nèi)部連接替換現(xiàn)有報(bào)表的連接。當(dāng)然,該連接必須位于同一數(shù)據(jù)庫以及報(bào)表中。只需為其設(shè)置另一個(gè)位置。
對(duì)于此應(yīng)用程序,您需要添加對(duì)庫的引用:FastReport.dll和FastReport.JsonDataConnection.dll。在目錄FastReport.net中,有安裝文件夾ExtrasConnectionsFastReport.Json。您需要組裝項(xiàng)目。然后,您獲得了必要的庫。將它們添加到項(xiàng)目引用中。還有一個(gè)替代連接代碼:
using FastReport; using FastReport.Utils; using FastReport.Data; private void Button1_Click(object sender, EventArgs e) { RegisteredObjects.AddConnection(typeof(JsonDataConnection)); Report report = new Report(); JsonDataConnection connection = new JsonDataConnection(); connection.ConnectionString = "Json=../../App_Data/nwind.json"; connection.CreateAllTables(); report.Dictionary.Connections.Add(connection); report.RegisterData(connection.DataSet); report.Load("../../App_Data/json.frx"); report.Prepare(); report.Show(); }
首先,我們將連接對(duì)象注冊(cè)到Json數(shù)據(jù)庫。接下來,創(chuàng)建一個(gè)報(bào)表對(duì)象的實(shí)例。創(chuàng)建JSON連接對(duì)象的副本。我們?cè)O(shè)置其ConnectionString屬性——基本上只是指向文件的鏈接。在我們的例子中,文件位于項(xiàng)目的App_Data文件夾中。CreateAllTables函數(shù)從源中加載所有表。
接下來,我們需要將創(chuàng)建的連接添加到報(bào)表的連接集合中,并在報(bào)表中注冊(cè)數(shù)據(jù)源。
現(xiàn)在,重要的是下載報(bào)表模板。如果在添加到報(bào)表連接的集合之前進(jìn)行連接,則帶有替換的技巧將不起作用。下載模板后,您需要準(zhǔn)備一份報(bào)表到顯示屏,然后顯示它。
結(jié)果,我們建立了一個(gè)報(bào)表,該數(shù)據(jù)源最初是建立在另一條連接線上的。因此,我們可以替換任何記錄中的連接字符串,而不必?fù)?dān)心報(bào)表中指定路徑上的數(shù)據(jù)庫。
產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動(dòng) | 在線客服