Objekt App: Porovnání verzí

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání
m (Nová stránka: Pomocí připraveného objektu App lze spouštět libovolnou funkci dané aplikace, která je dostupná z hlavního menu programu. Je tak možné automatizovaně spouštět třeba r...)
 
m
Řádek 15: Řádek 15:
 
   procedure RunMenu(KodMenu1, KodMenu2, PristPravo: byte; Keys: string);
 
   procedure RunMenu(KodMenu1, KodMenu2, PristPravo: byte; Keys: string);
 
   procedure PressKeys(Keys: String);
 
   procedure PressKeys(Keys: String);
 +
  procedure PressChars(Keys: String);
 
   procedure PressFnKeys(Keys: String);
 
   procedure PressFnKeys(Keys: String);
 
   function ActiveWindowCaption: String;
 
   function ActiveWindowCaption: String;
Řádek 44: Řádek 45:
 
|''property OnMenu'' ||Určuje jméno obslužné procedury volané v okamžiku, kdy je program v menu a čeká na vstup klávesy
 
|''property OnMenu'' ||Určuje jméno obslužné procedury volané v okamžiku, kdy je program v menu a čeká na vstup klávesy
 
|-valign=top
 
|-valign=top
|''Connected '' ||Obahuje True pokud je objekt připojen k MOSu
+
|''property OnInputDlg'' ||Určuje jméno obslužné procedury volané v okamžiku, kdy je program ve vstupním dialogu a čeká na vstup klávesy
 
|-valign=top
 
|-valign=top
|''constructor Create(BINfile, IP, UserName, UserPswd: String; CodedLogin: LongInt)'' ||Vytvoří objekt a nastaví hodnoty nezbytné pro připojení obdobně jako následující dvě funkce. Pokud je vyplněný parametr BINfile (jméno souboru s interním certifikátem pro připojení), tak se ostatní parametry ignorují.
+
|''property OnViewDlg'' ||Určuje jméno obslužné procedury volané v okamžiku, kdy je program v seznamu (např. v databázovém seznamu) a čeká na vstup klávesy
 
|-valign=top
 
|-valign=top
|''function SetupConnection(IP, UserName, UserPswd: String; CodedLogin: LongInt): Boolean '' ||Nastaví hodnoty nezbytné pro připojení. Je třeba volat jen pokud je potřeba připojení k novému serveru nebo jinému uživatelskému účtu bez nutnosti rušit a znova vytvářet objekt. Volání této funkce způsobí přerušení spojení s MOSem (pokud bylo navázáno).
+
|''property OnWaitForKey'' ||Určuje jméno obslužné procedury volané v okamžiku, kdy program čeká na vstup klávesy (jde o obecné volání, které se volá i po OnMenu, OnInputDlg, OnViewDlg)
 
|-valign=top
 
|-valign=top
|''function SetupConnectionBinFile(BINfile: String): Boolean '' ||Obdoba funkce SetupConnection ale připojovací hodnoty načítá z  BIN souboru. Ostatní vlastnosti jsou u obou funkcí shodné.
+
|''constructor Create'' ||Konstruktor se nesmí volat přímo, je třeba využít již existující objekt App
 
|-valign=top
 
|-valign=top
|''function Connect: Boolean '' ||Připojí se k MOSu a při úspěšném připojení nastaví vlastnost Connect na True.  
+
|''procedure RunMenu(KodMenu1, KodMenu2, PristPravo: byte; Keys: string)'' ||Spustí funkci z hlavního menu aplikace s určeným kódem menu a danou úrovní přístupových práv (0..9). Funkce může obsahovat seznam kláves, které se mají "stisknout" po vyvolání této funkce
 
|-valign=top
 
|-valign=top
|''procedure Disconnect '' ||Odpojí se od MOSu.  
+
|''procedure PressChars(Keys: String)'' ||Funkce "stiskne" znaky předané prostřednictvím parametru Keys. Znak s kódem #13 se převede na Enter. Znaky s kódem #1 až #26 se převedou na Ctrl+A až Ctrl+Z. Ostatní klávesy se chápou jako znaky.
 
|-valign=top
 
