報(bào)告生成器的關(guān)鍵任務(wù)之一是數(shù)據(jù)檢索。大多數(shù)情況下,數(shù)據(jù)庫(kù)用于存儲(chǔ)和檢索數(shù)據(jù)。但是如果是遠(yuǎn)程云存儲(chǔ),用于存儲(chǔ)某些數(shù)據(jù)呢?如何通過 http 將公司徽標(biāo)上傳到報(bào)告以確保它始終是最新的?
為了解決這些問題,我們?cè)?FastReport VCL 2021.3 中增加了對(duì)協(xié)議的支持以及通過協(xié)議將數(shù)據(jù)加載到對(duì)象中的功能,例如:地圖、圖片、文本、PDF 對(duì)象、HTML 對(duì)象。某些對(duì)象具有新的DataLink屬性,其中包括用于處理鏈接的附加屬性。此類鏈接始終以架構(gòu)名稱開頭,后跟分隔符。示例 <schema>: [//path]。在大多數(shù)情況下,方案是http和https等協(xié)議。
通過 FastReport VCL 中的鏈接加載數(shù)據(jù)
FastReport VCL 基于模塊化架構(gòu),http 和 https 的功能也不例外,它與 Internet 傳輸一起包含在一個(gè)單獨(dú)的包中。因此,對(duì)于通過 http 和 https 協(xié)議工作的鏈接,您需要連接應(yīng)用程序使用部分中的 frxTransportHTTP 模塊,或者將 Internet 傳輸之一添加到應(yīng)用程序表單。
重要!https 協(xié)議需要以下 Open SSL 庫(kù)才能工作:ssleay32.dll 和 libeay32.dll。您可以在主演示應(yīng)用程序所在的目錄中找到它們。
讓我們啟動(dòng)報(bào)表設(shè)計(jì)器并創(chuàng)建一個(gè)新報(bào)表。然后在報(bào)表頁(yè)面上添加“報(bào)表標(biāo)題”欄,并為其添加一個(gè)圖片對(duì)象。報(bào)告應(yīng)如下所示:
讓我們選擇“圖片”對(duì)象并轉(zhuǎn)到對(duì)象檢查器。在對(duì)象檢查器中找到 DataLink 屬性。為了快速搜索,您可以通過輸入所需屬性的名稱來(lái)使用對(duì)象檢查器中內(nèi)置的過濾器。
讓我們看看 DataLink 子屬性的含義:
Link– 帶有模式(協(xié)議)的鏈接,格式為 <schema>: [//path]。數(shù)據(jù)將從指定的鏈接加載。
LoadingType – 加載類型。它指示何時(shí)加載數(shù)據(jù)。它可以具有以下值:
[] - 空的。當(dāng)用戶點(diǎn)擊加載編輯器時(shí),數(shù)據(jù)以模板編輯模式加載。如果您只需要檢索一次數(shù)據(jù)并將其存儲(chǔ)在模板中,則使用它。
[dltOnGetData] – 默認(rèn)情況下。數(shù)據(jù)在構(gòu)建報(bào)告時(shí)加載到對(duì)象中。在這種情況下,對(duì)象數(shù)據(jù)不會(huì)保存在模板中。每次生成報(bào)告時(shí),對(duì)象都會(huì)通過鏈接接收新數(shù)據(jù)。
[dltOnPreview] – 在報(bào)告預(yù)覽、導(dǎo)出或打印期間加載數(shù)據(jù)。在這種情況下,生成的報(bào)告存儲(chǔ)數(shù)據(jù)的鏈接,并在用戶每次加載生成的報(bào)告時(shí)加載它。它可用于在生成的報(bào)告中獲取最新數(shù)據(jù),而無(wú)需重建它。
[dltOnGetData, dltOnPreview] – 混合模式。構(gòu)建報(bào)告時(shí),對(duì)象通過鏈接接收數(shù)據(jù)并將其保存在生成的報(bào)告中。數(shù)據(jù)的鏈接也被保存。使用此對(duì)象加載生成的報(bào)表時(shí),該對(duì)象會(huì)嘗試以與[dltOnPreview] 相同的方式加載數(shù)據(jù),但如果數(shù)據(jù)加載不成功,則會(huì)顯示報(bào)表生成過程中獲取的數(shù)據(jù)。
ProcessingType – 確定在報(bào)告生成期間如何處理鏈接的值: dpString – 作為常規(guī)字符串, dpExpression – 作為報(bào)告腳本的表達(dá)式。
讓我們?cè)O(shè)置DataLink。 例如,“圖片”對(duì)象的鏈接屬性帶有從網(wǎng)站鏈接到圖片的鏈接。 讓我們執(zhí)行報(bào)告。
同樣,您可以加載其他對(duì)象,例如:Text、Picture、Maps、HTMLView、PDFView。
這些鏈接可用于訪問 Web API 以獲取數(shù)據(jù),例如 OSM 地圖。
讓我們創(chuàng)建一個(gè)帶有“Report Title”帶和一個(gè)空層的 Map 對(duì)象的新報(bào)告(您可以在我們的文檔中了解如何創(chuàng)建 Map 對(duì)象)。
現(xiàn)在讓我們選擇地圖圖層 MapFileLayer1 并轉(zhuǎn)到對(duì)象檢查器中的 DataLink.Link 屬性。您可以使用 OpenStreetMap API 加載 OSM 地圖。讓我們嘗試在 FastReport VCL 中顯示選定的區(qū)域。將其插入到 DataLink.Link 屬性中。讓我們生成報(bào)告。
來(lái)自服務(wù)器的數(shù)據(jù)已自動(dòng)加載到地圖對(duì)象中。
不僅僅是超鏈接
在 FastReport VCL 中,DataLink 屬性的所有模式和協(xié)議都是通過工廠處理的。這允許開發(fā)人員通過添加新的方案和協(xié)議來(lái)擴(kuò)展應(yīng)用程序的功能,而無(wú)需對(duì) FastReport VCL 源代碼進(jìn)行任何更改。此外,F(xiàn)astReport VCL 在工廠中自動(dòng)將互聯(lián)網(wǎng)傳輸注冊(cè)為新協(xié)議。這允許訪問私有云存儲(chǔ)并將數(shù)據(jù)從它們加載到報(bào)告中,而無(wú)需在報(bào)告中傳輸或存儲(chǔ)任何授權(quán)數(shù)據(jù)。您可以在下面看到 DataLink 屬性與協(xié)議工廠的交互方案。
如何添加互聯(lián)網(wǎng)傳輸并使用指向私人 Google Drive 的鏈接?
這可以通過幾個(gè)步驟完成:
1. 使用 Internet 傳輸打開組件選項(xiàng)板。
重要!如果未加載數(shù)據(jù),請(qǐng)確保您已正確連接到云存儲(chǔ)并在連接時(shí)保存了授權(quán)令牌。
同樣,您可以連接到其他 Internet 傳輸。這是 FastReport VCL 2021.3 中引入的少數(shù)強(qiáng)大工具之一,您可以使用它來(lái)改進(jìn)您的項(xiàng)目。
京ICP備09015132號(hào)-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號(hào)豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