Skip Navigation LinksALVAO 7.0ALVAO Asset ManagementImplementace systému v organizaciNastaveníUživatelský skript Skip Navigation Links. Skip Navigation Links Skip Navigation Links.


Uživatelský skript

Ve složce Config může být uložen soubor EpCustomScript.js s uživatelským skriptem v jazyce JavaScript. Složku Config naleznete ve složce, kde je nainstalována ALVAO Asset Management Console (standardně C:\Program Files\ALVAO\Asset Management Console\Config), pokud tam není, vytvořte ji a vložte do ní skript. Po restartu AM konzole se skript sám aktivuje.

Ve skriptu mohou být definovány obslužné funkce, které se automaticky volají z Konzoly při provádění různých operací.

Příklad 1. Příklad souboru EpCustomScript.js

function OnNodeMoving(nNodeId,nDestNodeId,nUserId)
{
    return true;
}

function OnNodeRemoving(nNodeId,nUserId)
{
    MessageBox("Objekt nelze odstranit",0x30);
    return false;
}

Skript v příkladu obsahuje funkce OnNodeMoving a OnNodeRemoving. Funkce OnNodeMoving slouží k povolení přesunu objektu ve stromu. Funkce se volá před provedením přesunu a návratová hodnota true znamená, že je přesun povolen. Funkce OnNodeRemoving se volá před odstraněním objektu ze stromu a její návratová hodnota povoluje odstranění. V uvedeném příkladu je tedy přesun objektu vždy povolen a odstranění je vždy zakázáno. Při pokusu o odstranění objektu se navíc zobrazí okno s hlášením "Objekt nelze odstranit".

Obslužné funkce

Funkce Událost
OnNodeCopying Bude vytvořena kopie objektu. Tato funkce se volá také v případě vytvoření nového objektu podle šablony.
OnNodeCopied Objekt byl zkopírován nebo byl vytvořen nový objekt podle šablony.
OnNodeMoving Objekt bude přesunut ve stromu.
OnNodeMoved Objekt byl přesunut.
OnNodeRemoving Objekt bude přesunut do Koše nebo zcela odstraněn ze stromu.
OnNodeRemoved Objekt byl přesunut do Koše nebo zcela odstraněn ze stromu.
OnPropertyModificationEnabled Povolit/zakázat příkaz - Upravit (vlastnost).
OnPropertyModifying Hodnota vlastnosti bude změněna.
OnPropertyModified Hodnota vlastnosti byla změněna.

OnNodeCopying

Tato funkce se volá před zkopírováním objektu ve stromu, tj. také v případě vytvoření nového objektu podle šablony.

Syntaxe

bool OnNodeCopying(nNodeId, nDestNodeId, nUserId)

Parametry
nNodeId

Hodnota atributu (v databázi) tblNode.intNodeId objektu, který je kopírován, tj. vzorový objekt.

nDestNodeId

Hodnota atributu tblNode.intNodeId objektu, do kterého bude jako podobjekt vložena kopie. Hodnota 0 znamená , že kopie bude vytvořena v kořeni stromu.

nUserId

Hodnota atributu tblUser.intUserId určující právě přihlášeného uživatele.

Návratová hodnota

Pokud funkce vrátí hodnotu true, objekt bude zkopírován. Pokud funkce vrátí false, kopírování se neprovede. V tom případě je vhodné zobrazit chybové hlášení metodou MessageBox.

Příklady

Příklad 2. Příklad - zákaz kopírovat objekty pro vybraného uživatele

Následující příklad funkce OnNodeCopying zakazuje uživateli s identifikačním číslem 15 kopírování objektů. Identifikační číslo uživatele záleží na konkrétní databázi a je třeba jej nejprve najít v tabulce tblUser - atribut intUserId.

function OnNodeCopying(nNodeId,nDestNodeId,nUserId)
{
    if ( nUserId == 15 )
    {
        MessageBox("Objekt je zakázáno kopírovat.",0x30);
        return false;
    }
    return true;
}

Příklad 3. Příklad - volání uložené procedury na SQL serveru

V následujícím příkladu je pro vyhodnocení události použita uložená procedura (stored procedure) spOnNodeCopying na SQL serveru. Kopírování objektu je povoleno, pokud uložená procedura vrací nenulovou hodnotu.

