一種報表數(shù)據(jù)導(dǎo)出方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及報表數(shù)據(jù)導(dǎo)出技術(shù)領(lǐng)域,特別是涉及一種報表數(shù)據(jù)導(dǎo)出方法。
【背景技術(shù)】
[0002] 現(xiàn)有技術(shù)中,通常將PcVue組態(tài)作為上位機,采用該組態(tài)中的本地數(shù)據(jù)庫保存報 表。原來查詢報表數(shù)據(jù)并將報表數(shù)據(jù)導(dǎo)出到CSV文件時,數(shù)據(jù)創(chuàng)建的最大的緩存空間為 128Kb,若查詢時間段中的報表數(shù)據(jù)過大,則只能保存報表數(shù)據(jù)中的一部分,因此,用戶如果 想要保存大容量的報表數(shù)據(jù)只能分多次保存;另外,在本地數(shù)據(jù)庫中逗點被視為分隔符,即 查詢到的報表數(shù)據(jù)不會含有逗號,以至于報表數(shù)據(jù)保存到CSV文件后,不能實現(xiàn)自動分列, 不利于用戶的查看,用戶體驗差。
[0003] 因此,如何提供一種能夠?qū)⑦x中的報表數(shù)據(jù)完整導(dǎo)出且能夠?qū)崿F(xiàn)自動分列的報表 數(shù)據(jù)導(dǎo)出方法是本領(lǐng)域技術(shù)人員目前需要解決的問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是提供一種報表數(shù)據(jù)導(dǎo)出方法,能夠?qū)o論容量多大的報表數(shù)據(jù)均 能夠一次保存完,也即完整導(dǎo)出,且通過對報表數(shù)據(jù)進行重復(fù)報表數(shù)據(jù)刪除處理以及添加 CSV文件分列標識處理,實現(xiàn)了CSV文件的自動分列,方便了用戶的查看,提高了用戶體驗; 本發(fā)明的另一目的是提供另一種報表數(shù)據(jù)導(dǎo)出方法。
[0005] 為解決上述技術(shù)問題,本發(fā)明提供了一種報表數(shù)據(jù)導(dǎo)出方法,包括:
[0006] 步驟S101:依據(jù)篩選信息從本地數(shù)據(jù)庫中查找出報表數(shù)據(jù);
[0007] 步驟S102:依據(jù)所述篩選信息確定要保存的所述報表數(shù)據(jù)對應(yīng)的起始時間和終止 時間;
[0008] 步驟S103:設(shè)置報表保存標識;
[0009]步驟S104:將所述報表數(shù)據(jù)按照時間倒序的方式讀取至數(shù)據(jù)緩存中;
[0010]步驟S105:判斷所述數(shù)據(jù)緩存的空間是否已滿,如果是,則進入步驟S106,否則, 判斷所述報表數(shù)據(jù)是否全部被讀取,如果是,則進入步驟S106,否則,返回步驟S104;
[0011] 步驟S106:對所述數(shù)據(jù)緩存中的報表數(shù)據(jù)進行重復(fù)報表數(shù)據(jù)刪除處理以及添加 CSV文件分列標識處理,得到分列報表數(shù)據(jù);
[0012] 步驟S107:將所述分列報表數(shù)據(jù)保存至指定報表文件中,得到CSV文件;
[0013] 步驟S108:判斷所述報表數(shù)據(jù)是否被全部讀取,如果是,則進入步驟S110,否則,進 入步驟S109;
[0014]步驟S109:將上一次所述數(shù)據(jù)緩存中讀取的報表數(shù)據(jù)中的最后一條記錄對應(yīng)的時 間作為新的終止時間,并返回步驟S104;
[0015] 步驟S110:結(jié)束對所述報表數(shù)據(jù)的導(dǎo)出。
[0016] 優(yōu)選地,所述篩選信息包括所述起始時間、所述終止時間、所述報表數(shù)據(jù)對應(yīng)的 行、所述報表數(shù)據(jù)對應(yīng)的設(shè)備、所述報表數(shù)據(jù)的類型、所述類型對應(yīng)的記錄描述和記錄瞬時 值,其中,所述類型包括報警、狀態(tài)和指令。
[0017] 優(yōu)選地,步驟S109和步驟S110之間還包括:
[0018]恢復(fù)所述報表保存標識。
[0019]優(yōu)選地,步驟S106中,對所述數(shù)據(jù)緩存中的報表數(shù)據(jù)進行重復(fù)報表數(shù)據(jù)刪除處理 的過程具體為:
[0020] 將本次讀取的報表數(shù)據(jù)與上一次讀取的報表數(shù)據(jù)重合的部分刪除,其中,重合部 分的報表數(shù)據(jù)對應(yīng)的時間為所述新的終止時間。
[0021] 優(yōu)選地,步驟S106中,對所述數(shù)據(jù)緩存中的報表數(shù)據(jù)進行添加 CSV文件分列標識處 理的過程具體為:
[0022] 分別將所述數(shù)據(jù)緩存中的報表數(shù)據(jù)中的每一條記錄分割為日期、時間、設(shè)備、類 型、記錄描述以及記錄瞬時值六個分支;
[0023] 在所述六個分支中的任意兩個分支間添加列分隔符,在最后一個分支后添加行分 隔符,所有經(jīng)過添加分隔符處理后的記錄形成所述分列報表數(shù)據(jù)。
[0024]為解決上述技術(shù)問題,本發(fā)明提供了另一種報表數(shù)據(jù)導(dǎo)出方法,包括:
[0025]步驟S201:依據(jù)篩選信息從本地數(shù)據(jù)庫中查找出報表數(shù)據(jù);
[0026]步驟S202:依據(jù)所述篩選信息確定要保存的所述報表數(shù)據(jù)對應(yīng)的起始時間和終止 時間;
[0027]步驟S203:設(shè)置報表保存標識;
[0028]步驟S204:將所述報表數(shù)據(jù)按照時間順序的方式讀取至數(shù)據(jù)緩存中;
[0029]步驟S205:判斷所述數(shù)據(jù)緩存的空間是否已滿,如果是,則進入步驟S206,否則,判 斷所述報表數(shù)據(jù)是否全部被讀取,如果是,則進入步驟S206,否則,返回步驟S204;
[0030] 步驟S206:對所述數(shù)據(jù)緩存中的報表數(shù)據(jù)進行重復(fù)報表數(shù)據(jù)刪除處理以及添加 CSV文件分列標識處理,得到分列報表數(shù)據(jù);
[0031] 步驟S207:將所述分列報表數(shù)據(jù)保存至指定報表文件中,得到CSV文件;
[0032] 步驟S208:判斷所述報表數(shù)據(jù)是否被全部讀取,如果是,則進入步驟S210,否則,進 入步驟S209;
[0033]步驟S209:將上一次所述數(shù)據(jù)緩存中讀取的報表數(shù)據(jù)中的最后一條記錄對應(yīng)的時 間作為新的起始時間,并返回步驟S204;
[0034] 步驟S210:結(jié)束對所述報表數(shù)據(jù)的導(dǎo)出。
[0035] 優(yōu)選地,所述篩選信息包括所述起始時間、所述終止時間、所述報表數(shù)據(jù)對應(yīng)的 行、所述報表數(shù)據(jù)對應(yīng)的設(shè)備、所述報表數(shù)據(jù)的類型、所述類型對應(yīng)的記錄描述和記錄瞬時 值,其中,所述類型包括報警、狀態(tài)和指令。
[0036] 優(yōu)選地,步驟S209和步驟S210之間還包括:
[0037]恢復(fù)所述報表保存標識。
[0038]優(yōu)選地,步驟S206中,對所述數(shù)據(jù)緩存中的報表數(shù)據(jù)進行重復(fù)報表數(shù)據(jù)刪除處理 的過程具體為:
[0039] 將本次讀取的報表數(shù)據(jù)與上一次讀取的報表數(shù)據(jù)重合的部分刪除,其中,重合部 分的報表數(shù)據(jù)對應(yīng)的時間為所述新的起始時間。
[0040] 優(yōu)選地,步驟S206中,對所述數(shù)據(jù)緩存中的報表數(shù)據(jù)進行添加 CSV文件分列標識處 理的過程具體為:
[0041] 分別將所述數(shù)據(jù)緩存中的報表數(shù)據(jù)中的每一條記錄分割為日期、時間、設(shè)備、類 型、記錄描述以及記錄瞬時值六個分支;
[0042] 在所述六個分支中的任意兩個分支間添加列分隔符,在最后一個分支后添加行分 隔符,所有經(jīng)過添加分隔符處理后的記錄形成所述分列報表數(shù)據(jù)。
[0043] 本發(fā)明提供了一種報表數(shù)據(jù)導(dǎo)出方法,該方法中,空間有限的數(shù)據(jù)緩存對依據(jù)篩 選信息從本地數(shù)據(jù)庫中查找出的報表數(shù)據(jù)按照時間倒序的方式進行讀取,再對數(shù)據(jù)緩存中 的報表數(shù)據(jù)進行重復(fù)報表數(shù)據(jù)刪除處理以及添加 CSV文件分列標識處理,得到分列報表數(shù) 據(jù),將分列報表數(shù)據(jù)保存至指定報表文件中,得到CSV文件,如果報表數(shù)據(jù)沒有被全部讀取 完,則將上一次數(shù)據(jù)緩存中讀取的報表數(shù)據(jù)中的最后一條記錄對應(yīng)的時間作為新的終止時 間,則數(shù)據(jù)緩存繼續(xù)對報表數(shù)據(jù)按照時間倒序的方式進行讀取并進行后續(xù)處理,直至所有 的報表數(shù)據(jù)均被保存為CSV文件,可見,本發(fā)明能夠?qū)o論容量多大的報表數(shù)據(jù)均能夠一次 保存完,也即完整導(dǎo)出,且通過對報表數(shù)據(jù)進行重復(fù)報表數(shù)據(jù)刪除處理以及添加 CSV文件分 列標識處理,實現(xiàn)了CSV文件的自動分列,方便了用戶的查看,提高了用戶體驗。
【附圖說明】
[0044] 為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對現(xiàn)有技術(shù)和實施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施 例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲 得其他的附圖。
[0045] 圖1為本發(fā)明提供的一種報表數(shù)據(jù)導(dǎo)出方