Trieda Application
Trieda Application je stavebným kameňom otvoreného rozhrania. Trieda poskytuje služby na úrovni aplikácie, umožňuje predovšetkým prihlásenie / odhlásenie, výber spojenia, výber firmy, správu transakcií, prístup k business objektom v systéme (napr. firma, faktúra, objednávka atď.) a prístup k DynSQL (čo je nástroj na vyhľadávanie v databáze s rôznymi obmedzeniami a radením).
Metódy a vlastnosti:
function Connect(const Connection: WideString): WordBool;
- Popis:
-
Funkcia umožní vybrať spojenie na databázu, ktorú chcete používať. Názvy definovaných spojení nie sú otvoreným rozhraním sprostredkované. Parameter Connection je pakovaný GUID alebo je možné s použitím „@“ uviesť „rozumný“ názov spojenia. Connect je možné použiť len raz pre pripojenie na vybranú databázu.
Ak je odovzdaný parameter NULL GUID, funkcia vráti False, inak True. Funkcia vráti False aj vtedy, keď nie je nájdené spojenie podľa názvu (pozri @).
Pokus o opätovný Connect (), skončí chybovým hlásením, že spojenie s databázou už prebehlo.
V predchádzajúcich verziách bolo možné prepnúť na iné spojenie počas práce s otvoreným rozhraním pomocou Connect a súvisiacej metódy Disconnect. Metóda Disconnect je síce naďalej k dispozícii kvôli spätnej kompatibilite, no nemá už žiadny ďalší význam, tzn. nevykonáva nič.
function Login(const UserName: WideString; const Password: WideString): WordBool;
- Popis:
- Metóda prihlási používateľa s používateľským menom UserName a heslom Password. Pozor, oba parametre rozlišujú malé / veľké písmená. Pokiaľ používateľ nie je pre systém známy, vráti funkciu False.
- Súvisiace metódy:
- Logout
procedure Logout;
- Popis:
- Odhlásenie prihláseného používateľa. Je možné sa odhlásiť aj keď nie je prihlásený používateľ, nie je to ale korektný postup.
- Súvisiace metódy:
- Login
procedure Finalize;
- Popis:
- Vykoná operácie potrebné pre korektné ukončenie aplikácie. Mala by sa vyvolať na poslednom objekte Application pred ukončením aplikácie. Je nutné ju vyvolať iba v prípade použitia AbraOLELib, v prípadeAbraOLE sa potrebné operácie vykonajú automaticky. Volanie metódy Finalize je možné nahradiť vyvolaním funkcie CoFreeUnusedLibraries pred ukončením aplikácie (táto funkcia nie je dostupná v jazyku VBScript).
procedure StartTransaction;
- Popis:
- Zahájenie transakcie. Za normálnych okolností sa transakcie zakladajú samy a nie je nutné sa o ne starať. Vlastnú transakciu je nutné založiť iba vtedy, pokiaľ zakladáme / opravujeme / mažeme viac objektov naraz a chceme, aby boli uložené všetky zmeny / alebo naopak žiadna zmena. Pri používaní transakcií je nutné postarať sa o to, aby v prípade výnimky bola transakcia korektne ukončená vyvolaním Commit() alebo Rollback() za každých okolností.
- Súvisiace metódy:
- InTransaction, Commit, Rollback
property InTransaction: WordBool readonly;
- Popis:
- Hodnota hovorí, či máte rozbehnutú svoju transakciu zahájenú metódou StartTransaction(). Pokiaľ je transakcia aktívna, je ju možné ukončiť a uložiť zmeny vyvolaním Commit() alebo naopak všetky zmeny odvolať volaním Rollback(). Pokiaľ je transakcia rozbehnutá, ďalšie rozbehnutie vyvolania StartTransaction() spôsobí výnimku.
- Súvisiace metódy:
- StartTransaction, Commit, Rollback
procedure Commit;
- Popis:
- Potvrdenie zmien a ich zapísanie do systému (všetko alebo nič).
- Súvisiace metódy:
- StartTransaction, InTransaction, Rollback
procedure Rollback;
- Popis:
- Odvolanie zmien. V rámci odvolanej transakcie nie sú žiadne dáta do systému zapísané, všetky zmeny budú zabudnuté.
- Súvisiace metódy:
- StartTransaction, InTransaction, Commit
function CreateValues(const CLSID: WideString): ObjectData;
- Popis:
- Funkcia vráti novú inštanciu objektu ObjectData. Parameter CLSID je pakovaný GUID alebo je možné s použitím "@" uviesť "rozumný" názov triedy. Pokiaľ trieda nie je v systéme nájdená, je vyvolaná výnimka.
function GetValueDescriptors(const CLSID: WideString): DataCollection;
- Popis:
- Funkcia vráti kolekciu objektov typu FieldDescription. Z akej triedy budú, určujeme parametrom CLSID.
function CreateObject(const CLSID: WideString): IDispatch;
- Popis:
- Funkcia vráti novú inštanciu objektu DataObject. Parameter CLSID je pakovaný GUID alebo je možné s použitím "@" uviesť "rozumný" názov triedy (napr. CreateValues("@Firm"). Pokiaľ trieda nie je v systéme nájdená, je vyvolaná výnimka. Vrátený je interface IDispatch, na ktorom si môžeme vyvolať akékoľvek metódy (objekt ich samozrejme musí implementovať). Vrátený objekt tiež podporuje generický interface DataObject.
function CreateCommand(const CMDName: WideString): DynamicQuery;
- Popis:
- Funkcia vráti novú inštanciu objektu DynamicQuery pre požadovanú DynSQL s názvom CMDName. Takýto DynSQL musí existovať. Táto funkcia prijíma na rozdiel od CreateCustomCommand() "používateľsky príjemnejší" názov definovaný v DynSQL. Pokiaľ je zadaný názov, ktorý nie je v DynSQL nájdený, je vyvolaná výnimka.
- Súvisiace metódy:
- CreateCustomCommand
function CreateCustomCommand(const CMDID: WideString): DynamicQuery;
- Popis:
- Funkcia vráti novú inštanciu objektu DynamicQuery pre požadovaný DynSQL s názvom CMDID. Takýto DynSQL musí existovať. Pokiaľ je zadaný názov, ktorý nie je v DynSQL nájdený, je vyvolaná výnimka.
- Súvisiace metódy:
- CreateCommand
function CreateTranslator(const CLSID: WideString; const ReverseMode: WordBool): Translator;
- Popis:
- Funkcia vráti novú inštanciu objektu Translator. Parameter CLSID je pakovaný GUID alebo je možné s použitím "@" uviesť "rozumný" názov triedy (napr. CreateTranslator("@Firm")). Pokiaľ trieda nie je v systéme nájdená, je vyvolaná výnimka. Parameter ReverseMode určuje, či bude translátor spätný alebo nie, spätný translátor má prehodené významy Term a Meaning (viď príslušné metódy triedy Translator).
function GetRoll(const ClassId: WideString; Mask: Integer): Roll;
- Popis:
-
Funkcia vráti inštanciu objektu Roll. Parameter ClassId je pakovaný alebo nepakovaný GUID v znakovej podobe. Pokiaľ pre dané ClassId neexistuje číselník, alebo sa nejedná o tzv. Business číselník, je vyvolaná výnimka. Parameter Mask určuje s akou maskou práv sa daný číselník získa. Maska je tzv. bitová maska, kde jednotlivé bity majú význam podľa definovaných práv v rámci chránených objektov.
- 0 – bez obmedzenia práv
- 1 – len s právom zobraziť
- 2 – len s právom použiť
- 3 – s právom zobraziť i použiť
- Súvisiace metódy:
- DropRoll
procedure DropRoll(const ClassId: WideString; Mask: Integer);
- Popis:
-
Procedúra uvolní inštanciu číselníka z cache číselníkov. Parameter ClassId je pakovaný alebo nepakovaný GUID v znakovej podobe. Parameter Mask určuje o aký číselník s akou maskou práv ide. Maska je tzv. bitová maska, kde jednotlivé bity majú význam podľa definovaných práv v rámci chránených objektov.
- 0 – bez obmedzenia práv
- 1 – len s právom zobraziť
- 2 – len s právom použiť
- 3 – s právom zobraziť i použiť
- Súvisiace metódy:
- GetRoll
function GetAgenda(const ClassId: WideString): Agenda;
- Popis:
- Funkcia vráti inštanciu objektu Agenda. Parameter ClassId je pakovaný alebo nepakovaný GUID v znakovej podobe. Pokiaľ pre dané ClassId neexistuje agenda, je vyvolaná výnimka.
procedure Run(const CommandLine: WideString);
- Popis:
- Funkcia spustí interný príkaz systému ABRA Gen alebo aplikačný modul. Pokiaľ je príkaz neznámy alebo nebol aplikačný modul nájdený, je vyvolaná výnimka.
-
Príklady aplikačných modulov:
- POS - modul pokladne
- TouchPOS - modul pokladne s dotykovým displejom
- PriceDialog - modul pre dohľadanie predajnej ceny
procedure SQLExecute(const ASQL: WideString);
- Popis:
- Funkcia vykoná akýkoľvek SQL príkaz (teda aj INSERT, UPDATE, DELETE a DDL) v kontexte bežiacej transakcie. Používateľ musí mať právo Použiť funkciu SQLUpdate a nesmie mať zakázané použitie konkrétnych tabuliek v skriptovacích funkciách.
procedure SQLSelect(const ASQL: WideString; AResult: _Strings);
- Popis:
- Funkcia vykoná akýkoľvek SQL príkaz typu SELECT v kontexte bežiacej transakcie. Výsledok je vrátený v AResult vo formáte CSV (každá položka AResult zodpovedá jednému záznamu, jednotlivé stĺpčeky sú oddelené bodkočiarkou). Používateľ musí mať právo Použiť funkciu SQLSelect a nesmie mať zakázané použitie konkrétnych tabuliek v skriptovacích funkciách.
function SQLSelectAsRowset(const ASQL: WideString): Rowset;
- Popis:
- Funkcia vykoná akýkoľvek SQL príkaz typu SELECT v kontexte bežiacej transakcie. Výsledok je vrátený ako nový objekt Rowset. Používateľ musí mať právo Použiť funkciu SQLSelect a nesmie mať zakázané použitie konkrétnych tabuliek v skriptovacích funkciách.
function CreateStrings: _Strings;
- Popis:
- Funkcia vytvorí a vráti novú prázdnu inštanciu triedy _Strings.
function CreateCollection: DataCollection;
- Popis:
- Funkcia vytvorí a vráti novú prázdnu inštanciu triedy DataCollection.
function CreateDocumentImportManager(const InputCLSID: WideString; const OutputCLSID: WideString): DocumentImportManager;
- Popis:
- Metóda vytvorí a vráti novú inštanciu rozhrania DocumentImportManager. Parameter InputCLSID a OutputCLSID je pakovaný GUID alebo je možné s použitím "@" uviesť "rozumný" názov triedy (napr. CreateDocumentImportManager("@BillOfDelivery", "@IssuedInvoice")). Pokiaľ trieda nie je v systéme nájdená, je vyvolaná výnimka.
function Evaluate(const Expression: WideString ): WideString;
- Popis:
- Funkcia vyhodnotí výraz Expression pomocou evaluátora a vráti jeho výsledok.
function GetConnections(const Str: _Strings ): WordBool;
- Popis:
- Funkcia vráti v parametri Str zoznam existujúcich spojení na databázy vo formáte GUID spojenia=Názov. Návratová hodnota funkcie je vždy nastavená na True, pri chybe je vyvolaná výnimka.
function ActiveConnection: WideString;
- Popis:
- Funkcia vráti GUID aktuálneho spojenia na databázu. Funkciu je možné použiť v spojení s funkciou GetConnections na získanie názvu aktuálneho spojenia.
function GetUsers(const Str: _Strings ): WordBool;
- Popis:
- Funkcia vráti v parametri Str zoznam používateľov vo formáte ID používateľa=Meno používateľa (Pozor, nie prihlasovacie meno). Ak nie je možné používateľa načítať, je návratová hodnota funkcie False, pri chybe je vyvolaná výnimka.
function ActiveUser: WideString;
- Popis:
- Funkcia vráti ID aktuálne prihláseného používateľa. Funkciu je možné použiť v spojení s funkciou GetUsers na získanie mena aktuálne prihláseného používateľa.
function GetSCMDataProvider: SCMDataProvider;
- Popis:
- Metóda vráti globálnu inštanciu triedy SCMDataProvider - poskytovateľa dát pre modul SCM.
function CreateDocumentDriver: DocumentDriver;
- Popis:
- Vytvorí ovládač dokumentu DocumentDriver, pomocou ktorého je možné vytvoriť nový dokument, pridať nový obsah, uložiť obsah do súboru atď.
function CreateSQLStatement: SQLStatement;
- Popis:
- Vytvorí objekt SQLStatement, pomocou ktorého je možné vykonávať SQL príkazy.
function CreateSQLStatement: SQLStatement;
- Popis:
- Pomocou tejto vlastnosti je možné nastaviť handle okna, ktoré sa následne berie ako "Parent" pre okná zobrazujúce sa v OLE rozhraní ABRY. Okná sa následne zobrazia v správnom poradí. Nastavením na 0 sa nastavenie handle zruší a okná sa zobrazia, ako by handle nebol nastavený.
procedure sactIOle(Sender: TObject);
var
mOle, mRoll: variant;
mAction: TAction;
mPF: TForm;
begin
mAction := TAction(Sender);
mOle := mAction.Site.GetAbraOLEApplication;
mPF := mAction.site.GetParentForm;
mOle.WndParent := mPF.Handle;
mRoll := mOle.GetRoll('0BOXHKRF4VD13ACL03KIU0CLP4', 2);
mRoll.SelectDialog2(True, '');
end;