DtiOper je rozhraní pro tabulkové prohlížení a editaci různých zdrojů dat.
Základní popis
Koncept
DtiOper se skládá z prohlížeče tabulky (
PmaPanel s
PmgWTable) a zdroje dat (objekty
PmaAdo,
PmaDataTable, atd.). Prohlížeč komunikuje se zdrojem dat pomocí metody projektanta
"DtiOper", reprezentující zdroj dat. Metoda zastřešuje jednotlivé "domluvené" operace, které zdroj dat poskytuje do prohlížeče. V parametru
sDtiPars metody
"DtiOper" jsou všechny informace nutné pro vlastní zdroj dat ve formátu
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či současně a to i přes Web. Datový zdroj objektu
PmaAdo představuje datový zdroj pro všechny databázové tabulky databáze, takže současné prohlížení jednoho zdroje dat více prohlížeči současně je nutnost. Také budoucí rozšiřování o nové "operace" (základní i projektantské) je snadné, stačí v prohlížeči volat metodu
"DtiOper" s novou operací, která se naimplementuje v odpovídajícím zdroji dat.
Prohlížeč tabulky
Prohlížeč je obecný, parametrizovaný jediným strukturovaným parametrem
DtiPars. Parametr představuje konkrétní zdroj dat i parametry vlastního prohlížeče. Lze použít jediný prohlížeč 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í vyhrazený prohlížeč, což umožňuje parametry prohlížení konkrétního zdroje dat uvést konfiguračně již přímo v prohlížeči. Také je pak snadnější úprava prohlížeče na míru pro jeden konkrétní účel.
DtiPars ve formátu
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če.
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 do prohlížeče. Parametr bude obsahovat: cestu ke zdroji dat, název tabulky a záhlaví tabulky.
2) Parametr
DtiPars obrazu prohlížeče dodaný v konfigurátoru "
Výchozí hodnota sViewPars".
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 Pmg objektu PmgRoot prohlížeče.
Příklad: DtiPars:DtiPath:../PmaAdo;Table:MyTable;Title:Tabulkový přehled hodnot
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če, která převezme výsledek operace "Open" v podobě DtiPars. Převezme z něj hodnoty čistě pro prohlíčeku, které pak smaž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čem.
Hodnota je povinná. Hodnotu si prohlížeč zapamatuje a odstraní z
DtiPars.
Table: Název 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ý text).
Hodnota je nepovinná. Pokud se neuvede, pak se použije ColNames.
Hodnotu si prohlížeč zapamatuje a odstraní z DtiPars.
Title: Záhlaví zobrazené tabulky (např. lokalizovaný text).
Hodnota je nepovinná. Pokud se neuvede, pak se použije Table nebo zůstane prázdné.
Hodnotu si prohlížeč 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če. 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če 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 do prohlížeče. Prohlížeč si tento modifikovaný
DtiPars zapamatuje a následně ho 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ží pouze pro prvotní zobrazení prohlížeče a prohlížeč 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 ve formátu
KeyVal.
"Close": Volá se jen jednou jako poslední operace při zavření prohlížeče. Obvykle se tato operace ani neimplementuje.
"GetRows": Volá se opakovaně vždy, když prohlížeč potřebuje aktualizovat svůj obsah.
Operace vrací 2-rozmě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 do prohlížeče.:
Parametr bude obsahovat: cestu ke zdroji dat, název tabulky a záhlaví tabulky.
JavaScriptVBScriptVyber a zkopíruj do schránky
var oCreator = Pm.CreateView(null, "../ViewerDataTable", "pars:{DtiPars:{DtiPath:../PmaAdo;Table:MyTable;Title:Tabulkový přehled hodnot}}", "target:_blank;");
oCreator.Open();
Dim oCreator
Set oCreator = Pm.CreateView(Empty, "../ViewerDataTable", "pars:{DtiPars:{DtiPath:../PmaAdo;Table:MyTable;Title:Tabulkový přehled hodnot}}", "target:_blank;")
oCreator.Open
Úprava 1. a 2. řádku metody "Open" objektu PmgWTable:
Tato úprava umožňuje umístit v obrazu 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";