Třída ZobrazeniDatasheet
Třída umožňuje rychlý vývoj podformuláře na základě typu a zdroje dat.
Použití třídy pro vytváření podformuláře má pro vývojáře tyto výhody:
1. Nemusí se designovat formulář, na kterém se mají zobrazovat data. |
2. Je možno pomocí třídy vytvořit podformulář, aniž by bylo vyžadováno propojení tabulky do databáze. |
3. Na vytvořeném podformuláři je možno jednoduše měnit a zobrazovat jakýkoliv zdroj dat. |
4. Lze nastavit, aby vytvořený podformulář automaticky zabarvoval primární klíče agend a automaticky při poklepání na tyto pole nebo při klávesové zkratce CTRL+O zobrazoval příslušné detaily záznamů. |
5. Lze nastavit, aby vytvořený podformulář podporoval vyhledávání na formuláři pomocí "bubliny". |
6. Lze nastavit, aby vytvořený podformulář sloužil jako formulář pro výběr záznamů. |
7. Automaticky se aplikují "MoveLasty" na událost Current. |
Základní postup vytvoření podformuláře na základě třídy ZobrazeniDatasheet
Postup předpokládá naimportování formuláře Zobrazeni_datasheet do databáze a vytvoření uživatelského formuláře s prvkem "SubControl", pro zobrazení vytvořeného podformuláře.
- V uživatelském formuláři se vytvoří posluchač na třídu ZobrazeniDatasheet - New ZobrazeniDatasheet
- Provede se inicializace - metoda Init
- Přiřadí se typ zdroje dat - vlastnost SourceType
- Přiřadí se zdroj dat - vlastnost Source
- Zavolá se metoda Open - metoda Open
- Skončí se deinicializací - metoda UnInit
Příklad základního postupu
*1 Parametry metody Init jsou Databáze formuláře, SubControl, Používat vybírání záznamů
*2 Třída ZobrazeniDatasheet používá tyto hodnoty pro vlastnost SourceType a s ní spjatou vlastnost Source:
Const cZDTypeSQL = 1
- ve vlastnosti Source bude očekáván SQL string z databáze, která se předá metodou Init
Const cZDTypeVarioSQL = 2
- ve vlastnosti Source bude očekáván SQL string pro AdHocDotaz - "DATA####;SELECT *...
Const cZDTypeQuery = 3
- ve vlastnosti Source bude očekáván název dotazu z databáze, která se předá metodou Init
Const cZDTypeVarioQuery = 4
- ve vlastnosti Source bude očekáván název uloženého dotazu ve VarioLib
Const cZDTypeZobrazeniID = 5
- ve vlastnosti Source bude očekáváno IDZobrazení
Příklady pro vlastnosti SourceType a Source
Ukázka SourceType TypeSQL
ZDA.SourceType = 1
ZDA.Source = "SELECT Firmy.Firma, Firmy.Nazev_firmy, Firmy.Mesto, Firmy.Stat FROM Firmy"
ZDA.OpenSource
Ukázka SourceType TypeSQLParam
ZDA.SetParametersNames "parMesto", "parStat" *1
ZDA.SetParameters "Praha 3", "Česká republika" *2
ZDA.SourceType = 1
ZDA.Source = "SELECT Firmy.Firma, Firmy.Nazev_firmy, Firmy.Mesto, Firmy.Stat FROM Firmy WHERE (Firmy.Mesto=[parMesto]) AND (Firmy.Stat=[parStat])"
ZDA.OpenSource
Ukázka SourceType TypeVarioSQL
ZDA.SourceType = 2
ZDA.Source = "DATA####;SELECT Firmy.Firma, Firmy.Nazev_firmy FROM Firmy"
ZDA.OpenSource
Ukázka SourceType TypeVarioSQLParam
ZDA.SetParameters "Praha 3", "Česká republika" *2
ZDA.SourceType = 2
ZDA.Source = "DATA####;PARAMETERS parMesto Text ( 255 ), parStat Text ( 255 );SELECT Firmy.Firma, Firmy.Nazev_firmy, Firmy.Mesto, Firmy.Stat FROM Firmy WHERE (Firmy.Mesto=[parMesto]) AND (Firmy.Stat=[parStat])"
ZDA.OpenSource
Ukázka SourceType TypeQuery
ZDA.SourceType = 3
ZDA.Source = "Dotaz_Firmy"
ZDA.OpenSource
Ukázka SourceType TypeQueryParam
ZDA.SetParametersNames "parMesto", "parStat" *1
ZDA.SetParameters "Praha 3", "Česká republika" *2
ZDA.SourceType = 3
ZDA.Source = "Dotaz_Firmy"
ZDA.OpenSource
Ukázka SourceType TypeVarioQuery
ZDA.SourceType = 4
ZDA.Source = "R_Vsechny_Agendy"
ZDA.OpenSource
Ukázka SourceType TypeVarioQueryParam
ZDA.SetFielsdForView True, "Cislo_dokladu", "Produkt", "Popis", "Cena_bez_DPH" *3
ZDA.SetParameters "200310001" *2
ZDA.SourceType = 4
ZDA.Source = "R_polozky_dokladu"
ZDA.OpenSource
Ukázka SourceType TypeZobrazeniID
ZDA.SetParameters "", "Palmast" *2
ZDA.SourceType = 5
ZDA.Source = "Adresář/Souvislosti dod. produkty"
ZDA.OpenSource
Použité metody pro práci s vlastnostmi SourceType a Source
*1 Pomocí metody SetParametersNames se nastavují jména parametrů pro vlastnost Source |
*2 Pomocí metody SetParameters se nastavují hodnoty parametrů pro vlastnost Source |
*3 Pomocí metody SetFielsdForView se nastavují pole, které mají nebo nemají být zobrazeny |
Užitečné vlastnosti
UseSearching
Vlastnost identifikuje, zda se má používat vyhledávání na podformuláři pomocí bubliny.
ZDA.UseSearching = True
UseOpeningDetails
Vlastnost identifikuje, zda se má používat automatické zamodrávání primárních klíčů a otevírání detailů záznamů.
ZDA.UseOpeningDetails = True
PrimaryKey
Při použití vlastnosti UseOpeningDetails se záznamy otevírají poklepáním na označená pole. Při použití klávesové zkratky CTRL+O se nejprve zjistí aktuální prvek na němž byla klávesová zkratka vyvolána. Pokud je tento prvek označen a je možno k němu zobrazit příslušný detail, tento detail se zobrazí. V případě, že prvek označen není, prozkoumá se hodnota vlastnosti PrimaryKey a zobrazí se detail záznamu podle hodnoty u prvku se jménem podle této vlastnosti. Např. pokud uživatel vyvolá CTRL+O nad polem "Nazev_firmy", bude zobrazen detail podle hodnoty z pole "Firma".
ZDA.PrimaryKey = "Firma"
ShortCutMenuBar
Vlastnost definuje místní nabídku pro vytvářený podformulář.
ZDA.ShortCutMenuBar = "MN Tabulka"
ActiveValue
Vlastnost vrací aktuální hodnotu controlu, jehož název se předává parametrem.
Aktuální hodnota se bere z aktuálního záznamu.
Debug.Print ZDA.ActiveValue("Firma")
FormZD
Vlastnost vrací odkaz na vytvořený podformulář.
Vývojář je schopen ovládat vlastnosti a události tohoto formuláře.
ZDControl
Vlastnost vrací odkaz na control z vytvořeného podformuláře.
Vývojář je schopen ovládat vlastnosti a události tohoto controlu.
Výběr záznamů
Výběr záznamů je umožněn pomocí třetího parametru metody Init - pSelecting.
*1 pomocí vlastnosti SelectingBy se určuje, podle čeho se mají vybírat záznamy. |
Pomocí vlastnosti SelectedRecords (kolekce) je možno zjistit vybrané záznamy. |
Pomocí metody SelectAll je možno vybrat všechny zobrazené záznamy. |
Pomocí metody UnSelectAll je možno zrušit výběr záznamů. |
Poskytované události
LeftDblClick
Událost je vyvolána při poklepnutí na jakýkoliv prvek podformuláře.
Private Sub ZDA_LeftDblClick(pControl As Control)
MsgBox "LeftDblClick na poli " & pControl.ControlSource & ". Hodnota pole je " & pControl.Value
End Sub
SelectRecord
Událost je vyvolána při výběru záznamu a vrací hodnotu podle vlastnosti SelectingBy.
Private Sub ZDA_SelectRecord(pValue As Variant)
MsgBox pValue
End Sub
UnSelectRecord
Událost je vyvolána při zrušení výběru záznamu a vrací hodnotu podle vlastnosti SelectingBy.
Private Sub ZDA_UnSelectRecord(pValue As Variant)
MsgBox pValue
End Sub
Private Sub Form_Load()
Set ZDA = mFormulare.NewZobrazeniDatasheet 'Nová instance třídy ZobrazeniDatasheet
ZDA.Init CodeDb, Me.Controls("subZobrazeni"), true 'Inicializace
ZDA.SelectingBy = "Firma" *1
ZDA.SourceType = 1 'Vlastnost source type
ZDA.Source = "SELECT Firmy.Firma, Firmy.Nazev_firmy, Firmy.Mesto, Firmy.Stat FROM Firmy" 'Vlastnost Source
ZDA.OpenSource 'Metoda Open
End Sub
Dim WithEvents ZDControl As TextBox
Set ZDControl = ZDA.ZDControl("Popis")
ZDControl.OnClick = "[Event procedure]"
Private Sub ZDControl_Click()
MsgBox "Click"
End Sub
Dim WithEvents ZDA As ZobrazeniDatasheet 'Vytvoření posluchače na třídu ZobrazeniDatasheet
Private Sub Form_Load()
Set ZDA = mFormulare.NewZobrazeniDatasheet 'Nová instance třídy ZobrazeniDatasheet
ZDA.Init CodeDb, Me.Controls("subZobrazeni"), False 'Inicializace *1
ZDA.SourceType = 1 'Vlastnost source type *2
ZDA.Source = "SELECT Firmy.Firma, Firmy.Nazev_firmy, Firmy.Mesto, Firmy.Stat FROM Firmy" 'Vlastnost Source
ZDA.OpenSource 'Metoda Open
End Sub
Private Sub Form_Close()
If Not ZDA Is Nothing Then
ZDA.UnInit 'Deinicializace
Set ZDA = Nothing
End If
End Sub