2.6. Číslování záznamů s využitím vlastnosti Running Sum

Automatické číslování záznamů sestavy je možno realizovat také pomocí vlastnosti "Running Sum" objektu třídy "Text Box". Na obr. 24 je ukázka sestavy, která ho využívá. Ukazuje číslování:

souvislou řadou od 1, to je bez problémů,

od hodnoty zadané jako parametr (ve složených závorkách), to nefunguje, neboť parametr je vracen v textové podobě, nikoliv jako číslo (pomohlo by převedení vráceného parametru na číslo funkcí Val(), tím by se vrácená hodnota stala číslem, má to jen dva zádrhely, první nastane, pokud bude parametr zadán prázdný, druhý je popsán v další odrážce),

od hodnoty zadané funkcí, tady sice číslování probíhá, ale na výsledku je zřejmé, že zadaná hodnota slouží nejen jako číslo prvního záznamu, ale současně jako krok počítadla.

Pokud tedy chcete začít počítání od jiného než prvního čísla, musíte vytvořit vlastní systém pomocí funkcí, jak to bylo popsáno v předchozí kapitole.

Obr. 24. Sestava s automatickým číslováním

Obr. 25. Sestava s vnořeným automatickým číslováním

Pomocí vlastnosti "Running Sum" je možno vytvářet také vnořené seznamy, jak ukazuje obr. 25. Všimněte si především různého nastavení hodnoty parametru "Running Sum".

Na obr. 26. je pro úplnost uvedena sestavy doplňující jednotlivé záznamy odrážkami. Hlavní problém při tvorbě odrážek spočívá ve vložení znaku pro odrážky. Pokud ho font použitý pro objekt obsahuje, vložíme ho nejsnáze klávesovou zkratkou, stiskem klávesy Alt a postupným natypováním čísla 0149. Pokud ho použitý styl neobsahuje, musíme vložit odrážku jako samostatný objekt (třídy "Label" nebo "Text Box"), který bude používat vhodný font. Osvědčily se zejména MS Sans Serif, Arial apod. Naopak se nehodí Symbol, Terminal, Wingdings apod.

Obr. 26. Sestava s odrážkami

2.7.Opakování záznamů v sestavě

V některých aplikací se vyskytuje požadavek opakování záznamů v sestavě. Např. při tisku adresních štítků je požadováni pro každou osobu vytištění tří štítků (na dopis, na obálku, do archivu). Pokud nechceme tisknout tutéž sestavu opakovaně, můžeme využít vlastnosti "On Format" sekce "Detail" v sestavě pro tisk štítků. Do procedury pro její obsluhu umístíme následující kód:

Sub Detail1_Format (Cancel As Integer, FormatCount As Integer)

'Dokud počet formátování nepřesáhne požadovaný počet

' opakování, je zakázán přechod na další záznam

If FormatCount < Forms![UkazkySestav]![Pocet] Then

Me.NextRecord = False

End If

End Sub

Počítadlo FormatCount udává kolikrát byla sekce formátována. Tento počet se porovnává s požadovaným počtem (v ukázce odkazem na položku formuláře). Pokud nebyl požadovaný počet dosažen, nastaví se vlastnost "Next Record", která povoluje přechod na další záznam (při každém formátování je implicitně nastavena na hodnotu True, tedy povolení přechodu na další záznam).

Tento postup je možno kombinovat i s číslováním záznamů. Pokud použijeme číslování pomocí parametru "Running Sum", pak všechny opakující se shodné záznamy budou mít stejné číslo. Stejně tomu bude i při číslování pomocí funkce vracející zvyšující se číslo.

V případě, kdy sekce Detail zabírala polovinu strany a měla být opakována 2x docházelo k situaci, že sekce byla opakována 3x vždy, když její první výskyt začínal na nové straně. Problém se podařilo vyřešit až poté, co byla popsaná funkce pro opakování záznamu přesunuta k obsluze události On Print.

2.8. Sestava s dynamickými grafickými prvky

Pro lepší přehlednost sestav se je často snažíme doplnit různými grafickými prvky. Ne vždy je přitom možno využít standardní aplikaci MS Graph. Na obr. 27 je zobrazen návrh sestavy, která pro každý záznam obsahuje výpočet procentního podílu na celkové odpracované době v položce "Proc", její obsah je určen výpočtem =[Doba]/[Celkem]. Doba je zdrojová položka záznamu obsahující počet odpracovaných let, "Celkem" je objekt sestavy v jejím záhlaví, jeho obsah je určen výpočtem =Sum([Doba]). Grafický objekt "Linka" mění svoji velikost podle hodnoty položky "Proc". K tomu slouží funkce připojená k vlastnosti "On Format" sekce "Detail" sestavy. Výsledný vzhled sestavy se na obr. 28

Obr. 27. Návrh sestavy s grafickými prvky proměnné velikosti

Obr. 28. Sestava s grafickými prvky proměnné velikosti