|-valign=top
|''function SendFile(FileName, AServerFileName, Email, Subject, TextMail: String; ANoPrefix: Boolean = False): Boolean '' ||Odešle soubor z klientské stanice na server. Způsob zpracování serverem MOS se určuje podle přípony přenášeného souboru. Funkce je určená pro základní nastavení definované v sekci [Pripony] v souboru MaximObjServer.ini na serveru. Pokud nejsou určené parametry Email, Subject a TextMail, tak se provede odeslání mailu podle parametrů určených serverem. Pokud nastavíte parametr ANoPrefix na True, tak se na serveru ponechá jméno souboru dle parametru FileName, jinak je ke jménu souboru připojena časová značka (umožňuje ve stejnou dobu přijímat stejně pojmenované soubory).
+
|''procedure PressFnKeys(Keys: String)'' ||Funkce "stiskne" funkční klávesy. Text poslaný v parametru Keys musí obsahovat seznam funkčních kláves oddělený mezerami (např. PressFnKeys('Tab F2 Down Enter ESC')
 
|-valign=top
 
|-valign=top
|''function SendFileByAlias(FileName, AServerFileName, Alias: String; FileTime: TDateTime = 0): Boolean '' ||Obdoba SendFile, ale přenos souboru povoluje nastavení vlastností aliasu na MOSu. Využívá se nastavení v souboru MaximObjServer.xml na serveru. Parametr FileName určuje lokální jméno souboru. Parametr AServerFileName určuje jméno souboru na serveru včetně případné podsložky (hlavní složka na serveru je určená serverem na základě parametru Alias).
+
|''procedure PressKeys(Keys: String)'' ||Kombinace funkcí PressChars a PressFnKeys. Písmena, které je třeba stisknout se mohou psát do uvozovek - pak je program nebude zkoušet překládat jako funkční klávesu. Jinak ale vše, co nelze přeložit jako funkční klávesa, pošle jako znak - kromě mezer, uvozovek a znaků pod #32
Parametr Alias určuje jméno aliasu definovaného v MaximObjServer.xml.
 
Parametr FileTime je nepovinný a určuje datum a čas poslední změny souboru, pod jakým se soubor uloží na serveru; pokud má hodnotu 0 nebo není uveden, tak se datum a čas souboru automaticky převezme z lokálního souboru.
 
 
|-valign=top
 
|-valign=top
|''function SendSMS(TelNo, SMSMsg : String): Boolean '' ||Pokud je MOS připojen k SMS bráně, je možné odesílat SMS.
+
|''function ActiveWindowCaption: String'' ||Vrací text aktuálního nadpisu okna.
|-valign=top
 
|''function GetFile(FileName, AServerFileName, Alias: String): Boolean '' ||Načte soubor z MOSu na klienta. Využívá se nastavení v souboru MaximObjServer.xml na serveru. Parametr FileName určuje lokální jméno souboru. Parametr AServerFileName určuje jméno souboru na serveru včetně případné podsložky (hlavní složka na serveru je určená serverem na základě parametru Alias). Parametr Alias určuje jméno aliasu definovaného v MaximObjServer.xml.
 
|-valign=top
 
|''function GetFileInfo(Alias, FileName: String; var RemoteFileName: String; var FileSize: Extended; var FileTime: TDateTime): Boolean '' ||Zjistí informace o souborech na MOSu. Ve FileName může být i maska pro výběr více souborů např.: *.*,  *.jpg apod. Funkce v tom případě vrací informace o prvním nalezeném souboru. Soubory se vybírají z adresáře daného aliasem. Využívá se nastavení aliasů v souboru MaximObjServer.xml na serveru. Funkce vrací v parametru RemoteFileName jméno souboru ze serveru, v parametru FileSize velikost souboru v bytech a ve FileTime vrací datum a čas poslední změny souboru na serveru.
 
|-valign=top
 
|''function GetFileList(Alias, FileName: String; var FileNameList: String):Boolean '' ||Načte seznam souborů z MOSu odpovídající zvolené masce souborů danou parametrem FileName. Ve FileName může být buď maska pro výběr více souborů např.: *.*,  *.jpg nebo konkrétní jméno souboru. Funkce vrací  seznam souborů ve formě jednoho stringu, kde jednotlivé názvy souborů jsou oddělené znakem #13 neboli chr(13). Soubory se vybírají z adresáře na serveru daného aliasem. Využívá se nastavení aliasů v souboru MaximObjServer.xml na serveru.  
 
 
|}
 
|}
  

Verze z 4. 2. 2013, 12:21

Pomocí připraveného objektu App lze spouštět libovolnou funkci dané aplikace, která je dostupná z hlavního menu programu. Je tak možné automatizovaně spouštět třeba různé výpočty, převody, exporty či importy dat.
K dispozici je sada objektů, které jsou dostupné v různých standardních částech aplikace (při práci s menu, seznamy, ve vstupních dialozích apod.).

Objekt TKAPCustomAppControl

TKAPCustomAppControl = class
  property OnMenu: TfsDoMenuEvent;
  property OnInputDlg: TfsDoInptuDlgEvent;
  property OnViewDlg: TfsDoViewDlgEvent;
  property OnWaitForKey: TfsDoWaitForKeyEvent;
end;
TKAPAppControl = class (TKAPCustomAppControl)
  constructor Create;
  procedure RunMenu(KodMenu1, KodMenu2, PristPravo: byte; Keys: string);
  procedure PressKeys(Keys: String);
  procedure PressChars(Keys: String);
  procedure PressFnKeys(Keys: String);
  function ActiveWindowCaption: String;
