[發(fā)明專利]報表首頁和續(xù)頁打印方法有效
| 申請?zhí)枺?/td> | 201310701296.5 | 申請日: | 2013-12-18 |
| 公開(公告)號: | CN103617014A | 公開(公告)日: | 2014-03-05 |
| 發(fā)明(設(shè)計)人: | 馬文華 | 申請(專利權(quán))人: | 用友軟件股份有限公司 |
| 主分類號: | G06F3/12 | 分類號: | G06F3/12 |
| 代理公司: | 北京中恒高博知識產(chǎn)權(quán)代理有限公司 11249 | 代理人: | 劉洪京 |
| 地址: | 100094 北京*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 報表 首頁 打印 方法 | ||
1.一種報表首頁和續(xù)頁的打印方法,其特征在于,包括以下步驟:
步驟100,準(zhǔn)備需要打印的數(shù)據(jù)表格,即報表,該報表包含數(shù)據(jù)、樣式等內(nèi)容;
步驟110,獲取打印設(shè)置信息,包括用戶預(yù)先設(shè)定好的打印區(qū)域設(shè)置信息、打印紙張設(shè)置信息、打印順序信息、打印標(biāo)題區(qū)設(shè)置信息;
步驟120,計算報表的有效打印區(qū)域范圍,即計算需要打印的有效打印行數(shù)和有效打印列數(shù),優(yōu)先選擇用戶在打印設(shè)置信息里定義的打印區(qū)域范圍,若打印設(shè)置信息里沒有指定打印范圍,則需要計算有效的打印區(qū)域范圍;
步驟130,計算行拆頁位置表,即通過計算紙張高度方向的拆頁點(diǎn),進(jìn)而計算出拆頁對應(yīng)的行位置;
步驟140,計算列拆頁位置表,即通過計算紙張寬度方向的拆頁點(diǎn),進(jìn)而計算出拆頁對應(yīng)的列位置;
步驟150,根據(jù)行、列拆頁位置表計算出打印所對應(yīng)的打印區(qū)域范圍及位置,從而生成打印數(shù)據(jù)頁;
步驟160,排除空白頁;
步驟170,打印結(jié)束。
2.如權(quán)利要求1所述的方法,其特征在于,步驟120中計算有效打印行數(shù)和有效打印列數(shù)進(jìn)一步包括:
(1)計算有效的打印行數(shù):首先計算當(dāng)前報表的行數(shù),之后從最大行數(shù)開始,以遞減1的方式判斷有效打印行數(shù);先判斷該行是否隱藏,如果該行隱藏,則行數(shù)減1,繼續(xù)循環(huán),直至排除最后的隱藏行;對于非隱藏行,從首列開始,判斷單元格是否需要打印,如果在首列和最大列之間存在需要打印的單元,則當(dāng)前行數(shù)即為有效打印行數(shù),否則行數(shù)減1,繼續(xù)循環(huán),直至找到有效的打印行數(shù);
(2)計算有效的打印列數(shù):首先計算當(dāng)前報表的列數(shù),之后從最大列數(shù)開始,以遞減1的方式判斷有效打印列數(shù);先判斷該列是否隱藏,如果該列隱藏,則列數(shù)減1,繼續(xù)循環(huán),直至排除最后的隱藏列;對于非隱藏列,從首行開始,判斷單元格是否需要打印,如果在首行和最大行之間存在需要打印的單元,則當(dāng)前列數(shù)即為有效打印列數(shù),否則列數(shù)減1,繼續(xù)循環(huán),直至找到有效的打印列數(shù)。
3.如權(quán)利要求1所述的方法,其特征在于,步驟130進(jìn)一步包括:
(1)確定首頁的打印高度是當(dāng)前紙張的可打印高度;
(2)其他續(xù)頁的打印高度計算如下:
(2.1)將續(xù)頁標(biāo)題區(qū)的定義及固定行標(biāo)題的定義進(jìn)行合并,計算續(xù)頁固定打印的高度,
(2.2)紙張的可打印高度減去固定打印的高度,從而得到續(xù)頁的打印高度;
(3)根據(jù)首頁、續(xù)頁處理依據(jù),對首次打印拆頁進(jìn)行動態(tài)行高度設(shè)定,其中首頁、續(xù)頁處理依據(jù)是:
(3.1)首頁標(biāo)題區(qū)定義的內(nèi)容除與續(xù)頁標(biāo)題定義的交叉部分及固定行定義的交叉部分外,不在續(xù)頁中出現(xiàn);
(3.2)續(xù)頁標(biāo)題區(qū)定義的內(nèi)容除與首頁標(biāo)題區(qū)定義的交叉部分外,不在首頁中顯示;
(3.3)續(xù)頁標(biāo)題區(qū)與固定行定義區(qū)進(jìn)行合并后確定續(xù)頁每頁需要打印的內(nèi)容;
(4)計算當(dāng)前頁可打印的最大行,設(shè)定第一頁的起始行為0,并記錄到行拆頁位置表中,根據(jù)當(dāng)前頁的打印高度及起始行,計算當(dāng)前頁可打印的最大行;
判斷當(dāng)前頁的起始行及最大行之間是否存在用戶拆頁點(diǎn)信息,若存在,則將該用戶拆頁點(diǎn)信息替代計算出的最大行;
判斷當(dāng)前頁最大行是否小于有效打印行數(shù),若小于有效打印行數(shù),則將此數(shù)據(jù)記錄在行拆頁位置表中,同時設(shè)定下頁的起始行為當(dāng)前頁最大行,進(jìn)入下一次循環(huán);若大于有效打印行數(shù),則將打印有效行數(shù)記錄在行拆頁位置表中,結(jié)束循環(huán)。
4.如權(quán)利要求1所述的方法,其特征在于,步驟140進(jìn)一步包括:
(1)計算續(xù)頁打印寬度,判斷是否存在固定列定義,若存在,則第一頁打印的寬度即當(dāng)前紙張的可打印寬度,其他頁的打印寬度為紙張的可打印寬度減去固定列的寬度;若不存在,則設(shè)定續(xù)頁打印的寬度為紙張打印區(qū)域的寬度;
(2)計算當(dāng)前頁可打印的最大列,設(shè)定第一頁的起始列為0,并記錄到列拆頁位置表中,根據(jù)當(dāng)前頁的打印寬度及起始列,計算當(dāng)前頁可打印的最大列;
判斷當(dāng)前頁的起始列及最大列之間是否存在用戶拆頁點(diǎn)信息,若存在,則將該用戶拆頁點(diǎn)信息替代計算出的最大列;
判斷當(dāng)前頁最大列是否小于有效打印列數(shù),若小于有效打印列數(shù),則將此數(shù)據(jù)記錄在列拆頁位置表中,同時設(shè)定下頁的起始列為當(dāng)前頁最大列,進(jìn)入下一次循環(huán);若大于有效打印列數(shù),則將打印有效列數(shù)記錄在列拆頁位置表中,結(jié)束循環(huán)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于用友軟件股份有限公司,未經(jīng)用友軟件股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310701296.5/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F3-00 用于將所要處理的數(shù)據(jù)轉(zhuǎn)變成為計算機(jī)能夠處理的形式的輸入裝置;用于將數(shù)據(jù)從處理機(jī)傳送到輸出設(shè)備的輸出裝置,例如,接口裝置
G06F3-01 .用于用戶和計算機(jī)之間交互的輸入裝置或輸入和輸出組合裝置
G06F3-05 .在規(guī)定的時間間隔上,利用模擬量取樣的數(shù)字輸入
G06F3-06 .來自記錄載體的數(shù)字輸入,或者到記錄載體上去的數(shù)字輸出
G06F3-09 .到打字機(jī)上去的數(shù)字輸出
G06F3-12 .到打印裝置上去的數(shù)字輸出





