欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種報表系統(tǒng)自定義函數(shù)的實現(xiàn)方法

文檔序號:6637005閱讀:405來源:國知局
一種報表系統(tǒng)自定義函數(shù)的實現(xiàn)方法
【專利摘要】本發(fā)明公開了報表系統(tǒng)自定義函數(shù)實現(xiàn)方法,包括以下步驟:步驟1):自定義函數(shù)及參數(shù)登記;步驟2):自定義函數(shù)相關(guān)存儲過程創(chuàng)建;步驟3):在報表中使用自定義函數(shù);步驟4):識別報表中的自定義函數(shù);步驟5):自定義函數(shù)參數(shù)列表中變量識別與替換;步驟6):準(zhǔn)備參數(shù)并調(diào)用自定義函數(shù)關(guān)聯(lián)存儲過程;步驟7):執(zhí)行自定義函數(shù)關(guān)聯(lián)存儲過程并返回結(jié)果;步驟8):接收自定義函數(shù)關(guān)聯(lián)存儲過程返回結(jié)果并應(yīng)用到報表中。本發(fā)明創(chuàng)建自定義函數(shù)的技術(shù)門檻較低,報表用戶只需要熟悉存儲過程的設(shè)計就可以創(chuàng)建自定義函數(shù),只要在設(shè)計器中登記了自定義函數(shù)的名稱和參數(shù)信息并提交及在數(shù)據(jù)庫中創(chuàng)建了關(guān)聯(lián)存儲過程就完成了自定義函數(shù)的創(chuàng)建及部署。
【專利說明】一種報表系統(tǒng)自定義函數(shù)的實現(xiàn)方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機軟件應(yīng)用領(lǐng)域,尤其涉及一種報表系統(tǒng)自定義函數(shù)的實現(xiàn)方法。

