Hlavní navigace

Tipy pro MS Access - práce s tiskovými sestavami

1. 5. 1999

Sdílet

Seskupování, třídění- Access umožňuje údaje, které mají být vytisknuté, seskupit do logických kategorií (např. prodejní skupina/prodejce/konkrétní smlouvy v případě sestavy p...
Seskupování, třídění
- Access umožňuje údaje, které mají být vytisknuté, seskupit do logických
kategorií (např. prodejní skupina/prodejce/konkrétní smlouvy v případě sestavy
prodeje smluv). Jednotlivé položky, podle nichž mají být údaje sestavy
seskupeny, zadáte v okně Řazení a seskupování. Požadovaný způsob seskupování
potom zvolte v poli Seskupovat. Chcete-li pouze údaje seřadit (a ne seskupit),
zvolte pole, podle kterého má být sestava seřazena, v poli Seskupovat zadejte
Každou hodnotu a dále nastavte způsob třídění (vzestupně, sestupně).

- V případě datumových údajů použitých v tiskové sestavě můžete využít možnosti
nabízené programem: seskupit podle roku, čtvrtletí, měsíce, týdne a dne (pole
Seskupovat). To se hodí zejména u statistik, kdy například potřebujete získat
souhrnné údaje o prodeji v jednotlivých časových obdobích. (Analogicky u
časových údajů Access nabízí seskupování podle hodin a minut.)

- K zobrazení formátu datumových a časových údajů je vhodné použít funkci
Format. Například v případě sestavy prodeje po jednotlivých týdnech k zobrazení
názvů konkrétních dnů vytvořte textové pole, a jako zdroj tohoto pole zadejte
=Format([Datum];"dddd"); k výpisu pouze zkratek jednotlivých dnů potom
=Format([Datum];"ddd").

- Ke každé skupině můžete nastavit Záhlaví a Zápatí (okno Řazení a
seskupování), tzn. oblasti, které se zobrazí při každé změně údajů ve skupině
(např. při změně prodejce), a ve kterých můžete tisknout potřebné údaje (v
záhlaví jméno a příjmení prodejce; v zápatí pak částečné součty, například
celkový počet smluv uzavřených prodejcem).

Zrušení tisku
- Jednou z možností, jak zrušit tisk prázdné tiskové sestavy (tedy sestavy
neobsahující žádné údaje), je použít událost Při nepřítomnosti dat (v orig. No
Data). Zvolte Událostní procedura a do vytvořené procedury Report_NoData
(obsahující parametr Cancel) zapište kód Cancel = True. V této proceduře můžete
pochopitelně zapsat i další dodatečné "chování" programu na nepřítomnost dat.

Výstup údajů
- Údaje sestavy nemusíte nutně vytisknout, ale Access nabízí volbu exportu do
souboru. Při interaktivní práci s databází zvolte požadovanou sestavu v okně
Databáze a zvolte Uložit jako/export... z nabídky Soubor nebo z nabídky, která
se zobrazí po stisknutí pravého tlačítka myši. V následujícím dialogovém okně
zadejte název, umístění a formát výsledného souboru. (Exportovat můžete např.
do souborů formátů txt, rtf, xls či html.)

- K exportu tiskové sestavy do souboru z programového kódu je určena metoda
OutputTo příkazu DoCmd, která má několik parametrů. Zejména je to typ a název
ukládaného objektu, a dále název a výstupní formát výsledného souboru. Jako
příklad uvádíme export sestavy Prodejci do tabulky Excelu nazvané Statistika -
\\DoCmd.OutputTo acOutputReport, "Prodejci", acFormatXLS,
"C:VýsledkyStatistika.xls", False.

- K zobrazení tiskové sestavy na obrazovce z programu použijte parametr
acViewPreview příkazu OpenReport. Celý programový kód by tak mohl vypadat
takto: DoCmd.OpenReport "rptSalesResults", acViewPreview. Pokud byste chtěli
poskytnout uživateli možnost volby vytisknutí sestavy nebo zobrazení na
obrazovce, vytvořte dialogové okno s dotazem a zaškrtávacím políčkem Nahled (to
je jedna z možností), a po potvrzení tisku zapište následující kód:
Dim sScreen As string
If Me![Nahled] = True Then
sScreen = acViewPreview
Else
sScreen = acViewNormal
End If
DoCmd.OpenReport "rptSalesResults" , sScreen

Možnosti parametrizace
- K zobrazení parametrů zadaných uživatelem v okně na data v sestavě můžete
použít následující postup: Vytvořte událost tiskové sestavy Při otevření a
zapište následující kód:
Private Sub Report_Open(Cancel As Integer)
Me![obdobi].Caption = Forms("Dotaz").sMesic & " " &
Forms("Dotaz").sRok
End Sub
V tomto případě předpokládáme, že okno, ve kterém uživatel zvolí parametry, má
název Dotaz a příslušná pole sMesic a sRo, v sestavě se pak příslušný datumový
údaj zobrazí v poli obdobi.

- Zdroj záznamů tiskové sestavy nemusí být určen "napevno", ale můžete jej
určit přímo z programu příkazem SQL a přiřadit vlastnosti sestavy RecordSource.
K tomu vytvořte událost tiskové sestavy Při otevření a zadejte příslušný kód,
např. Me.RecordSource = "SELECT * FROM InfoLinka WHERE zadal = 'RYS';".

Další
Tisknete-li např. sestavu zaměstananců (a k nim příslušné údaje), použijete k
zobrazení jména a příjmení textové pole se zdrojem ovládacího prvku =[Jmeno] &
" " & [Prijmeni]. Pokud však chcete zobrazit i titul, musíte použít jako zdroj
kód =LTrim([Titul] & " " & [Jmeno] & " " & [Prijmeni]), aby se v případě
neexistence titulu nevytiskl před jménem zaměstnance prázdný znak.

- V případě, že program při tisku zobrazí okno se zprávou "Šířka sekce je větší
než šířka stránky..." (viz obr.), znamená to, že nastavená šířka sestavy
přesahuje šířku zvoleného papíru, a proto jí musíte zmenšit. Někdy také stačí
snížit hodnotu levého a pravého okraje sestavy (volba Vzhled stránky... z
nabídky Soubor).

- Jednoduchý je tisk štítků pomocí průvodce: V okně Nová sestava si zvolte
Průvodce štítky a příslušný datový zdroj, v dalším kroku pak formát štítků
(můžete vytvořit i vlastní formáty) a dále typ a parametry písma. Nakonec
zadáte údaje, které chcete zobrazit, a řazení štítků. Sestavu se štítky můžete
jako kteroukoli jinou kdykoli upravit.

9 0277/OK

Autor článku