Promotic
WikipediaLinkedInYoutubeTwitterFacebook

DtiOper - Popis rozhraní

DtiOper je rozhraní pro tabulkové prohlížení a editaci různých zdrojů dat.
 

Základní popis

Koncept DtiOper se skládá z tabulkové prohlížečky (PmaPanel s PmgWTable) a zdroje dat (PmaAdo, PmaDataTable, atd.). Prohlížečka komunikuje se zdrojem dat pomocí metody DtiOper, reprezentující zdroj dat. Metoda zastřešuje jednotlivé "domluvené" operace, které zdroj dat poskytuje prohlížečce. V parametru sDtiPars metody DtiOper jsou všechny informace nutné pro vlastní zdroj dat v podobě KeyVal, konvertovaný pro pohodlnější zpracování na začátku každé operace na mapu mDtiPars. Ostatní parametry metody upřesňují požadovanou operaci. Tento koncept je obecný a umožňuje i současné prohlížení jednoho datového zdroje více prohlížečkami současně a to i přes web. Datový zdroj objektu PmaAdo představuje datový zdroj pro všechny tabulky databáze, takže současné prohlížení jednoho zdroje dat více prohlížečkami současně je nutnost. Rovněž budoucí rozšiřování o nové "operace" (základní i projektantské) je snadné, stačí vyvolat v prohlížečce metodu DtiOper s novou operací, která se naimplementuje v odpovídajícím zdroji dat.

Tabulková prohlížečka

Prohlížečka je obecná, parametrizovaná jediným strukturovaným parametrem DtiPars. Ten představuje konkrétní zdroj dat i parametry vlastní prohlížečky. Lze použít jedinou prohlížečku k postupnému prohlížení různých datových zdrojů, s odpovídající jinou hodnotou parametru DtiPars. Praktičtější a čitelnější je použít pro každý zdroj dat zvláštní vyhrazenou prohlížečku, což umožní parametry prohlížení konkrétního zdroje dat uvést konfiguračně už přímo v prohlížečce. Také je pak snadnější úprava prohlížečky na míru pro jeden konkrétní účel.
 
DtiPars v podobě KeyVal je klíčový prvek konceptu DtiOper. Musí se zajistit, aby v něm byly všechny požadované informace při prvním zobrazení prohlížečky. DtiPars lze dodat rovnou na počátku úplný nebo částečně naplněný nebo také upravit postupně v těchto krocích:
 
Předání řetězce DtiPars prohlížečce. Parametr bude obsahovat: cestu ke zdroji dat, název tabulky a záhlaví zobrazené tabulky.
 
1) Parametr obrazu prohlížečky DtiPars dodaný v sParams v metodě OpenView nebo v konfigurátoru objektu PmaWorkspace rámce Výchozí hodnota Params.
 
Příklad: pars:{DtiPars:{DtiPath:../PmaAdo;Table:MyTable;Title:Tabulkový přehled hodnot}}
 
Příklad: Předání řetězce DtiPars prohlížečce.
2) Parametr obrazu prohlížečky DtiPars dodaný v konfigurátoru "Výchozí hodnota sParams".
 
Příklad: pars:{DtiPars:{DtiPath:../PmaAdo;Table:MyTable;Title:Tabulkový přehled hodnot}}
3) V počáteční hodnotě parametru DtiPars tak, jak je definován v parametrech Parametry objektu PmgRoot prohlížečky.
 
Příklad: DtiPars:DtiPath:../PmaAdo;Table:MyTable;Title:Tabulkový přehled hodnot
4) V metodě Open prohlížečky, která převezme hodnotu parametru DtiPars a zavolá operaci "Open". Až sem jde o prosté předání parametru obrazu DtiPars.
 
Příklad: Úprava 1. a 2. řádku metody Open objektu PmgWTable
 
Příklad: Vložení 3. až 5. řádku do metody Open objektu PmgWTable
5) V operaci "Open" zdroje dat se standardně zpracují dodané informace o zdroji dat v sDtiPars. Ověří se platnost a doplní se všechny potřebné informace pro následné operace a vrátí se nová doplněná podoba sDtiPars.
6) V metodě Open prohlížečky, která převezme výsledek operace "Open" v podobě DtiPars. Převezme z něj hodnoty čistě pro prohlíčeku, které pak odmaže z DtiPars a nechá tam jenom hodnoty nutné pro datový zdroj. Nový výsledný DtiPars s informacemi pro zdroj dat si zapamatuje pro všechny následné operace.

Popis přednastavených hodnot v DtiPars

Hodnoty v DtiPars (mohou se mírně lišit podle zdroje dat):
 
DtiPath: Cesta ke zdroji dat (libovolný PmaObject s metodou DtiOper), může být i relativní vůči PmaPanel s prohlížečkou.

Hodnota je povinná. Hodnotu si prohlížečka zapamatuje a odstraní z DtiPars.

Table: Jméno tabulky.

Pokud zdroj dat obsahuje více tabulek, pak hodnota je povinná, v jiném případě hodnota je nepovinná.

V objektu PmaAdo je zde název databázové tabulky, v objektu PmaDataTable se neuvádí.

