Skriptovací programovací jazyk: Porovnání verzí

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání
m (Nová stránka: V aplikaci je integrovaný modul pro podporu správy systému umožňující zpracování programových skriptů. Skripty je možné psát v integrovaném editoru (kód menu 90,20). ...)
 
m
Řádek 3: Řádek 3:
  
 
Objekty:
 
Objekty:
Settings.Values['INI.fieldname']..vrací hodnoty polí z tabulky SKLADINI
+
Settings.Values['INI.fieldname']..vrací hodnoty polí z tabulky SKLADINI
Settings.Values['KFG.fieldname']..vrací hodnoty polí z tabulky SKLADKFG
+
Settings.Values['KFG.fieldname']..vrací hodnoty polí z tabulky SKLADKFG
Settings.Values['USER.fieldname']..vrací hodnoty polí z tabulky SYSTUSER
+
Settings.Values['USER.fieldname']..vrací hodnoty polí z tabulky SYSTUSER
 
   (fieldname je jméno pole z dané tabulky dle struktury souborů)
 
   (fieldname je jméno pole z dané tabulky dle struktury souborů)
Settings.Values['DPH.ProcentoN']..vrací sazbu DPH (N je od 0 do 6)
+
Settings.Values['DPH.ProcentoN']..vrací sazbu DPH (N je od 0 do 6)
Settings.Values['DPH.OznaceniN']..vrací krátké označení DPH (N je od 0 do 6)
+
Settings.Values['DPH.OznaceniN']..vrací krátké označení DPH (N je od 0 do 6)
Settings.Values['DPH.PasmoN']..vrací pásmo DPH (N je od 0 do 6)
+
Settings.Values['DPH.PasmoN']..vrací pásmo DPH (N je od 0 do 6)
 
   (všechny hodnoty dle aktuálně přihlášeného uživatele a databáze)
 
   (všechny hodnoty dle aktuálně přihlášeného uživatele a databáze)
Settings.Values['VAR.promenna']..vrací hodnotu INI proměnné dle nastavení proměnných (Oprava INI hodnot / F10)
+
Settings.Values['VAR.promenna']..vrací hodnotu INI proměnné dle nastavení proměnných (Oprava INI hodnot / F10)
  
 
Konstanty:
 
Konstanty:
_AktualniSklad_ .. číslo aktuálního skladu
+
_AktualniSklad_ .. číslo aktuálního skladu
_NazevSkladu_ .. název aktuálního skladu
+
_NazevSkladu_ .. název aktuálního skladu
_KonfigDir_ .. označení konfigurační složky včetně lomítka (např. UZIV\ )
+
_KonfigDir_ .. označení konfigurační složky včetně lomítka (např. UZIV\ )
_Mena_ .. hlavní měna (určená verzí programu)
+
_Mena_ .. hlavní měna (určená verzí programu)
_Direktivy_ .. direktivy dle verze aplikace (např. LCXX EXTUCTO ...)
+
_Direktivy_ .. direktivy dle verze aplikace (např. LCXX EXTUCTO ...)
  
 
Funkce:
 
Funkce:
Function IniReadString(Sekce: String; Promenna: Byte; TestUzivatel: Boolean; Sklad: integer; Default: String): String
+
Function IniReadString(Sekce: String; Promenna: Byte; TestUzivatel: Boolean; Sklad: integer; Default: String): String
  .. vrací textovou hodnotu proměnné z CISELNIK.BTR (číselník 161)
+
  - vrací textovou hodnotu proměnné z CISELNIK.BTR (číselník 161)
Function IniWriteString(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Hodnota: String): Boolean
+
Function IniWriteString(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Hodnota: String): Boolean
  .. zapisuje hodnotu proměnné (TestUzivatel=true: platí jen pro akt.uživatele; Sklad=0:platí pro všechny sklady)
+
  - zapisuje hodnotu proměnné (TestUzivatel=true: platí jen pro akt.uživatele; Sklad=0:platí pro všechny sklady)
Function IniReadInteger(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Default: integer): integer
+
Function IniReadInteger(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Default: integer): integer
  .. vrací číselnou hodnotu proměnné
+
  - vrací číselnou hodnotu proměnné
Function IniWriteInteger(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Hodnota: integer): Boolean
+
Function IniWriteInteger(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Hodnota: integer): Boolean
  .. zapisuje číselnou hodnotu proměnné
+
  - zapisuje číselnou hodnotu proměnné
Procedure LogWrite(Msg : String)
+
Procedure LogWrite(Msg : String)
  .. zapisuje informaci Msg do textového logu aplikace
+
  - zapisuje informaci Msg do textového logu aplikace
  
 
Příklad skriptu v syntaxi Pascal:
 