function OnNodeCopying(nNodeId,nDestNodeId,nUserId)
{
    var Con=new ActiveXObject("ADODB.Connection");
    Con.Open(ConnectionString);
    var Cmd=new ActiveXObject("ADODB.Command");
    Cmd.ActiveConnection=Con;
    Cmd.CommandText="spOnNodeCopying";
    Cmd.CommandType=4;
    Cmd.Parameters.Refresh();
    Cmd.Parameters.Item("@nNodeId").Value=nNodeId;
    Cmd.Parameters.Item("@nDestNodeId").Value=nDestNodeId;
    Cmd.Parameters.Item("@nUserId").Value=nUserId;
    var Rs=Cmd.Execute();
    if ( Rs.Fields.Item(0)==1 )
        return true;
    MessageBox("Objekt nelze zkopírovat.",0x30);
    return false;
}

Uložená procedura je definována takto:

CREATE PROCEDURE [dbo].[OnNodeCopying]
    @nNodeId int, @nDestNodeId int, @nUserId int
AS
BEGIN
    SET NOCOUNT ON;
    SELECT 1
END

OnNodeCopied

Tato funkce se volá po zkopírování objektu resp. po vytvoření nového objektu podle šablony.

Syntaxe

void OnNodeCopied(nNodeId, nNewNodeId, nUserId)

Parametry
nNodeId

Hodnota atributu (v databázi) tblNode.intNodeId objektu, který byl kopírován, tj. vzorový objekt.

nNewNodeId

Hodnota atributu tblNode.intNodeId nového objektu, který vznikl zkopírováním.

nUserId

Hodnota atributu tblUser.intUserId určující právě přihlášeného uživatele.

Návratová hodnota

žádná

Příklady

viz OnNodeCopying

OnNodeMoving

Tato funkce se volá před přesunutím objektu ve stromu na jiné místo.

Syntaxe

bool OnNodeMoving(nNodeId, nDestNodeId, nUserId)

Parametry
nNodeId

Hodnota atributu (v databázi) tblNode.intNodeId objektu, který má být přesunut.

nDestNodeId

Hodnota atributu tblNode.intNodeId objektu, do kterého bude objekt přesunut. Hodnota 0 znamená , že objekt bude přesunut do kořene stromu.

nUserId

Hodnota atributu tblUser.intUserId určující právě přihlášeného uživatele.

Návratová hodnota

Pokud funkce vrátí hodnotu true, objekt bude přesunut. Pokud funkce vrátí false, přesun se neprovede. V tom případě je vhodné zobrazit chybové hlášení metodou MessageBox.

Příklady

viz OnNodeCopying

OnNodeMoved

Tato funkce se volá po přesunutí objektu ve stromu.

Syntaxe

void OnNodeMoved(nNodeId, nSrcParentNodeId, nUserId)

Parametry
nNodeId

Hodnota atributu (v databázi) tblNode.intNodeId objektu, který byl přesunut.

nSrcParentNodeId

Hodnota atributu tblNode.intNodeId objektu, který byl otcem (nadobjektem) objektu nNodeId před jeho přesunutím.

nUserId

Hodnota atributu tblUser.intUserId určující právě přihlášeného uživatele.

Návratová hodnota

žádná

Příklady

viz OnNodeCopying

OnNodeRemoving

Tato funkce se volá před odstraněním objektu tj. přesunutím objektu do Koše a také před nevratným odstraněním objektu z Koše.

Syntaxe

bool OnNodeRemoving(nNodeId, bMoveToBin, nUserId)

Parametry
nNodeId

Hodnota atributu (v databázi) tblNode.intNodeId objektu, který má být odstraněn resp. přesunut do Koše.

bMoveToBin

Jedná-li se o přesun objektu do Koše, tento parametr má hodnotu true. V případě definitivního odstranění objektu má hodnotu false.

nUserId

Hodnota atributu tblUser.intUserId určující právě přihlášeného uživatele.

Návratová hodnota

Pokud funkce vrátí hodnotu true, objekt bude odstraněn resp. přesunut do Koše. Pokud funkce vrátí false, operace se neprovede. V tom případě je vhodné zobrazit chybové hlášení metodou MessageBox.

Příklady

viz OnNodeCopying

OnNodeRemoved

Tato funkce se volá po odstranění objektu tj. po jeho přesunutí do Koše a také po definitivním odstranění objektu z Koše.

Syntaxe

void OnNodeRemoved(nNodeId, bMoveToBin, nUserId)

Parametry
nNodeId

Hodnota atributu (v databázi) tblNode.intNodeId objektu, který byl odstraněn resp. přesunut do Koše.

bMoveToBin