ColNames: Seznam jmen sloupců pro zobrazení.

Hodnota je nepovinná. Pokud se neuvede, pak se zobrazí všechny sloupce zdroje dat.

ColPkNames: Seznam jmen sloupců s primárním klíčem (určuje jedinečnost záznamu pro editaci nebo smazání).

Hodnota je nepovinná. Pokud se neuvede, pak použije se jeden první sloupec.

ColPkCount: Počet sloupců s primárním klíčem (určuje jedinečnost záznamu pro editaci nebo smazání).

Hodnota je nepovinná. Pokud se neuvede, pak použije se jeden první sloupec.

ColTypes: Seznam datových typů sloupců (pro zobrazení i generování SQL příkazů).

Hodnota je nepovinná. Pokud se neuvede, pak se zjistí automaticky samy.

ColPkTypes: Seznam datových typů sloupců s primárním klíčem (pro zobrazení i generování SQL příkazů).

Hodnota je nepovinná. Pokud se neuvede, pak se zjistí automaticky samy.

ColTitles: Seznam záhlaví sloupců pro zobrazení (např. lokalizovaný).

Hodnota je nepovinná. Pokud se neuvede, pak se použije ColNames.

Hodnotu si prohlížečka zapamatuje a odstraní z DtiPars.

Title: Záhlaví zobrazené tabulky (např. lokalizované).

Hodnota je nepovinná. Pokud se neuvede, pak se použije Table nebo zůstane prázdné.

Hodnotu si prohlížečka zapamatuje a odstraní z DtiPars.

Operace metody DtiOper zdroje dat (parametr sOper)

"Open": Volá se jen jednou jako první operace při otevření prohlížečky. Operace má za úkol převzít počáteční hodnotu sDtiPars, ověřit jejich správnost. Následně doplnit všechny chybějící informace jednak pro zobrazení prohlížečky a také aby bylo možné provádět následné operace nad zdrojem dat. Výsledkem této operace je nová doplněná hodnota DtiPars, která bude vrácena prohlížečce. Prohlížečka si tento modifikovaný DtiPars zapamatuje a následně jej bude předávat v parametru sDtiPars každé následující operaci nad zdrojem dat. DtiPars se doplňuje o názvy sloupců, nadpisy sloupců, datové typy sloupců, seznam primárních klíčů, atd.. Vlastní datový zdroj si zde může uložit i vlastní nezbytné informace pro následné operace. Některé hodnoty v DtiPars slouží jenom k prvotnímu zobrazení prohlížečky a prohlížečka je z optimalizačních důvodů z DtiPars odstraní, aby DtiPars pří následných operacích nebyl zbytečně velký a obsahoval jenom informace pro zdroj dat.

Operace vrací upravený DtiPars v podobě KeyVal.

"Close": Volá se jen jednou jako poslední operace při zavření prohlížečky. Ve většině případů se tato operace ani neimplementuje.
"GetRows": Volá se opakovaně vždy, když prohlížečka potřebuje aktualizovat svůj obsah.

Operace vrací dvourozměrné pole hodnot.

"AddRow": vPar1 = pole všech hodnot přidavaného řádku. Volá se při přidání jednoho řádku.

Operace vrací 1 = OK, 0 = chyba

"EditRow": vPar1 = pole všech hodnot editovaného řádku, vPar2 = pole hodnot identifikujích editovaný řádek (hodnoty primárního klíče) Volá se při změně jednoho řádku.

Operace vrací 1 = OK, 0 = chyba

"DeleteRow": kde vPar1 = pole hodnot identifikujích mazaný řádek (hodnoty primárního klíče) Volá se při smazání jednoho řádku.

Operace vrací 1 = OK, 0 = chyba

Předání řetězce DtiPars prohlížečce.:
Parametr bude obsahovat: cestu ke zdroji dat, název tabulky a záhlaví zobrazené tabulky.
JavaScriptVBScriptVyber a zkopíruj do schránky

pMe.PmPanel.OpenView("../ViewerDataTable", "target:_blank;", "pars:{DtiPars:{DtiPath:../PmaAdo;Table:MyTable;Title:Tabulkový přehled hodnot}}");
Úprava 1. a 2. řádku metody Open objektu PmgWTable:
Tato úprava umožní umístit v obraze více tabulek napojených na různé zdroje dat (různé tabulky jedné nebo více databází).
JavaScriptVyber a zkopíruj do schránky

var sDtiPars = "DtiPath:../PmaAdo;Table:MyTable;Title:Tabulkový přehled hodnot";
//var sDtiPars = pMe.GetPar("DtiPars");
nebo
Vložení 3. až 5. řádku do metody Open objektu PmgWTable:
JavaScriptVyber a zkopíruj do schránky

mDtiPars.DtiPath = "../PmaAdo";
mDtiPars.Table = "MyTable";
mDtiPars.Title = "Tabulkový přehled hodnot";

Historie:
Pm9.00.01: Nové rozhraní pro podporu tabulkového zobrazení zdroje dat
Navigace:
 
 
- DtiOper
 
 
- SVG
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice