Akcia LST_CREATE


Funkcia
Akcia vytvorí zoznam objektov podľa zadaných kritérií.


Deklarácia
 LST_CREATE mask, objType, logGroup, sortBy, lines, h, data[, relation, object]
Parametre
maskinIdentifikátor typu String - načíta len objekty, ktorých atribút "Meno" vyhovuje zadanej maske. V prípade, ak je zvolená maska "*", sú do zoznamu zaradené objekty bez ohľadu na svoj názov (atribút "Meno").
objTypein

Identifikátor typu Int - určuje typ objektov, ktoré budú zaradené do zoznamu (voľba jednej z preddefinovaných konštánt s prefixom @OTYPE_*).
Ak je zvolená konštanta @OTYPE_ALL_TYPES, do zoznamu sú zaradené objekty všetkých typov.
Ak je zvolená konštanta @OTYPE_ALL_ALARMS, do zoznamu sú zaradené objekty všetkých typov, ktoré môžu nadobudnúť alarmový stav.

logGroupinOdkaz na objekt - ak je aktuálna hodnota parametra neasociovaný alias, parameter sa neberie do úvahy. Ak parameter obsahuje odkaz na reálny objekt v systéme, do zoznamu budú zaradené len objekty patriace pod zadanú logickú skupinu.
sortByinIdentifikátor typu Int - určuje spôsob, akým sa budú usporadúvať objekty v zozname (voľba jednej z preddefinovaných konštánt s prefixom @SORT_LIST_*).
linesinIdentifikátor typu Int - maximálny počet riadkov, ktoré budú zapísané do data. Predstavuje počet riadkov jednej stránky. Maximálny počet riadkov môže byť 1000.
houtIdentifikátor typu Int - jednoznačný handle na vytvorený zoznam objektov. Ak je tento handle rovný 0, nastala chyba pri vytváraní zoznamu.
dataoutIdentifikátor celej lokálnej štruktúry SD._System_ObjectInfo alebo inej definície štruktúry s rovnakým počtom a typmi stĺpcov.

Typy a význam jednotlivých stĺpcov:

ID Celočíselný
NAMEText
DESCText
TYPECeločíselný
ROWCeločíselný
COLSCeločíselný
PARENTCeločíselný

Je možné použiť štruktúru rozšírenú o ďalšie 2 stĺpce, pričom ich typy a význam je nasledovný:

UUIDText
ModifyTimeAbsolútny čas
relationinIdentifikátor typu Int - definuje vzťah, ktorý musia spĺňať objekty vo výslednom zozname vzhľadom k objektu, ktorý je daný parametrom object.
Hodnota parametra musí byť daná hodnotou niektorej konštanty REL_*.
Ak nadobudne parameter hodnotu REL_NONE alebo REL_NOTUSED, objekt daný parametrom object sa neberie do úvahy.
objectinOdkaz na ľubovoľný objekt - vzťažný objekt.
Popis

Akcia vytvorí zoznam objektov na základe zadaných vstupných parametrov. Ak je handle na zoznam rovný 0, nastala chyba pri vytváraní zoznamu.
Vlastníkom zoznamu je bežiaca inštancia skriptu a nie je možné ho zdieľať medzi rôznymi skriptami.
Zoznam zaniká zánikom skriptu alebo po vykonaní akcie LST_CLOSE.

Poznámka

Je možné pristupovať k aktuálnym hodnotám objektov ktoré sú načítané v rámci *aktuálnej* stránky akciami LST_CREATE, LST_GO_NEXT, .... Akciou ON CHANGE sa dá reagovať na zmeny hodnôt objektov. Po zatvorení zoznamu alebo po prestránkovaní sú prístupné len posledné hodnoty a akcia ON CHANGE prestane reagovať na zmeny hodnoty.


; Spracovanie zmeny hodnoty
PROCEDURE ChangeProc(IN INT _v, IN ALIAS _a, IN INT _row, _col)
  _c := _v  
END ChangeProc

INT _h    ; identifikátor zonamu
INT _hbj  ; identifikátor prvého objektu zo stránky

ENTRY GO_OnClick
  ALIAS _a
  RECORD NOALIAS (SD._System_ObjectInfo) _data
  
  ; otvorenie zoznamu a načítanie prvej stránky  
  LST_CREATE "Sec", @OTYPE_ALL_TYPES, (0), @SORT_LIST_NAME, 1000, _h, _data
  
  ; Prístup k aktuálnej hodnote objektu zo stránky
  _hbj := _data[1]^ID
  SET _a AS (_hbj)
  _value := _a
  ; Registrácia procedúry
  ON CHANGE (_hbj) GOTO ChangeProc
END GO_OnClick

; zatvorenie zoznamu
ENTRY GO_CLOSE_OnClick
  LST_CLOSE  _h
END GO_CLOSE_OnClick




Súvisiace stránky:

Write a comment...