end;
TKAPAppControlCustomInfo = class
  property Caption: string;
end;
TKAPAppControlMenuInfo = class(TKAPAppControlCustomInfo)
end;
TKAPAppControlInputDlgInfo = class(TKAPAppControlCustomInfo)
end;
TKAPAppControlViewDlgInfo = class(TKAPAppControlCustomInfo)
end;
TKAPAppControlWaitForKeyInfo = class(TKAPAppControlCustomInfo)
end;


Žádný z těchto objektů se nesmí vytvářet přímo. Třída TKAPAppControl je dostupná prostřednictvím již vytvořené instance objektu App a tento objekt je možné přímo používat. Je také možné připravit obslužné procedury, které se musí prostřednictvím vlastností OnMenu, OnInputDlg, OnViewDlg, OnWaitForKey objektu App. Tyto obslužné procedury se volají v okamžiku, kdy aplikace je v dané situaci (tj. v menu, ve vstupním dialogu, při listování v seznamu) a čeká na vstupní klávesu. Úkolem obslužné procedury je podle aktuální situace zareagovat "stisknutím" odpovídající klávesy.

Funkce Popis
property OnMenu Určuje jméno obslužné procedury volané v okamžiku, kdy je program v menu a čeká na vstup klávesy
property OnInputDlg Určuje jméno obslužné procedury volané v okamžiku, kdy je program ve vstupním dialogu a čeká na vstup klávesy
property OnViewDlg Určuje jméno obslužné procedury volané v okamžiku, kdy je program v seznamu (např. v databázovém seznamu) a čeká na vstup klávesy
property OnWaitForKey Určuje jméno obslužné procedury volané v okamžiku, kdy program čeká na vstup klávesy (jde o obecné volání, které se volá i po OnMenu, OnInputDlg, OnViewDlg)
constructor Create Konstruktor se nesmí volat přímo, je třeba využít již existující objekt App
procedure RunMenu(KodMenu1, KodMenu2, PristPravo: byte; Keys: string) Spustí funkci z hlavního menu aplikace s určeným kódem menu a danou úrovní přístupových práv (0..9). Funkce může obsahovat seznam kláves, které se mají "stisknout" po vyvolání této funkce
procedure PressChars(Keys: String) Funkce "stiskne" znaky předané prostřednictvím parametru Keys. Znak s kódem #13 se převede na Enter. Znaky s kódem #1 až #26 se převedou na Ctrl+A až Ctrl+Z. Ostatní klávesy se chápou jako znaky.
procedure PressFnKeys(Keys: String) Funkce "stiskne" funkční klávesy. Text poslaný v parametru Keys musí obsahovat seznam funkčních kláves oddělený mezerami (např. PressFnKeys('Tab F2 Down Enter ESC')
procedure PressKeys(Keys: String) Kombinace funkcí PressChars a PressFnKeys. Písmena, které je třeba stisknout se mohou psát do uvozovek - pak je program nebude zkoušet překládat jako funkční klávesu. Jinak ale vše, co nelze přeložit jako funkční klávesa, pošle jako znak - kromě mezer, uvozovek a znaků pod #32
function ActiveWindowCaption: String Vrací text aktuálního nadpisu okna.


Skupina funkcí začínající REMOTE_... pracuje se soubory na serveru a není určena pro přenos mezi klientem a serverem. Využívá se nastavení aliasů v souboru MaximObjServer.xml na serveru (včetně nastavení přístupových práv pro uživatelské role pro jednotlivé aliasy).

Funkce Popis
function REMOTE_FileCopy (FromAlias, FromDir, ToAlias, ToDir, FileName: String): Boolean Kopíruje soubor mezi dvěma adresáři.
function REMOTE_FileMove (FromAlias, FromDir, ToAlias, ToDir, FileName: String): Boolean Přesune soubor mezi dvěma adresáři. To znamená, že původní soubor bude smazán.
function REMOTE_FileRename (FromAlias, FromDir, FromFileName, ToFileName: String): Boolean Soubor bude přejmenován.
function REMOTE_FileDelete (FromAlias, FromDir, FromFileName: String): Boolean Smaže soubor z disku.
function REMOTE_DirCreate (FromAlias, DirName: String): Boolean Vytvoří nový adresář.
function REMOTE_DirDelete (FromAlias, DirName: String): Boolean Smaže prázdný adresář. Pokud adresář nebude prázdný tak mazání skončí chybou.

Starší verze podporují režim bez předchozího připojení, tj. po Create je možné ihned zavolat funkci pro komunikaci (ta zajistí připojení, komunikaci i odpojení). Pro přenos jednotlivého souboru tedy doporučujeme použít tento druhý postup. Funkce začínající REMOTE jsou určené pro manipulaci s dokumenty na vzdáleném serveru (aliasy se definují v konfiguračním XML souboru na serveru).