Tvorba sestav - DataReport

DataReport má také nějaké události. Za dobu, co s DataReporty pracuji jsem využil pouze dvě, a to DataReport_Initialize a DataReport_QueryClose. Na událost Initialize si nyní ukážeme jednu takovou zajímavost.

Pokud si přejete například dynamicky měnit popisky jednotlivých RptLabelů, je možné to uskutečnit právě na události DataReport_Initialize. Jen je nutné najít ten správný prvek. Jak víme, prvky se umísťují do sekcí. Takže si otevřete náš první DataReport (rptRep1) a pokusíme se změnit nadpis celého reportu, který je v sekci Report Header - a tady si všimněte číslo, které je zobrazeno u jeho sekce - 4!

Teď si nechte zobrazit kód pro událost DataReport_Initialize a zapište:

Private Sub DataReport_Initialize()

   Stop

End Sub


Spusťte projekt a vyvolejte zobrazení prvního reportu. Aplikace se zastaví na stopce. Nechte si zobrazit Immediate Window (CTRL+G) a zapište (pozor, ke konci již VB nenabízí vlastnosti a metody pomocí IntelliSense):

?me.Sections(4).Controls(1).caption

A Visual Basic Vám vesele ohlásí chybu. Přitom by mělo být logické, že nápis prvního prvku v sekci 4 (což je podle návrháře Report Header) by měl být "Seznam míst a PSČ". A ono to tak není !!! Když totiž napíšete:

?me.Sections(1).Controls(1).caption

tak dostanete teprve správný výsledek. Ono vůbec vyhledávání těch správných prvků v DataReportu je docela nářez a zabere to spoustu času. 

Projekt klidně stopněte a vraťte se do návrháře k události DataReport_Initialize. Přepište proceduru na:

Private Sub DataReport_Initialize()

   Me.Sections(1).Controls(1).Caption = "Toto je ukázka přepsání titulku"

End Sub


Nyní opět projekt spusťte a nechte si zobrazit první sestavu - nadpis na první stránce by měl být přepsán.

Zpět Další

Autor: The Bozena