Příklad skriptu v syntaxi Pascal:

Verze z 19. 9. 2012, 14:55

V aplikaci je integrovaný modul pro podporu správy systému umožňující zpracování programových skriptů. Skripty je možné psát v integrovaném editoru (kód menu 90,20). Je možné psát skripty ve formátu Pascal, C++, Basic nebo JScript (stejné možnosti, jen jiná syntaxe použitá pro zápis skriptů). V aplikacích je možné použít mnoho různých objektů, funkcí a konstant. Pro vazbu s aplikací je nadefinováno několik objektů a proměnných:

Objekty:

Settings.Values['INI.fieldname']..vrací hodnoty polí z tabulky SKLADINI
Settings.Values['KFG.fieldname']..vrací hodnoty polí z tabulky SKLADKFG
Settings.Values['USER.fieldname']..vrací hodnoty polí z tabulky SYSTUSER
 (fieldname je jméno pole z dané tabulky dle struktury souborů)
Settings.Values['DPH.ProcentoN']..vrací sazbu DPH (N je od 0 do 6)
Settings.Values['DPH.OznaceniN']..vrací krátké označení DPH (N je od 0 do 6)
Settings.Values['DPH.PasmoN']..vrací pásmo DPH (N je od 0 do 6)
 (všechny hodnoty dle aktuálně přihlášeného uživatele a databáze)
Settings.Values['VAR.promenna']..vrací hodnotu INI proměnné dle nastavení proměnných (Oprava INI hodnot / F10)

Konstanty:

_AktualniSklad_ .. číslo aktuálního skladu
_NazevSkladu_ .. název aktuálního skladu
_KonfigDir_ .. označení konfigurační složky včetně lomítka (např. UZIV\ )
_Mena_ .. hlavní měna (určená verzí programu)
_Direktivy_ .. direktivy dle verze aplikace (např. LCXX EXTUCTO ...)

Funkce:

Function IniReadString(Sekce: String; Promenna: Byte; TestUzivatel: Boolean; Sklad: integer; Default: String): String
- vrací textovou hodnotu proměnné z CISELNIK.BTR (číselník 161)
Function IniWriteString(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Hodnota: String): Boolean
- zapisuje hodnotu proměnné (TestUzivatel=true: platí jen pro akt.uživatele; Sklad=0:platí pro všechny sklady)
Function IniReadInteger(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Default: integer): integer
- vrací číselnou hodnotu proměnné
Function IniWriteInteger(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Hodnota: integer): Boolean
- zapisuje číselnou hodnotu proměnné
Procedure LogWrite(Msg : String)
- zapisuje informaci Msg do textového logu aplikace

Příklad skriptu v syntaxi Pascal: var i: integer;

   s: String;

begin

 s:=IniReadString('ScriptTest', 1, True, _AktualniSklad_, '5');
 ShowMessage(Settings.Values['INI.FirmaJmeno']+chr(13)+Settings.Values['USER.JmenoUziv']+chr(13)+_KonfigDir_);
 LogWrite('Direktivy:'+_Direktivy_);
 if s <>  then
   i := StrToInt(s)+1
 else
   i := -10;
 if not IniWriteInteger('ScriptTest', 1, True, _AktualniSklad_, i) then
   ShowMessage('V IniWriteInteger se vyskytla chyba');

end.


Skripty nelze v programu spouštět přímo, ale je třeba je nejdříve tzv. podepsat. To zajišťuje nová funkce s kódem menu 90,21, která k vybranému vstupnímu souboru se souborem skriptu vytvoří soubor s podepsaným skriptem (stejné jméno jako zdrojový soubor, ale s příponou FSC). K tomu je třeba určit jméno uživatele a heslo, pod kterým se bude program do aplikace přihlašovat (pokud skript připravujete pro jinou instalaci aplikace, tak heslo nemusí souhlasit s aktuálním heslem). Je možné určit také jméno databáze (to je ale nepovinné, lze ho určit až při spouštění skriptu parametrem DB:jmenodatabaze). Podepsané soubory lze spouštět pomocí nového parametru FSC:jménopodepsanéhoskriptu, např. SKLAD6.EXE S:SYSTEM FSC:Test.FSC Výsledný podepsaný soubor je uložený v interním formátu a nelze ho již znovu podepisovat (je třeba podepisovat vždy zdrojový soubor). Program při podepisování nekontroluje syntaxi skriptu. Ta je kontrolována vždy až při spouštění skriptu. Chyby skriptu jsou zapisovány do textového LOG souboru (ne všechny jsou hlášeny na obrazovku). Obě funkce jsou ve výchozím stavu umístěny do menu Nástroje pro správu, které nahradilo stávající menu Rekonstrukce dat.