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