DtiOper to interfejs służący do przeglądania i edycji różnych źródeł danych w formie tabelkowej.
Opis podstawowy
Koncept
DtiOper składa się z przeglądarki tabeli (
PmaPanel z
PmgWTable) i źródło danych (obiekty
PmaAdo,
PmaDataTable, itd.). Przeglądarka komunikuje się ze źródłem danych przy pomocy metody projektanta
"DtiOper", przedstawiającej źródło danych. Metoda zapewnia wykonanie poszczególnych "uzgodnionych" operacji, które źródło danych oferuje do przeglądarki. W parametrze
sDtiPars metody
"DtiOper" znajdują się wszystkie informacje wymagane przez właściwe źródło danych w formacie
KeyVal, dla dogodniejszego opracowania konwertowane na początku każdej operacji na mapę
mDtiPars. Pozostałe parametry metody precyzują wymaganą operację. Ten koncept jest ogólny i umożliwia równocześnie przeglądanie jednego źródła danych za pomocą kilku przeglądarek nawet poprzez Web. Źródło danych obiektu
PmaAdo przedstawia źródło danych dla wszystkich tabel bazy danych, dlatego możliwość przeglądania jednego źródła danych w kilku przeglądarkach równocześnie jest konieczna. Tak samo przyszłe rozszerzenie o nowe "operacje" (podstawowe i projektanckie) jest proste, wystarczy w przeglądarce wywołać metodę
"DtiOper" z nową operacją, która zostanie zaimplementowana w odpowiednim źródle danych.
Przeglądarka tabeli
Przeglądarka jest ogólna, parametryzowana za pomocą jedynego strukturowanego parametru
DtiPars. Parametr przedstawia konkretne źródło danych oraz parametry właściwej przeglądarki. Można zastosować jedyną przeglądarkę do przeglądania różnych źródeł danych, z odpowiednimi innymi wartościami parametru
DtiPars. Jednakże praktyczniejszym i bardziej przejrzystym jest zastosowanie oddzielnej przeglądarki do każdego źródła danych, co umożliwia konfiguracyjne określenie parametrów konkretnego źródła danych bezpośrednio w przeglądarce. Ponadto jest prostsze dostosowanie przeglądarki według potrzeb do jednego konkretnego celu.
DtiPars w formacie
KeyVal to kluczowy element konceptu
DtiOper. Musi zostać zapewnione, żeby były w nim wszystkie wymagane informacje podczas pierwszego wyświetlenia przeglądarki.
DtiPars można dostarczyć zupełny zaraz od początku lub częściowo wypełniony lub również dostosować kolejno w następujących krokach:
Przekazanie łańcucha
DtiPars do przeglądarki. Parametr będzie zawierać: ścieżkę do źródła danych, nazwę tabeli i nagłówek tabeli.
2) Parametr
DtiPars panela przeglądarki dostarczony w konfiguratorze "
Wartość domyślna sViewPars".
Przykład: pars:{DtiPars:{DtiPath:../PmaAdo;Table:MyTable;Title:Tabelkowy przegląd wartości}}
3) W początkowej wartości parametru
DtiPars tak, jak jest zdefiniowany w parametrach
Parametry Pmg obiektu PmgRoot przeglądarki.
Przykład: DtiPars:DtiPath:../PmaAdo;Table:MyTable;Title:Tabelkowy przegląd wartości
5) W operacji "Open" źródła danych są standardowo opracowane przekazane informacje o źródle danych w sDtiPars. Zostanie sprawdzona ważność oraz zostaną uzupełnione wymagane informacje operacji i zostanie zwrócona nowa, uzupełniona forma sDtiPars.
6) W metodzie "Open" przeglądarki, która przejmie rezultat operacji "Open" w formie DtiPars. Przejmie z niej wartości wyłącznie dla przeglądarki, które następnie usunie z DtiPars i pozostawi tam tylko wartości konieczne dla źródła danych. Nowy opracowany DtiPars z informacjami dla źródła danych zapamięta sobie dla wszystkich kolejnych operacji.
Opis domyślnych wartości w DtiPars
Wartości w
DtiPars (mogą się lekko różnić w zależności od źródła danych):
DtiPath: Ścieżka do źródła danych (dowolny
PmaObject zawierający metodę
DtiOper), może być także względna w stosunku do
PmaPanel z przeglądarką.
Wartość jest obowiązkowa. Przeglądarka zapamięta sobie tę wartość i usunie ją z
DtiPars.
Table: Nazwa tabeli.
Jeżeli źródło danych zawiera więcej tabel, wtedy wartość jest obowiązkowa, w innym przypadku wartość jest opcjonalna.
W obiekcie
PmaAdo jest tu nazwa tabeli bazodanowej, w obiekcie
PmaDataTable nie jest przedstawiana.
ColNames: Lista nazw kolumn do wyświetlenia.
Wartość jest opcjonalna. Jeżeli nie jest przedstawiona, wtedy zostaną wyświetlone wszystkie kolumny źródła danych.
ColPkNames: Lista nazw kolumn z kluczem podstawowym (określa unikalność wiersza do edycji lub usunięcia).
Wartość jest opcjonalna. Jeżeli nie zostanie przedstawiona, wtedy zostanie wykorzystana tylko pierwsza kolumna.
ColPkCount: Ilość kolumn z kluczem podstawowym (określa unikalność wiersza do edycji lub usunięcia).
Wartość jest opcjonalna. Jeżeli nie zostanie przedstawiona, wtedy zostanie wykorzystana tylko pierwsza kolumna.
ColTypes: Lista typów danych kolumn (do wyświetlenia i generowania poleceń SQL).
Wartość jest opcjonalna. Jeżeli nie zostanie przedstawiona, wtedy zostanie określona automatycznie.
ColPkTypes: Lista typów danych kolumn z kluczem podstawowym (do wyświetlenia i generowania poleceń SQL).
Wartość jest opcjonalna. Jeżeli nie zostanie przedstawiona, wtedy zostanie określona automatycznie.
ColTitles: Lista nagłówków kolumn do wyświetlenia (np. lokalizowany tekst).
Wartość jest opcjonalna. Jeżeli nie zostanie przedstawiona, wtedy zostanie wykorzystana ColNames.
Przeglądarka zapamięta sobie wartość i usunie ją z DtiPars.
Title: Nagłówek wyświetlonej tabeli (np. lokalizowany tekst).
Wartość jest opcjonalna. Jeżeli nie zostanie przedstawiona, wtedy zostanie wykorzystana Table lub pozostanie puste.
Przeglądarka zapamięta sobie wartość i usunie ją z DtiPars.
Operacje metody DtiOper źródła danych (parametr sOper)
"Open": Jest wywołana tylko raz jako pierwsza operacja podczas otwarcia przeglądarki. Celem operacji jest przejęcie początkowej wartości
sDtiPars, sprawdzić ich poprawność. Następnie uzupełnić wszystkie brakujące informacje jak w celu wyświetlenia przeglądarki tak również żeby można było wykonywać kolejne operacje nad źródłem danych. Rezultatem tej operacji jest nowa uzupełniona wartość
DtiPars, która zostanie zwrócona do przeglądarki. Przeglądarka zapamięta sobie ten zmodyfikowany
DtiPars i następnie będzie go przekazywać w parametrze
sDtiPars każdej kolejnej operacji nad źródłem danych.
DtiPars jest uzupełniany o nazwy kolumn, nagłówki kolumn, typy danych kolumn, listę kluczy podstawowych, itd. Dane źródło danych może tu sobie zapisać również własne niezbędne informacje wymagane do kolejnych operacji. Niektóre wartości w
DtiPars służą tylko dla pierwotnego wyświetlenia przeglądarki i przeglądarka je z powodów optymalizacji usunie z
DtiPars, żeby
DtiPars przy kolejnych operacjach nie był zbyt duży i zawierał tylko informacje dla źródła danych.
Operacja zwraca dostosowany
DtiPars w formacie
KeyVal.
"Close": Zostanie wywołana tylko raz jako ostatnia operacja przy zamykaniu przeglądarki. Zazwyczaj ta operacja nie jest nawet implementowana.
"GetRows": Jest wywołana powtórnie, kiedy przeglądarka potrzebuje aktualizować swoją zawartość.
Operacja zwraca 2-wymiarową tablicę wartości.
"AddRow": vPar1 = tablica wszystkich wartości dodawanego wiersza. Jest wywołana przy dodaniu jednego wiersza.
Operacja zwraca 1 = OK, 0 = błąd
"EditRow": vPar1 = tablica wszystkich wartości edytowanego wiersza, vPar2 = tablica wartości określających edytowany wiersz (wartości klucza podstawowego) Jest wywołana przy zmianie jednego wiersza.
Operacja zwraca 1 = OK, 0 = błąd
"DeleteRow": gdzie vPar1 = tablica wartości określających usuwany wiersz (wartości klucza podstawowego) Jest wywołana przy usunięciu jednego wiersza.
Operacja zwraca 1 = OK, 0 = błąd
Przekazanie łańcucha DtiPars do przeglądarki.:
Parametr będzie zawierać: ścieżkę do źródła danych, nazwę tabeli i nagłówek tabeli.
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var oCreator = Pm.CreateView(null, "../ViewerDataTable", "pars:{DtiPars:{DtiPath:../PmaAdo;Table:MyTable;Title:Tabelkowy przegląd wartości}}", "target:_blank;");
oCreator.Open();
Dim oCreator
Set oCreator = Pm.CreateView(Empty, "../ViewerDataTable", "pars:{DtiPars:{DtiPath:../PmaAdo;Table:MyTable;Title:Tabelkowy przegląd wartości}}", "target:_blank;")
oCreator.Open
Modyfikacja 1. oraz 2. wiersza metody "Open" obiektu PmgWTable:
Ta modyfikacja umożliwia ulokować w panelu kilka tabelek połączonych do różnych źródeł danych (różne tabele jednej lub więcej baz danych).
JavaScriptWybierz oraz skopiuj do schowka
var sDtiPars = "DtiPath:../PmaAdo;Table:MyTable;Title:Tabelkowy przegląd wartości";
// var sDtiPars = pMe.GetPar("DtiPars");
lub
Włożenie 3. - 5. wiersza do metody "Open" obiektu PmgWTable:
JavaScriptWybierz oraz skopiuj do schowka
mDtiPars.DtiPath = "../PmaAdo";
mDtiPars.Table = "MyTable";
mDtiPars.Title = "Tabelkowy przegląd wartości";