【背景技術(shù)】
[0002]自定義函數(shù)功能是商業(yè)報表系統(tǒng)的重要功能之一,它允許報表設(shè)計者或報表用戶將格式轉(zhuǎn)換函數(shù)及業(yè)務(wù)處理邏輯包裝為函數(shù)的形式供設(shè)計報表時使用,實現(xiàn)代碼重用及特定應(yīng)用領(lǐng)域的特色需求。
[0003]報表是企業(yè)應(yīng)用軟件必不可少的部分,為了方便報表的開發(fā),各類報表開發(fā)系統(tǒng)中都提供了一定數(shù)量的系統(tǒng)函數(shù)以完成一些通用的功能,如數(shù)學(xué)處理、字符串處理、日期格式轉(zhuǎn)換等。但在實際應(yīng)用中,根據(jù)應(yīng)用領(lǐng)域的具體需要,報表設(shè)計者還需要經(jīng)常用到一些系統(tǒng)函數(shù)中沒有的功能,如特定格式的日期格式轉(zhuǎn)換或數(shù)字格式轉(zhuǎn)換,以及與應(yīng)用業(yè)務(wù)邏輯相關(guān)的處理功能,這些功能就需要報表設(shè)計者自行設(shè)計成自定義函數(shù)供其反復(fù)使用。
[0004]在當(dāng)前主流的商業(yè)報表系統(tǒng)中,大多提供了設(shè)計自定義函數(shù)的方法。微軟公司乂18皿1 31:11(110集成開發(fā)環(huán)境中的水晶報表(0781:211系統(tǒng)中,提供了自定義函數(shù)編輯器供用戶設(shè)計自定義函數(shù),設(shè)計完成后可以發(fā)布到報表系統(tǒng)的儲備庫中與所有其他設(shè)計者共享使用。水晶報表自定義函數(shù)設(shè)計及發(fā)布都比較簡單,但需要使用71%從8…X或水晶報表專用的編程語言編寫,而且對代碼功能有諸多限制,如在自定義函數(shù)中不能使用報表或數(shù)據(jù)庫字段,這極大地限制了自定義函數(shù)的應(yīng)用范圍。
[0005]潤乾報表系統(tǒng)、杰表報表系統(tǒng)及乂5報表平臺都是以獅語言開發(fā)呢8報表的解析引擎,因此,它們均要求自定義函數(shù)使用從V八語言開發(fā),其配置使用也要按照一定的規(guī)則對配置文件進行編輯。例如在潤乾報表系統(tǒng)中添加一個自定義函數(shù)的流程如下:
[0006]1、編寫自定義函數(shù)的類,繼承 00111.1110(161.6X^1-0881011.這個類。
[0007]2、在的類路徑的目錄下,找到1:168 文件,并在其中進行自定義函數(shù)類及函數(shù)名的登記。
[0008]3、在設(shè)計器端,將文件復(fù)制到 \01681即61~\界613\126~1^?\0188868\0011?1^ 下,將類文件復(fù)制到下,有包名的,相應(yīng)的建包路徑。
[0009]4、在 16)3 端,將1:168 文件復(fù)制到126~1^?\0188868\0011?1^ 下,將類文件復(fù)制到下,有包名的,相應(yīng)的建包路徑。
[0010]5、重啟設(shè)計器。
[0011]6、在設(shè)計器中運用自定義函數(shù)。
[0012]上述自定義函數(shù)實現(xiàn)方法優(yōu)點是功能強大,可以充分利用從V八編程語言提供的編程能力,對用戶的格式轉(zhuǎn)換功能及業(yè)務(wù)邏輯處理功能都比較容易實現(xiàn)。
[0013]還有一種自定義函數(shù)的實現(xiàn)方案可以簡單地設(shè)計和應(yīng)用自定義函數(shù)【1】。在此方案中,自定義函數(shù)用四元組?皿=(自定義函數(shù)名,3亂查詢語句,輸入?yún)?shù)個數(shù),輸出參數(shù)個數(shù)丨定義,函數(shù)的功能由其中的3亂查詢語句實現(xiàn),報表用戶只需編寫此3亂查詢語句,無需使用其他的編程語言。上述自定義函數(shù)四元組都確定后,就可提交到數(shù)據(jù)庫,供其他報表用戶共享使用。使用時可以像系統(tǒng)函數(shù)一樣嵌入在表達式中。此方案的自定義函數(shù)解析過程如下:
[0014]1、包含自定義函數(shù)的表達式中的變量識別與替換,所有變量都替換為具體的值,為自定義函數(shù)求值做準(zhǔn)備。
[0015]2、識別表達式中的自定義函數(shù)。
[0016]3、通過數(shù)據(jù)庫中存儲的用戶自定義函數(shù)函數(shù)名,查到對應(yīng)的3亂查詢語句及參數(shù)個數(shù)信息與取得的變量個數(shù)進行比較,以驗證變量定義個數(shù)是否正確。
[0017]4、用表達式中的自定義函數(shù)的實際參數(shù)值替換查詢語句中的參數(shù)變量。
[0018]5、執(zhí)行上一步經(jīng)變量替換后的查詢語句,得到返回值,即作為自定義函數(shù)的求值結(jié)果替換其在表達式中的出現(xiàn)。
[0019]對于潤乾報表系統(tǒng)、杰表報表系統(tǒng)及乂5報表平臺等基于雜的自定義函數(shù)實現(xiàn)方法,其主要缺點在于:
[0020]創(chuàng)建自定義函數(shù)的技術(shù)門檻較高。各種報表系統(tǒng)在設(shè)計自定義函數(shù)時都要求用戶使用指定的編程語言并按規(guī)定的格式編碼,需要數(shù)據(jù)庫操作的自定義函數(shù)還要掌握301編程。
[0021]自定義函數(shù)的部署復(fù)雜,在自定義函數(shù)較多時工作量大且易出錯。
[0022]對于以四元組[1111=(自定義函數(shù)名,3亂查詢語句,輸入?yún)?shù)個數(shù),輸出參數(shù)個數(shù)丨實現(xiàn)的自定義函數(shù)方案,其主要不足在于功能受限,自定義函數(shù)執(zhí)行及結(jié)果獲取都是通過3亂查詢語句實現(xiàn)的,難以實現(xiàn)包含業(yè)務(wù)邏輯規(guī)則的自定義函數(shù)功能。此外它還有效率低的缺點,即每次執(zhí)行3亂查詢語句數(shù)據(jù)庫服務(wù)器都需要對其進行語法檢查。
[0023]綜合分析當(dāng)前各主流報表系統(tǒng)的自定義函數(shù)功能實現(xiàn),發(fā)現(xiàn)存在如下問題:
[0024]創(chuàng)建自定義函數(shù)的技術(shù)門檻較高。各種報表系統(tǒng)在設(shè)計自定義函數(shù)時都要求用戶使用指定的編程語言并按規(guī)定的格式編碼,需要數(shù)據(jù)庫操作的自定義函數(shù)還要掌握301編程。這意味著普通的報表設(shè)計者和用戶可能需要學(xué)習(xí)一門新的編程語言及其開發(fā)工具以設(shè)計自定義函數(shù)。
[0025]自定義函數(shù)的部署復(fù)雜。在各種報表系統(tǒng)的自定義函數(shù)部署過程中,通常涉及到多個文件的創(chuàng)建與編輯,并要將其放入指定文件路徑下,有些報表系統(tǒng)還需要重新啟動設(shè)計器以讓自定義函數(shù)生效,過程復(fù)雜,在自定義函數(shù)較多時工作量大且易出錯。


【發(fā)明內(nèi)容】

[0026]本發(fā)明目的在于提供一種以較低的技術(shù)門檻及簡單的部署方式以解決【背景技術(shù)】提及的技術(shù)問題的報表系統(tǒng)自定義函數(shù)實現(xiàn)方法。
[0027]本發(fā)明提供的技術(shù)方案是:一種報表系統(tǒng)自定義函數(shù)實現(xiàn)方法,包括以下步驟:
[0028]步驟1):自定義函數(shù)及參數(shù)登記。此步驟在報表設(shè)計器的功能界面上完成。報表設(shè)計者需提供自定義函數(shù)的名字、參數(shù)數(shù)目及每個參數(shù)的參數(shù)名及其描述,然后提交到系統(tǒng)數(shù)據(jù)庫即可完成登記過程。報表系統(tǒng)函數(shù)用前綴丨識別,而自定義函數(shù)用前綴識別,如一個函數(shù)若形如,則是系統(tǒng)函數(shù),若形如$$1^從:0,則是自定義函數(shù)。此增加前綴的函數(shù)命名方法有利于區(qū)分普通帶括號表達式、系統(tǒng)函數(shù)及自定義函數(shù)。
[0029]步驟2):自定義函數(shù)相關(guān)存儲過程創(chuàng)建。此步驟在數(shù)據(jù)庫管理系統(tǒng)中完成。所有自定義函數(shù)的功能都由其相關(guān)的存儲過程實現(xiàn)。自定義函數(shù)相關(guān)存儲過程的名字為自定義函數(shù)名字去掉前綴而得到,如自定義函數(shù)名為$$11171?% 0,則其關(guān)聯(lián)存儲過程名為
這種函數(shù)名與存儲過程名的相關(guān)定義方法保證了解析自定義函數(shù)時可以直接從自定義函數(shù)名得到其相關(guān)存儲過程名,而無需從數(shù)據(jù)庫中檢索。所有自定義函數(shù)相關(guān)存儲過程的參數(shù)列表采用統(tǒng)一格式,不管自定義函數(shù)包含多少個參數(shù),但其相關(guān)存儲過程均只包含一個輸入?yún)?shù)和一個輸出參數(shù),輸入?yún)?shù)用于向存儲過程傳遞參數(shù)值,若自定義函數(shù)有多個參數(shù),則此多個參數(shù)被組合在一起傳遞至輸入?yún)?shù),輸出參數(shù)用于返回存儲過程執(zhí)行結(jié)果。自定義函數(shù)相關(guān)存儲過程中的處理邏輯包含如下步驟:八)接收輸入?yún)?shù),將組合在一起的多個參數(shù)分解成單個參數(shù)出)對每個參數(shù)進行類型轉(zhuǎn)換,轉(zhuǎn)換成需要的數(shù)據(jù)類型;0執(zhí)行自定義函數(shù)的處理邏輯山)將執(zhí)行結(jié)果設(shè)置到輸出參數(shù)并返回。
[0030]步驟3):在報表中使用自定義函數(shù)。此步驟在報表設(shè)計器中完成。在報表中使用自定義函數(shù)比較簡單,按照其在步驟1中定義的格式單獨使用或用在表達式中即可。
[0031]步驟4):識別報表中的自定義函數(shù)。此步驟在報表解析與創(chuàng)建引擎中完成。在報表表達式解析求值過程中,根據(jù)自定義函數(shù)命名的前綴命名規(guī)則,識別其中的自定義函數(shù),提取出來準(zhǔn)備解析。
[0032]步驟5):自定義函數(shù)參數(shù)列表中變量識別與替換。此步驟在報表解析與創(chuàng)建引擎中完成。步驟4提取出的自定義函數(shù)的參數(shù)列表中,可能包含變量、常量及其他函數(shù)。本步驟包括如下子步驟:對其中的變量及其他函數(shù)進行識別;求取參數(shù)中變量的實際值,對參數(shù)中的函數(shù)進行計算得到結(jié)果值;用參數(shù)變量的實際值替換其在參數(shù)列表中的出現(xiàn),用參數(shù)中函數(shù)的執(zhí)行結(jié)果值替換其在參數(shù)列表中的出現(xiàn)。經(jīng)過上述步驟,自定義函數(shù)的參數(shù)列表中僅包含常量。
[0033]步驟6):準(zhǔn)備參數(shù)并調(diào)用自定義函數(shù)關(guān)聯(lián)存儲過程。此步驟在報表解析與創(chuàng)建引擎中完成。包括如下步驟:準(zhǔn)備自定義函數(shù)關(guān)聯(lián)存儲過程的輸入?yún)?shù)。將步驟5中得到的只含常量的參數(shù)表去掉前后的括號,賦值給輸入?yún)?shù);設(shè)置自定義函數(shù)關(guān)聯(lián)存儲過程的輸出參數(shù);去掉自定義函數(shù)名的前綴” $^ ”,作為存儲過程名;使用存儲過程名及參數(shù)設(shè)置數(shù)據(jù)庫訪問組件,提交存儲過程到數(shù)據(jù)庫服務(wù)器執(zhí)行。
[0034]步驟7):執(zhí)行自定義函數(shù)關(guān)聯(lián)存儲過程并返回結(jié)果。此步驟在數(shù)據(jù)庫管理系統(tǒng)中實現(xiàn)。
[0035]步驟8):接收自定義函數(shù)關(guān)聯(lián)存儲過程返回結(jié)果并應(yīng)用到報表中。此步驟在報表解析與創(chuàng)建引擎中完成。
[0036]本發(fā)明的有益效果是:
[0037]本發(fā)明提供的一種報表系統(tǒng)自定義函數(shù)處理方案,其核心思想在于所有自定義函數(shù)均由數(shù)據(jù)庫存儲過程實現(xiàn)。各種商業(yè)數(shù)據(jù)庫管理系統(tǒng)都提供了設(shè)計存儲過程的機制,其中包含各種流程控制機制、大量格式處理函數(shù)、數(shù)學(xué)函數(shù)及日期函數(shù)等,同時可以直接操作301語句。存儲過程還有一個優(yōu)點就是一次編譯后,以后重復(fù)執(zhí)行無需再編譯,執(zhí)行效率較高,而用其他編程語言提交到數(shù)據(jù)庫系統(tǒng)的3亂查詢語句每次執(zhí)行前都要執(zhí)行編譯操作。
[0038]本發(fā)明的優(yōu)點包括:(1)創(chuàng)建自定義函數(shù)的技術(shù)門檻較低,報表用戶只需要熟悉存儲過程的設(shè)計就可以創(chuàng)建自定義函數(shù),而各種數(shù)據(jù)庫管理系統(tǒng)中創(chuàng)建存儲過程的方法簡單、語法接近。用戶無需使用其他編程工具和編程語言。(2)自定義函數(shù)部署簡單,只要在設(shè)計器中登記了自定義函數(shù)的名稱和參數(shù)信息并提交及在數(shù)據(jù)庫中創(chuàng)建了關(guān)聯(lián)存儲過程就完成了自定義函數(shù)的創(chuàng)建及部署。

