打破數(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"
在下圖中,顯示了一個帶子是如何被打破的。
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ù)的打印情況:
要把主數(shù)據(jù)行和詳細(xì)數(shù)據(jù)行放在一起,請啟用 "KeepDetail "帶的 "KeepDetail "屬性。這個屬性用于 "master-detail "類型的報(bào)告中:
為了防止 "hanging "頁眉和頁腳,請使用 "KeepWithData "屬性。下面這些帶子都有這個屬性:
- report header
- 報(bào)告頁腳
- data header
- 數(shù)據(jù)頁腳
- 組頭
- 組頁腳
這個屬性允許保持至少有一個數(shù)據(jù)行的頁眉/頁腳:
為了使一個帶子和它的子帶子保持在一起,啟用 "KeepChild "屬性。