Jedná-li se o přesun objektu do Koše, tento parametr má hodnotu true. V případě definitivního odstranění objektu má hodnotu false.

nUserId

Hodnota atributu tblUser.intUserId určující právě přihlášeného uživatele.

Návratová hodnota

žádná

Příklady

viz OnNodeCopying

OnPropertyModificationEnabled

Zapíná resp. vypíná příkaz - Upravit pro úpravu vlastnosti.

Syntaxe

bool OnNodeModificationEnabled(nPropertyId)

Parametry
nPropertyId

Hodnota atributu (v databázi) tblProperty.intPropertyId vlastnosti, která má být upravena.

Návratová hodnota

Pokud funkce vrátí hodnotu true, příkaz - Upravit v menu bude aktivní. Jinak bude neaktivní (šedý).

Příklady

viz OnNodeCopying

OnPropertyModifying

Tato funkce se volá v rámci příkazu - Upravit před uložením upravené vlastnosti do databáze.

Syntaxe

bool OnPropertyModifying(nPropertyId, strNewValue)

Parametry
nPropertyId

Hodnota atributu (v databázi) tblProperty.intPropertyId vlastnosti, která je měněna.

strNewValue

Nová hodnota vlastnosti.

Návratová hodnota

Pokud funkce vrátí hodnotu true, nová hodnota se zapíše do databáze. Pokud funkce vrátí false, operace se neprovede. V tom případě je vhodné zobrazit chybové hlášení metodou MessageBox.

Příklady

viz OnNodeCopying

OnPropertyModified

Tato funkce se volá po zápisu nové hodnoty vlastnosti do databáze v rámci příkazu - Upravit.

Syntaxe

void OnPropertyModified(nPropertyId)

Parametry
nPropertyId

Hodnota atributu (v databázi) tblProperty.intPropertyId vlastnosti, která byla změněna.

Návratová hodnota

žádná

Příklady

viz OnNodeCopying

MessageBox

Funkce zobrazí okno s textovou zprávou.

Syntaxe

int MessageBox(Text,Type)

Parametry
Text

Text zprávy.

Type

Parametr může obsahovat kombinaci následujících bitových hodnot.

Tlačítka
Hodnota Symbol Popis
0 MB_OK OK
1 MB_OKCANCEL OK, Storno
2 MB_ABORTRETRYIGNORE Zrušit, Znovu, Ignorovat
3 MB_YESNOCANCEL Ano, Ne, Storno
4 MB_YESNO Ano, Ne
5 MB_RETRYCANCEL Znovu, Storno
Ikony
Hodnota Symbol Popis
0x10 MB_ICONERROR chyba (červená)
0x20 MB_ICONQUESTION otazník
0x30 MB_ICONEXCLAMATION vykřičník (žlutá)
0x40 MB_ICONINFORMATION informace
Výchozí tlačítko

Hodnota z následující tabulky určuje, které tlačítko v pořadí zleva bude nastaveno jako výchozí.

Hodnota Symbol
0 MB_DEFBUTTON1
0x100 MB_DEFBUTTON2
0x200 MB_DEFBUTTON3
0x300 MB_DEFBUTTON4
Návratová hodnota
Hodnota Symbol Popis
1 IDOK OK
2 IDCANCEL Storno
3 IDABORT Zrušit
4 IDRETRY Znovu
5 IDIGNORE Ignorovat
6 IDYES Ano
7 IDNO Ne
Příklady

Příklad 4. Použití funkce MessageBox

Následující příklad zobrazí okno s dotazem "Chcete pokračovat?" a tlačítky Ano a Ne, přičemž tlačítko Ne bude aktivní.

if ( MessageBox("Chcete pokračovat?",4+0x20+0x100) == 6 )
    // pokračovat ...   

ConnectionString

Proměnná ConnectionString obsahuje připojovací řetězec pro právě otevřenou databázi. Proměnná je určena pouze ke čtení.

Poznámka:

Připojovací řetězec odpovídá pravidlům technologie ADO.

Příklad 5. Použití proměnné ConnectionString

V následující ukázce je do proměnné Con vytvořeno připojení na databázi, která je právě otevřena v Konzole.

var Con=new ActiveXObject("ADODB.Connection");
Con.Open(ConnectionString); 

UserId

Proměnná UserId obsahuje identifikátor uživatele, který je právě přihlášen do Konzoly. Proměnná je určena pouze ke čtení.

Identifikátor odpovídá hodnotě atributu intUserId v tabulce tblUser v databázi.

 

Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.