【專利附圖】

【附圖說明】
[0039]當(dāng)結(jié)合附圖考慮時,通過參照下面的詳細描述,能夠更完整更好地理解本發(fā)明以及容易得知其中許多伴隨的優(yōu)點,但此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定,其中:
[0040]圖1是本發(fā)明的報表系統(tǒng)自定義函數(shù)實現(xiàn)方法的總體流程框圖;
[0041]圖2是自定義函數(shù)關(guān)聯(lián)存儲過程內(nèi)部處理流程的流程框圖;
[0042]圖3是自定義函數(shù)參數(shù)列表中變量識別與替換的流程框圖;
[0043]圖4是準(zhǔn)備參數(shù)并調(diào)用自定義函數(shù)關(guān)聯(lián)存儲過程的流程框圖。

【具體實施方式】
[0044]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明。
[0045]參考附圖,下面以一個自定義函數(shù)的定義與解析的具體過程說明本發(fā)明的技術(shù)方案。
[0046]假定需要一個自定義函數(shù)將默認(rèn)日期格式“08/25/2014”轉(zhuǎn)換為中文日期格式,如“二零一四年八月二十五日”,根據(jù)附圖1,將經(jīng)過如下步驟’ 年麗月00日’)將當(dāng)天日期格式化為中國日期格式。
[0047]步驟1):自定義函數(shù)及參數(shù)登記。登記自定義函數(shù)為?01~胍七),是自定義函數(shù)名,01(10211:6是默認(rèn)格式的待轉(zhuǎn)換日期,?01~胍1:是期望轉(zhuǎn)換成的格式。
[0048]步驟2):自定義函數(shù)相關(guān)存儲過程創(chuàng)建。在數(shù)據(jù)庫管理系統(tǒng)中創(chuàng)建一個存儲過程,形如'肅),是輸入?yún)?shù),是輸出參數(shù),均為字符串類型。存儲過程4.^6中實現(xiàn)附圖2的處理邏輯,對1?。。糠?孤18中用逗號分隔的舊的日期及期望格式兩個參數(shù)值分解成兩個字符串型的參數(shù)值,并分別轉(zhuǎn)換成日期類型及結(jié)構(gòu)體類型,然后對其進行處理并將執(zhí)行結(jié)果設(shè)置到輸出參數(shù)0此?犯'孤1返回。
[0049]步驟3):在報表中使用自定義函數(shù)。使用例子如
[0050]$81^1 ( “ 打印日期:,,,$$0^1)^6 ($1000^ 0,’ 年麗月 00 日’)),其中系統(tǒng)函數(shù)用于將兩個字符串拼接成一個字符串,系統(tǒng)函數(shù)$1001^1()用于獲取默認(rèn)格式的當(dāng)前日期,若當(dāng)前日期是“08/25/2014”,則上述例子將得到字符串“打印日期:二零一四年八月二十五日”。自定義函數(shù)的參數(shù)個數(shù)應(yīng)與步驟1中登記的相同。
[0051]步驟4):識別報表中的自定義函數(shù)。根據(jù)自定義函數(shù)前綴及括號匹配關(guān)系,可以很容易地識別( “打印日期:”,$$011110^6 ($1000…0,’ 年麗月00日’))中的自定義函數(shù)$$(^110^6 ($1000…0,’ 年11月00日’)。
[0052]步驟5):自定義函數(shù)參數(shù)列表中變量識別與替換。社6 ($1000^(),’年麗月00日’)中,其參數(shù)列表為“ $1000…0,’ 年11月00日’”,其中$1001^1()為系統(tǒng)函數(shù),需要求值,假設(shè)求值得到結(jié)果:08/25/2014,用其替換 $100041()在社6 ($100041(),,年 11 月 00 日’)中的出現(xiàn),得到$$011110^6( 48/25/2014,,1111^11^00 0,1至此,自定義函數(shù)的參數(shù)列表中僅包含常量。
[0053]步驟6):準(zhǔn)備參數(shù)并調(diào)用自定義函數(shù)關(guān)聯(lián)存儲過程。包括如下步驟:1、自定義函數(shù)關(guān)聯(lián)存儲過程的輸入?yún)?shù)值為“‘08/25/2014’,’ VV年11月00日’”。2、設(shè)置自定義函數(shù)關(guān)聯(lián)存儲過程的輸出參數(shù);3、以也⑷社6作為存儲過程名;4、使用存儲過程名及參數(shù)設(shè)置數(shù)據(jù)庫訪問組件,提交存儲過程到數(shù)據(jù)庫服務(wù)器執(zhí)行。
[0054]步驟7):執(zhí)行步驟6)中設(shè)置的存儲過程并返回結(jié)果,此處返回結(jié)果為“二零一四年八月二十五日”。
[0055]步驟8):接收步驟7)中存儲過程返回結(jié)果并應(yīng)用到報表表達式中,即將步驟7)返回結(jié)果替換自定義函數(shù)$$(311110社6 ($1001^1(), ’ 年麗月00日’)在表達式
“打印日期:”,$$¢^110社6 ($1000^(), ’ V冗年11月00日’))中的出現(xiàn),得到
“打印日期:”,“二零一四年八月二十五日”),至此,自定義函數(shù)解析結(jié)束。
[0056]本發(fā)明還可以有其它的替代技術(shù)方案,比如:
[0057]在步驟1)中,自定義函數(shù)的名字也可以不帶特殊的前綴,則在報表引擎解析時可以先從系統(tǒng)數(shù)據(jù)庫中獲取所有系統(tǒng)函數(shù)及自定義函數(shù)的名字列表,再與報表中用到的函數(shù)進行比對。
[0058]在步驟2)中,自定義函數(shù)關(guān)聯(lián)的存儲過程名也可以保存到數(shù)據(jù)庫中自定義函數(shù)的記錄中,則存儲過程名及其關(guān)聯(lián)自定義函數(shù)名之間可以沒有派生關(guān)系,其關(guān)聯(lián)關(guān)系可以從自定義函數(shù)在數(shù)據(jù)庫中的登記信息中找到。則在為自定義函數(shù)調(diào)用關(guān)聯(lián)存儲過程時要先從數(shù)據(jù)庫中獲取該自定義函數(shù)關(guān)聯(lián)的存儲過程名。此外,自定義函數(shù)的處理邏輯也可以用數(shù)據(jù)庫系統(tǒng)中的用戶自定義301函數(shù)實現(xiàn),與使用存儲過程不同在于,在存儲過程中處理結(jié)果通過輸出參數(shù)返回,而在用戶自定義301函數(shù)中處理結(jié)果通過函數(shù)返回值返回。
[0059]以上實例的說明只是用于幫助理解本發(fā)明的核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種報表系統(tǒng)自定義函數(shù)實現(xiàn)方法,其特征在于,包括以下步驟: 步驟I):自定義函數(shù)及參數(shù)登記;在報表設(shè)計器的功能界面上,報表設(shè)計者提供自定義函數(shù)的名字、參數(shù)數(shù)目及每個參數(shù)的參數(shù)名及其描述,然后提交到系統(tǒng)數(shù)據(jù)庫;自定義函數(shù)用前綴$$識別; 步驟2):自定義函數(shù)相關(guān)存儲過程創(chuàng)建;在數(shù)據(jù)庫管理系統(tǒng)中,所有自定義函數(shù)的功能都由其相關(guān)的存儲過程實現(xiàn);自定義函數(shù)相關(guān)存儲過程的名字為自定義函數(shù)名字去掉前綴$$而得到;所有自定義函數(shù)相關(guān)存儲過程的參數(shù)列表采用統(tǒng)一格式;相關(guān)存儲過程均只包含一個輸入?yún)?shù)和一個輸出參數(shù),輸入?yún)?shù)用于向存儲過程傳遞參數(shù)值,若自定義函數(shù)有多個參數(shù),則此多個參數(shù)被組合在一起傳遞至輸入?yún)?shù),輸出參數(shù)用于返回存儲過程執(zhí)行結(jié)果; 步驟3):在報表中使用自定義函數(shù);在報表設(shè)計器中,按照自定義函數(shù)在步驟I中定義的格式單獨使用或用在表達式中; 步驟4):識別報表中的自定義函數(shù);在報表表達式解析求值過程中,根據(jù)自定義函數(shù)命名的前綴命名規(guī)則,識別其中的自定義函數(shù),提取出來準(zhǔn)備解析; 步驟5):自定義函數(shù)參數(shù)列表中變量識別與替換;步驟4)提取出的自定義函數(shù)的參數(shù)列表中,對其中的變量及其它函數(shù)進行識別;求取參數(shù)中變量的實際值,對參數(shù)中的函數(shù)進行計算得到結(jié)果值;用參數(shù)變量的實際值替換其在參數(shù)列表中的出現(xiàn),用參數(shù)中函數(shù)的執(zhí)行結(jié)果值替換其在參數(shù)列表中的出現(xiàn);經(jīng)過上述步驟,自定義函數(shù)的參數(shù)列表中僅包含常量; 步驟6):準(zhǔn)備參數(shù)并調(diào)用自定義函數(shù)關(guān)聯(lián)存儲過程;包括如下步驟: 準(zhǔn)備自定義函數(shù)關(guān)聯(lián)存儲過程的輸入?yún)?shù),將步驟5)中得到的只含常量的參數(shù)表去掉前后的括號,賦值給輸入?yún)?shù); 設(shè)置自定義函數(shù)關(guān)聯(lián)存儲過程的輸出參數(shù); 去掉自定義函數(shù)名的前綴”$$”,作為存儲過程名; 使用存儲過程名及參數(shù)設(shè)置數(shù)據(jù)庫訪問組件,提交存儲過程到數(shù)據(jù)庫服務(wù)器執(zhí)行; 步驟7):執(zhí)行自定義函數(shù)關(guān)聯(lián)存儲過程并返回結(jié)果; 步驟8):接收自定義函數(shù)關(guān)聯(lián)存儲過程返回結(jié)果并應(yīng)用到報表中。
2.根據(jù)權(quán)利要求1所述的一種報表系統(tǒng)自定義函數(shù)實現(xiàn)方法,其特征在于,步驟2)中,自定義函數(shù)相關(guān)存儲過程中的處理邏輯包含如下步驟: A)接收輸入?yún)?shù),將組合在一起的多個參數(shù)分解成單個參數(shù); B)對每個參數(shù)進行類型轉(zhuǎn)換,轉(zhuǎn)換成需要的數(shù)據(jù)類型; C)執(zhí)行自定義函數(shù)的處理邏輯; D)將執(zhí)行結(jié)果設(shè)置到輸出參數(shù)并返回。
【文檔編號】G06F9/44GK104461531SQ201410722935
【公開日】2015年3月25日 申請日期:2014年12月2日 優(yōu)先權(quán)日:2014年12月2日
【發(fā)明者】聶作先, 王平陽, 張順淼, 楊海燕 申請人:福建工程學(xué)院
網(wǎng)友詢問留言 已有1條留言
  • 訪客 來自[江蘇省淮安市聯(lián)通] 2019年01月09日 15:48
    看不懂
    0
1
勃利县| 惠来县| 合江县| 精河县| 通许县| 盐池县| 湖州市| 荥经县| 广河县| 青铜峡市| 错那县| 安泽县| 正宁县| 中江县| 静海县| 曲周县| 大荔县| 临海市| 吴堡县| 崇礼县| 夏津县| 松潘县| 岳阳县| 常熟市| 崇信县| 山丹县| 惠东县| 德江县| 九寨沟县| 吉首市| 雷山县| 资溪县| 广昌县| 武威市| 赞皇县| 武夷山市| 新和县| 长丰县| 阜南县| 柳河县| 太原市|