• <menu id="w2i4a"></menu>
  • logo FastReport中文文檔

    文檔首頁>>FastReport中文文檔>>打破數(shù)據(jù)并保持其一致性

    打破數(shù)據(jù)并保持其一致性


    在本節(jié)中,我們將研究兩種數(shù)據(jù)打印模式--"Break "和 "Keep together"。

    在常規(guī)的帶狀打印模式中,F(xiàn)astReport檢查當(dāng)前頁是否有足夠的空間來打印一個帶狀。如果沒有,則在下一頁上全部打印出帶子。如果帶子的 "CanBreak "屬性被激活,F(xiàn)astReport將嘗試將帶子的一部分打印在可用的空間上,也就是 "Break "。

    打破一個帶子的嘗試可以成功,也可以不成功。這取決于被放置在帶子上的對象的類型和它的設(shè)置。以下物體可以被打破:

    • "Text"
    • "Rich Text"
    • "Table"
    這些對象也有 "CanBreak "屬性。如果它被啟用,那么該對象就可以被打破。不易破碎的對象總是完全顯示,在那里,它們有足夠的位置。

    在下圖中,顯示了一個帶子是如何被打破的。

    7
    Break algorithm does not always work correctly. The artifacts can occur in a situation, when there are several objects with different font size on a band.

    斷帶的目的是為了節(jié)省印張上的空間。數(shù)據(jù)保持的目標(biāo)則相反:在一張紙上完全顯示一組帶子。在這種情況下,雖然紙張上會有很多未使用的空間,但數(shù)據(jù)的打印方式讓人很舒服。

    "keep together "機(jī)制允許將一組帶子保持在一張紙上(或列,如果報(bào)告有列的話)。如果在打印時(shí),保留的數(shù)據(jù)到了頁面的末端,F(xiàn)astReport會將所有已經(jīng)打印過的數(shù)據(jù)重新定位到新的頁面。

    你可以在以下情況下使用 "keep together":

    一起打印 "Data"帶的所有行;

    一起打印一個組的所有元素(頁眉、數(shù)據(jù)、頁腳);

    將主數(shù)據(jù)源的行與所有明細(xì)行一起打印(在 "master-detai "報(bào)告中);

    打印報(bào)告頁眉或數(shù)據(jù)頁眉與至少一個數(shù)據(jù)行;

    打印報(bào)告頁腳或數(shù)據(jù)頁腳以及至少一個數(shù)據(jù)行;

    一起打印父帶和子帶。

    讓我們來看看 "keep together "機(jī)制的使用情況。

    要把所有的數(shù)據(jù)行或組元素(頁眉、數(shù)據(jù)、頁腳)放在一起,請啟用 "KeepTogether "屬性。這個屬性在 "Data "和 "Group Header "帶中使用。

    下圖顯示了在有和沒有保持在一起的情況下數(shù)據(jù)的打印情況:

    8

    要把主數(shù)據(jù)行和詳細(xì)數(shù)據(jù)行放在一起,請啟用 "KeepDetail "帶的 "KeepDetail "屬性。這個屬性用于 "master-detail "類型的報(bào)告中:

    10

    為了防止 "hanging "頁眉和頁腳,請使用 "KeepWithData "屬性。下面這些帶子都有這個屬性:

    • report header
    • 報(bào)告頁腳
    • data header
    • 數(shù)據(jù)頁腳
    • 組頭
    • 組頁腳

    這個屬性允許保持至少有一個數(shù)據(jù)行的頁眉/頁腳: 

    11

    為了使一個帶子和它的子帶子保持在一起,啟用 "KeepChild "屬性。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();