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.

  1. V uživatelském formuláři se vytvoří posluchač na třídu ZobrazeniDatasheet - New ZobrazeniDatasheet
  2. Provede se inicializace - metoda Init
  3. Přiřadí se typ zdroje dat - vlastnost SourceType
  4. Přiřadí se zdroj dat - vlastnost Source
  5. Zavolá se metoda Open - metoda Open
  6. 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