報(bào)表打印方法
【專利摘要】本發(fā)明公開(kāi)了一種報(bào)表打印方法,可以對(duì)ERP系統(tǒng)中的報(bào)表實(shí)現(xiàn)所見(jiàn)即所得的打印,不因報(bào)表的內(nèi)容及格式調(diào)整而調(diào)整打印模板;可以紙張動(dòng)態(tài)適配拆頁(yè),方便調(diào)整紙張的大小/方向以適配拆頁(yè);增加了用戶拆頁(yè)點(diǎn),包括強(qiáng)制拆頁(yè)和分組拆頁(yè)等,方便分類歸檔與瀏覽;還能排除空白頁(yè),避免浪費(fèi)紙張。
【專利說(shuō)明】報(bào)表打印方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及打印【技術(shù)領(lǐng)域】,尤其涉及一種報(bào)表打印方法。
【背景技術(shù)】
[0002]在現(xiàn)有的ERP中,報(bào)表上展示的數(shù)據(jù)內(nèi)容越來(lái)越多,數(shù)據(jù)展示的行和列是無(wú)限擴(kuò)展的,用戶在一張報(bào)表上可展示多個(gè)查詢的內(nèi)容,包括明細(xì)查詢,交叉統(tǒng)計(jì)及圖表等。
[0003]在打印上述報(bào)表時(shí),多采用模板打印方式,模板打印方式最初是針對(duì)固定的紙張類型設(shè)計(jì)的,按給定的紙張類型打印時(shí),沒(méi)有任何問(wèn)題,如果更改了紙張類型或打印方向,打印可能就會(huì)出現(xiàn)問(wèn)題,如出現(xiàn)打印內(nèi)容不全等問(wèn)題。比如一般只考慮紙張高度方向的拆頁(yè),不考慮紙張的橫向?qū)挾?,如果紙張小于模板的寬度,就拋棄超出紙張寬度的部分,這樣會(huì)造成報(bào)表打印數(shù)據(jù)丟失。
[0004]解決此問(wèn)題通常使用兩種方式,即提供在線修改打印模板或提供多模板方式供選擇。但調(diào)整和設(shè)計(jì)打印模板是很煩人的一種事情,實(shí)際用戶操作起來(lái)會(huì)很麻煩,面對(duì)開(kāi)發(fā)人員/實(shí)施人員不是一下能解決的事情,對(duì)于最終用戶更是如此。
[0005]鑒于以上客觀技術(shù)原因,非常有必要提出一種新的報(bào)表打印方法,以方便用戶打印ERP系統(tǒng)中的報(bào)表。
【發(fā)明內(nèi)容】
[0006]本發(fā)明需要解決的問(wèn)題就在于克服現(xiàn)有技術(shù)的缺陷,提供一種報(bào)表打印方法,對(duì)ERP系統(tǒng)中的報(bào)表實(shí)現(xiàn)所見(jiàn)即所得的打印,不因報(bào)表的內(nèi)容及格式調(diào)整而調(diào)整打印模板。
[0007]為解決上述問(wèn)題,本發(fā)明的報(bào)表打印方法包括:
[0008]步驟100,準(zhǔn)備需要打印的數(shù)據(jù)表格,即報(bào)表,該報(bào)表包含數(shù)據(jù)、樣式等內(nèi)容;
[0009]步驟110,獲取打印設(shè)置信息,包括用戶預(yù)先設(shè)定好的打印區(qū)域設(shè)置信息、打印紙張?jiān)O(shè)置信息、打印順序信息、打印標(biāo)題區(qū)設(shè)置信息;
[0010]步驟120,獲取報(bào)表的有效打印區(qū)域范圍,即計(jì)算需要打印的最大行與列,優(yōu)先選擇用戶在打印設(shè)置信息里定義的打印區(qū)域范圍,若打印設(shè)置信息里沒(méi)有指定打印范圍,則需要確定有效的打印區(qū)域范圍;
[0011]步驟130,計(jì)算行拆頁(yè)位置表,即通過(guò)計(jì)算紙張高度方向的拆頁(yè)點(diǎn),進(jìn)而計(jì)算出拆頁(yè)對(duì)應(yīng)的行位置;
[0012]步驟140,計(jì)算列拆頁(yè)位置表,即通過(guò)計(jì)算紙張寬度方向的拆頁(yè)點(diǎn),進(jìn)而計(jì)算出拆頁(yè)對(duì)應(yīng)的列位置;
[0013]步驟150,根據(jù)行、列拆頁(yè)位置表計(jì)算出打印所對(duì)應(yīng)的打印區(qū)域范圍及位置,從而生成打印數(shù)據(jù)頁(yè);
[0014]步驟160,排除空白頁(yè);
[0015]步驟170,打印結(jié)束。
[0016]優(yōu)選地,上述技術(shù)方案進(jìn)一步包括:[0017](I)獲取有效的打印列數(shù):首先計(jì)算當(dāng)前報(bào)表的列數(shù),之后從最大列數(shù)開(kāi)始,以遞減I的方式判斷有效打印列數(shù);先判斷該列是否隱藏,如果該列隱藏,則列數(shù)減1,繼續(xù)循環(huán),直至排除最后的隱藏列;對(duì)于非隱藏列,從首行開(kāi)始,判斷單元格是否需要打印,如果在首行和最大行之間存在需要打印的單元,則當(dāng)前列數(shù)即為有效打印列數(shù),否則列數(shù)減1,繼續(xù)循環(huán),直至找到有效的打印列數(shù);
[0018](2)獲取有效的打印行數(shù):首先計(jì)算當(dāng)前報(bào)表的行數(shù),之后從最大行數(shù)開(kāi)始,以遞減I的方式判斷有效打印行數(shù);先判斷該行是否隱藏,如果該行隱藏,則行數(shù)減1,繼續(xù)循環(huán),直至排除最后的隱藏行;對(duì)于非隱藏行,從首列開(kāi)始,判斷單元格是否需要打印,如果在首列和最大列之間存在需要打印的單元,則當(dāng)前行數(shù)即為有效打印行數(shù),否則行數(shù)減1,繼續(xù)循環(huán),直至找到有效的打印行數(shù)。
[0019]優(yōu)選地,上述技術(shù)方案進(jìn)一步包括:
[0020](I)計(jì)算續(xù)頁(yè)打印高度,判斷是否存在固定行定義,若存在,則第一頁(yè)打印的高度即當(dāng)前紙張的可打印高度,其他頁(yè)的打印高度為紙張的可打印高度減去固定行的高度;若不存在,則設(shè)定續(xù)頁(yè)打印的高度為紙張打印區(qū)域的高度;
[0021](2)計(jì)算當(dāng)前頁(yè)可打印的最大行,設(shè)定第一頁(yè)的起始行為0,并記錄到行拆頁(yè)位置表中,根據(jù)當(dāng)前頁(yè)的打印高度及起始行,計(jì)算當(dāng)前頁(yè)可打印的最大行;
[0022]判斷當(dāng)前頁(yè)的起始行及最大行之間是否存在用戶拆頁(yè)點(diǎn),若存在,則將用戶拆頁(yè)點(diǎn)信息替代計(jì)算出的最大行;
[0023]判斷當(dāng)前頁(yè)最大行是否小于最大有效打印行數(shù),若小于最大有效打印行,則將此數(shù)據(jù)記錄在行拆頁(yè)位置表中,同時(shí)設(shè)定下頁(yè)的起始行為當(dāng)前頁(yè)最大行,進(jìn)入下一次循環(huán);若大于最大有效打印行,則將最大打印有效行記錄在行拆頁(yè)位置表中,結(jié)束循環(huán)。
[0024]優(yōu)選地,上述技術(shù)方案進(jìn)一步包括:
[0025](I)計(jì)算續(xù)頁(yè)打印寬度,判斷是否存在固定列定義,若存在,則第一頁(yè)打印的寬度即當(dāng)前紙張的可打印寬度,其他頁(yè)的打印寬度為紙張的可打印寬度減去固定列的寬度;若不存在,則設(shè)定續(xù)頁(yè)打印的寬度為紙張打印區(qū)域的寬度;
[0026](2)計(jì)算當(dāng)前頁(yè)可打印的最大列,設(shè)定第一頁(yè)的起始列為0,并記錄到列拆頁(yè)位置表中,根據(jù)當(dāng)前頁(yè)的打印寬度及起始列,計(jì)算當(dāng)前頁(yè)可打印的最大列;
[0027]判斷當(dāng)前頁(yè)的起始列及最大列之間是否存在用戶拆頁(yè)點(diǎn),若存在,則將用戶拆頁(yè)點(diǎn)信息替代計(jì)算出的最大列;
[0028]判斷當(dāng)前頁(yè)最大列是否小于最大有效打印列數(shù),若小于最大有效打印列,則將此數(shù)據(jù)記錄在列拆頁(yè)位置表中,同時(shí)設(shè)定下頁(yè)的起始列為當(dāng)前頁(yè)最大列,進(jìn)入下一次循環(huán);若大于最大有效打印列,則將最大打印有效列記錄在列拆頁(yè)位置表中,結(jié)束循環(huán)。
[0029]優(yōu)選地,上述技術(shù)方案進(jìn)一步包括:
[0030]對(duì)于不與邊界相鄰的數(shù)據(jù)頁(yè),僅判斷正常打印區(qū)域部分是否有有效的打印數(shù)據(jù);
[0031]對(duì)于與邊界相鄰的打印數(shù)據(jù)頁(yè),判斷所有區(qū)域內(nèi)是否包含有效的打印數(shù)據(jù)。
[0032]通過(guò)上述技術(shù)方案,可以實(shí)現(xiàn)以下技術(shù)效果:
[0033](I)對(duì)ERP系統(tǒng)中的報(bào)表實(shí)現(xiàn)所見(jiàn)即所得的打印,不因報(bào)表的內(nèi)容及格式調(diào)整而調(diào)整打印模板;
[0034](2)可以紙張動(dòng)態(tài)適配拆頁(yè),方便調(diào)整紙張的大小/方向以適配拆頁(yè);[0035](3)增加用戶拆頁(yè)點(diǎn),包括強(qiáng)制拆頁(yè)和分組拆頁(yè)等,方便分類歸檔與瀏覽;
[0036](4)排除空白頁(yè),避免浪費(fèi)紙張。
【專利附圖】
【附圖說(shuō)明】
[0037]圖1是本發(fā)明報(bào)表打印方法的流程圖;
[0038]圖2是本發(fā)明報(bào)表打印方法中獲取報(bào)表的有效打印區(qū)域范圍的流程圖;
[0039]圖3是本發(fā)明報(bào)表打印方法中計(jì)算行拆頁(yè)位置表的流程圖;
[0040]圖4是本發(fā)明報(bào)表打印方法中計(jì)算列拆頁(yè)位置表的流程圖。
【具體實(shí)施方式】
[0041]下面通過(guò)具體的實(shí)施例并結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。
[0042]請(qǐng)參考圖1,為本發(fā)明的報(bào)表打印方法的流程圖。該打印方法包括:
[0043]步驟100,準(zhǔn)備需要打印的數(shù)據(jù)表格,即報(bào)表,該報(bào)表包含數(shù)據(jù)、樣式等內(nèi)容;
[0044]步驟110,獲取打印設(shè)置信息,包括用戶預(yù)先設(shè)定好的打印區(qū)域設(shè)置信息、打印紙張?jiān)O(shè)置信息、打印順序信息、打印標(biāo)題區(qū)設(shè)置信息;
[0045]步驟120,獲取報(bào)表的有效打印區(qū)域范圍,即計(jì)算需要打印的最大行與列,優(yōu)先選擇用戶在打印設(shè)置信息里定義的打印區(qū)域范圍,若打印設(shè)置信息里沒(méi)有指定打印范圍,則需要確定有效的打印區(qū)域范圍;
[0046]步驟130,計(jì)算行拆頁(yè)位置表,即通過(guò)計(jì)算紙張高度方向的拆頁(yè)點(diǎn),進(jìn)而計(jì)算出拆頁(yè)對(duì)應(yīng)的行位置;
[0047]步驟140,計(jì)算列拆頁(yè)位置表,即通過(guò)計(jì)算紙張寬度方向的拆頁(yè)點(diǎn),進(jìn)而計(jì)算出拆頁(yè)對(duì)應(yīng)的列位置;
[0048]步驟150,根據(jù)行、列拆頁(yè)位置表計(jì)算出打印所對(duì)應(yīng)的打印區(qū)域范圍及位置,從而生成打印數(shù)據(jù)頁(yè);
[0049]步驟160,排除空白頁(yè);
[0050]步驟170,打印結(jié)束。
[0051]請(qǐng)參考圖2,對(duì)于步驟120,獲取報(bào)表的有效打印區(qū)域范圍,優(yōu)先選擇打印設(shè)置信息中的設(shè)置內(nèi)容,如果在打印設(shè)置信息里沒(méi)有指定打印范圍,則需要根據(jù)顯示范圍計(jì)算有效的打印區(qū)域范圍,進(jìn)一步包括:(I)獲取有效的打印列數(shù):首先計(jì)算當(dāng)前報(bào)表的列數(shù),之后從最大列數(shù)開(kāi)始,以遞減I的方式判斷有效打印列數(shù);先判斷該列是否隱藏,如果該列隱藏,則列數(shù)減1,繼續(xù)循環(huán),直至排除最后的隱藏列;對(duì)于非隱藏列,從首行開(kāi)始,判斷單元格是否需要打印,如果在首行和最大行之間存在需要打印的單元,則當(dāng)前列數(shù)即為有效打印列數(shù),否則列數(shù)減1,繼續(xù)循環(huán),直至找到有效的打印列數(shù)。(2)獲取有效的打印行數(shù):其處理邏輯同前述獲取有效打印列數(shù),首先計(jì)算當(dāng)前報(bào)表的行數(shù),之后從最大行數(shù)開(kāi)始,以遞減I的方式判斷有效列范圍內(nèi)是否存在可打印單元,若存在,則當(dāng)前行數(shù)即為有效打印行數(shù)。其中,判斷打印單元是否可用的依據(jù)是:單元格沒(méi)有設(shè)置不允許打印,或者單元格數(shù)據(jù)為空并且沒(méi)有表格顯示樣式的設(shè)置而且不屬于某個(gè)區(qū)域模型,如圖表區(qū)域等。
[0052]請(qǐng)參考圖3,對(duì)于步驟130,計(jì)算行拆頁(yè)位置表,即計(jì)算行拆頁(yè)點(diǎn)(即行號(hào))。在計(jì)算行拆頁(yè)點(diǎn)中,要考慮固定行及用戶拆特定拆頁(yè)點(diǎn)。行拆頁(yè)位置表中,第一個(gè)為起始行。通過(guò)比較行拆頁(yè)位置表中相鄰的兩個(gè)數(shù),就可以計(jì)算出每頁(yè)的具體行范圍。進(jìn)一步包括:(1)計(jì)算續(xù)頁(yè)打印高度,判斷是否存在固定行定義,若存在,則第一頁(yè)打印的高度即當(dāng)前紙張的可打印高度,其他頁(yè)的打印高度為紙張的可打印高度減去固定行的高度;若不存在,則設(shè)定續(xù)頁(yè)打印的高度為紙張打印區(qū)域的高度。(2)計(jì)算當(dāng)前頁(yè)可打印的最大行,設(shè)定第一頁(yè)的起始行為O,并記錄到行拆頁(yè)位置表中,根據(jù)當(dāng)前頁(yè)的打印高度及起始行,計(jì)算當(dāng)前頁(yè)可打印的最大行。判斷當(dāng)前頁(yè)的起始行及最大行之間是否存在用戶拆頁(yè)點(diǎn)(即用戶分頁(yè)信息),若存在,則將用戶拆頁(yè)點(diǎn)信息替代計(jì)算出的最大行。判斷當(dāng)前頁(yè)最大行是否小于最大有效打印行數(shù),若小于最大有效打印行,則將此數(shù)據(jù)記錄在行拆頁(yè)位置表中,同時(shí)設(shè)定下頁(yè)的起始行為當(dāng)前頁(yè)最大行,進(jìn)入下一次循環(huán);若大于最大有效打印行,則將最大打印有效行記錄在行拆頁(yè)位置表中,結(jié)束循環(huán)。
[0053]請(qǐng)參考圖4,對(duì)于步驟140,計(jì)算列拆頁(yè)位置表,即計(jì)算列拆頁(yè)點(diǎn)(即列號(hào))。進(jìn)一步包括:(1)計(jì)算續(xù)頁(yè)打印寬度,判斷是否存在固定列定義,若存在,則第一頁(yè)打印的寬度即當(dāng)前紙張的可打印寬度,其他頁(yè)的打印寬度為紙張的可打印寬度減去固定列的寬度;若不存在,則設(shè)定續(xù)頁(yè)打印的寬度為紙張打印區(qū)域的寬度。(2)計(jì)算當(dāng)前頁(yè)可打印的最大列,設(shè)定第一頁(yè)的起始列為0,并記錄到列拆頁(yè)位置表中,根據(jù)當(dāng)前頁(yè)的打印寬度及起始列,計(jì)算當(dāng)前頁(yè)可打印的最大列。判斷當(dāng)前頁(yè)的起始列及最大列之間是否存在用戶拆頁(yè)點(diǎn)(即用戶分頁(yè)信息),若存在,則將用戶拆頁(yè)點(diǎn)信息替代計(jì)算出的最大列。判斷當(dāng)前頁(yè)最大列是否小于最大有效打印列數(shù),若小于最大有效打印列,則將此數(shù)據(jù)記錄在列拆頁(yè)位置表中,同時(shí)設(shè)定下頁(yè)的起始列為當(dāng)前頁(yè)最大列,進(jìn)入下一次循環(huán);若大于最大有效打印列,則將最大打印有效列記錄在列拆頁(yè)位置表中,結(jié)束循環(huán)。
[0054]對(duì)于步驟150,生成打印數(shù)據(jù)頁(yè)。根據(jù)計(jì)算出的行拆頁(yè)位置表、列拆頁(yè)位置表,就能計(jì)算出每頁(yè)打印的數(shù)據(jù)范圍。打印數(shù)據(jù)頁(yè)根據(jù)位置分為四類:(1)與左邊界及上邊界都相鄰的數(shù)據(jù)頁(yè)只有一個(gè)打印區(qū)域,此類數(shù)據(jù)頁(yè)也只有一個(gè)。(2)僅與左邊界相鄰的,包括固定行打印區(qū)域及正常打印區(qū)域,固定行區(qū)域是行區(qū)間固定,列區(qū)間為正常打印區(qū)域的起止列。
(3)僅與上邊界相鄰的,包括固定列打印區(qū)域及正常打印區(qū)域,固定列部分是列區(qū)間固定,行區(qū)間是正常打印區(qū)域的起止行。(4)與左邊界及上邊界都不相鄰的,打印區(qū)域可以分為四部分,固定行/固定列交叉的部分,此部分是固定的,即起止行,起止列是不變的;固定行部分,固定列部分,及正常打印區(qū)域部分,固定行區(qū)域是行區(qū)間固定,列區(qū)間為正常打印區(qū)域的起止列,固定列部分是列區(qū)間固定,行區(qū)間是正常打印區(qū)域的起止行。在計(jì)算打印數(shù)據(jù)頁(yè)時(shí),根據(jù)打印設(shè)置信息里的打印順序信息對(duì)打印數(shù)據(jù)頁(yè)進(jìn)行排序。包括:先列后行,或先行后列。
[0055]對(duì)于步驟160,生成打印數(shù)據(jù)頁(yè)后,還要排除沒(méi)有打印內(nèi)容的數(shù)據(jù)頁(yè),即排除空白頁(yè),防止浪費(fèi)紙張。判斷規(guī)則包括:對(duì)于不與邊界相鄰的數(shù)據(jù)頁(yè),僅判斷正常打印區(qū)域部分是否有有效的打印數(shù)據(jù);對(duì)于與邊界相鄰的打印數(shù)據(jù)頁(yè),判斷所有區(qū)域內(nèi)是否包含有效的打印數(shù)據(jù)。
[0056]通過(guò)以上結(jié)合附圖對(duì)本發(fā)明實(shí)施例的描述,可以清楚地理解,根據(jù)本發(fā)明的報(bào)表打印方法,可以對(duì)ERP系統(tǒng)中的報(bào)表實(shí)現(xiàn)所見(jiàn)即所得的打印。
[0057]最后應(yīng)說(shuō)明的是:顯然,上述實(shí)施例僅僅是為清楚地說(shuō)明本發(fā)明所作的舉例,而并非對(duì)實(shí)施方式的限定。對(duì)于所屬領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在上述說(shuō)明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng)。這里無(wú)需也無(wú)法對(duì)所有的實(shí)施方式予以窮舉。而由此所引申出的顯而易見(jiàn)的變化或變動(dòng)仍處于本發(fā)明的保護(hù)范圍之中。
【權(quán)利要求】
1.一種報(bào)表打印方法,其特征在于,包括以下步驟: 步驟100,準(zhǔn)備需要打印的數(shù)據(jù)表格,即報(bào)表,該報(bào)表包含數(shù)據(jù)、樣式等內(nèi)容; 步驟110,獲取打印設(shè)置信息,包括用戶預(yù)先設(shè)定好的打印區(qū)域設(shè)置信息、打印紙張?jiān)O(shè)置信息、打印順序信息、打印標(biāo)題區(qū)設(shè)置信息; 步驟120,獲取報(bào)表的有效打印區(qū)域范圍,即計(jì)算需要打印的最大行與列,優(yōu)先選擇用戶在打印設(shè)置信息里定義的打印區(qū)域范圍,若打印設(shè)置信息里沒(méi)有指定打印范圍,則需要確定有效的打印區(qū)域范圍; 步驟130,計(jì)算行拆頁(yè)位置表,即通過(guò)計(jì)算紙張高度方向的拆頁(yè)點(diǎn),進(jìn)而計(jì)算出拆頁(yè)對(duì)應(yīng)的行位置; 步驟140,計(jì)算列拆頁(yè)位置表,即通過(guò)計(jì)算紙張寬度方向的拆頁(yè)點(diǎn),進(jìn)而計(jì)算出拆頁(yè)對(duì)應(yīng)的列位置; 步驟150,根據(jù)行、列拆頁(yè)位置表計(jì)算出打印所對(duì)應(yīng)的打印區(qū)域范圍及位置,從而生成打印數(shù)據(jù)頁(yè); 步驟160,排除空白頁(yè); 步驟170,打印結(jié)束。
2.如權(quán)利要求1 所述的報(bào)表打印方法,其特征在于,進(jìn)一步包括: (1)獲取有效的打印列數(shù):首先計(jì)算當(dāng)前報(bào)表的列數(shù),之后從最大列數(shù)開(kāi)始,以遞減I的方式判斷有效打印列數(shù);先判斷該列是否隱藏,如果該列隱藏,則列數(shù)減1,繼續(xù)循環(huán),直至排除最后的隱藏列;對(duì)于非隱藏列,從首行開(kāi)始,判斷單元格是否需要打印,如果在首行和最大行之間存在需要打印的單元,則當(dāng)前列數(shù)即為有效打印列數(shù),否則列數(shù)減1,繼續(xù)循環(huán),直至找到有效的打印列數(shù); (2)獲取有效的打印行數(shù):首先計(jì)算當(dāng)前報(bào)表的行數(shù),之后從最大行數(shù)開(kāi)始,以遞減I的方式判斷有效打印行數(shù);先判斷該行是否隱藏,如果該行隱藏,則行數(shù)減1,繼續(xù)循環(huán),直至排除最后的隱藏行;對(duì)于非隱藏行,從首列開(kāi)始,判斷單元格是否需要打印,如果在首列和最大列之間存在需要打印的單元,則當(dāng)前行數(shù)即為有效打印行數(shù),否則行數(shù)減1,繼續(xù)循環(huán),直至找到有效的打印行數(shù)。
3.如權(quán)利要求1所述的報(bào)表打印方法,其特征在于,步驟130進(jìn)一步包括: (1)計(jì)算續(xù)頁(yè)打印高度,判斷是否存在固定行定義,若存在,則第一頁(yè)打印的高度即當(dāng)前紙張的可打印高度,其他頁(yè)的打印高度為紙張的可打印高度減去固定行的高度;若不存在,則設(shè)定續(xù)頁(yè)打印的高度為紙張打印區(qū)域的高度; (2)計(jì)算當(dāng)前頁(yè)可打印的最大行,設(shè)定第一頁(yè)的起始行為0,并記錄到行拆頁(yè)位置表中,根據(jù)當(dāng)前頁(yè)的打印高度及起始行,計(jì)算當(dāng)前頁(yè)可打印的最大行; 判斷當(dāng)前頁(yè)的起始行及最大行之間是否存在用戶拆頁(yè)點(diǎn),若存在,則將用戶拆頁(yè)點(diǎn)信息替代計(jì)算出的最大行; 判斷當(dāng)前頁(yè)最大行是否小于最大有效打印行數(shù),若小于最大有效打印行,則將此數(shù)據(jù)記錄在行拆頁(yè)位置表中,同時(shí)設(shè)定下頁(yè)的起始行為當(dāng)前頁(yè)最大行,進(jìn)入下一次循環(huán);若大于最大有效打印行,則將最大打印有效行記錄在行拆頁(yè)位置表中,結(jié)束循環(huán)。
4.如權(quán)利要求1所述的報(bào)表打印方法,其特征在于,步驟140進(jìn)一步包括: (I)計(jì)算續(xù)頁(yè)打印寬度,判斷是否存在固定列定義,若存在,則第一頁(yè)打印的寬度即當(dāng)前紙張的可打印寬度,其他頁(yè)的打印寬度為紙張的可打印寬度減去固定列的寬度;若不存在,則設(shè)定續(xù)頁(yè)打印的寬度為紙張打印區(qū)域的寬度; (2)計(jì)算當(dāng)前頁(yè)可打印的最大列,設(shè)定第一頁(yè)的起始列為O,并記錄到列拆頁(yè)位置表中,根據(jù)當(dāng)前頁(yè)的打印寬度及起始列,計(jì)算當(dāng)前頁(yè)可打印的最大列; 判斷當(dāng)前頁(yè)的起始列及最大列之間是否存在用戶拆頁(yè)點(diǎn),若存在,則將用戶拆頁(yè)點(diǎn)信息替代計(jì)算出的最大列; 判斷當(dāng)前頁(yè)最大列是否小于最大有效打印列數(shù),若小于最大有效打印列,則將此數(shù)據(jù)記錄在列拆頁(yè)位置表中,同時(shí)設(shè)定下頁(yè)的起始列為當(dāng)前頁(yè)最大列,進(jìn)入下一次循環(huán);若大于最大有效打印列,則將最大打印有效列記錄在列拆頁(yè)位置表中,結(jié)束循環(huán)。
5.如權(quán)利要求1所述的報(bào)表打印方法,其特征在于,對(duì)于步驟150生成的打印數(shù)據(jù)頁(yè)分為四類: (1)與左邊界及上邊界都相鄰的數(shù)據(jù)頁(yè)只有一個(gè)打印區(qū)域,此類數(shù)據(jù)頁(yè)也只有一個(gè); (2)僅與左邊界相鄰的,包括固定行打印區(qū)域及正常打印區(qū)域,固定行區(qū)域是行區(qū)間固定,列區(qū)間為正常打印區(qū)域的起止列; (3)僅與上邊界相鄰的,包括固定列打印區(qū)域及正常打印區(qū)域,固定列部分是列區(qū)間固定,行區(qū)間是正常打印區(qū)域的起止行; (4)與左邊界及上邊界都不相鄰的,打印區(qū)域可以分為四部分,固定行/固定列交叉的部分,此部分是固定的,即 起止行,起止列是不變的;固定行部分,固定列部分,及正常打印區(qū)域部分,固定行區(qū)域是行區(qū)間固定,列區(qū)間為正常打印區(qū)域的起止列,固定列部分是列區(qū)間固定,行區(qū)間是正常打印區(qū)域的起止行。
6.如權(quán)利要求5所述的報(bào)表打印方法,其特征在于,打印數(shù)據(jù)頁(yè)的打印順序包括:先列后行,或先行后列。
7.如權(quán)利要求1所述的報(bào)表打印方法,其特征在于,步驟160進(jìn)一步包括: 對(duì)于不與邊界相鄰的數(shù)據(jù)頁(yè),僅判斷正常打印區(qū)域部分是否有有效的打印數(shù)據(jù); 對(duì)于與邊界相鄰的打印數(shù)據(jù)頁(yè),判斷所有區(qū)域內(nèi)是否包含有效的打印數(shù)據(jù)。
【文檔編號(hào)】G06F3/12GK103617012SQ201310654767
【公開(kāi)日】2014年3月5日 申請(qǐng)日期:2013年12月5日 優(yōu)先權(quán)日:2013年12月5日
【發(fā)明者】馬文華 申請(qǐng)人:用友軟件股份有限公司