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

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání
m
 
(Není zobrazeno 58 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
 
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.
 
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:
+
Skripty nelze v programu spouštět přímo (pouze v integrovaném editoru skriptů, kde je možné i jednoduché krokování skriptů), 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).
Settings.Values['INI.fieldname']..vrací hodnoty polí z tabulky SKLADINI
+
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 [[Parametry pro spuštění aplikace|parametru]] FSC:jménopodepsanéhoskriptu, např.
Settings.Values['KFG.fieldname']..vrací hodnoty polí z tabulky SKLADKFG
+
SKLAD6.EXE S:SYSTEM FSC:Test.FSC
Settings.Values['USER.fieldname']..vrací hodnoty polí z tabulky SYSTUSER
+
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.
  (fieldname je jméno pole z dané tabulky dle struktury souborů)
+
 
Settings.Values['DPH.ProcentoN']..vrací sazbu DPH (N je od 0 do 6)
+
Pomocí kódů menu 90,100 až 90,150 lze spouštět skripty se jménem souboru určeným pomocí proměnné ''MenuScript,x'' (x je hodnota od 0 do 50). Skripty musí být sice podepsané, ale jméno uživatele ani heslo se v tomto případě nekontroluje.
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)
+
[[Skriptovací jazyk - objekty]]<br/>
  (všechny hodnoty dle aktuálně přihlášeného uživatele a databáze)
+
:[[Objekt TMOSCommunicator]]<br/>
Settings.Values['VAR.promenna']..vrací hodnotu INI proměnné dle nastavení proměnných (Oprava INI hodnot / F10)
+
:[[Objekt TKAPBtrTable]]<br/>
 +
:[[Objekt TKAPMemTable]]<br/>
 +
:[[Objekt TKAPPvQuery]]<br/>
 +
:[[Objekt TKAPADOTable]]<br/>
 +
:[[Objekt TKAPADOQuery]]<br/>
 +
:[[Objekt TKAPADOConnection]]<br/>
 +
:[[Objekt App]]<br/>
 +
:[[Objekt TKAPRegOptions]]<br/>
 +
:[[Objekt TKAPIndPrice]]<br/>
 +
:[[Objekt TKAPOrder]]<br/>
 +
:[[Objekt TKAPDocument]]<br/>
 +
[[Skriptovací jazyk - konstanty]]<br/>
 +
[[Skriptovací jazyk - funkce]]<br/>
 +
:[[Skriptovací jazyk - tvorba sestav]]<br/>
 +
:[[Skriptovací jazyk - odesílání mailů pomocí SMTP]]<br/>
 +
Skriptovací jazyk - příklady<br/>
 +
:[[Příklady PASCAL]]<br/>
 +
:[[Příklady C++]]<br/>
 +
:[[Příklady JAVA]]<br/>
 +
:[[Příklady BASIC]]<br/>
 +
 
 +
Skriptovací programovací jazyk je doplněn o třídu TKAPADOTable, která umožňuje manipulaci s databázovými tabulkami prostřednictvím rozhraní ADO. Je tak možné načítat či ukládat data do externích databází (např. MS SQL server, tabulky MS Excel apod.). Pro přístup k externím databázím lze také využít již dříve definované třídy TTable, TQuery apod., které ale vyžadují, aby na daném PC bylo instalováno databázové prostředí BDE (Borland Database Engine).
 +
 
  
Konstanty:
+
Ve většině menu, které lze vyvolat v programu pomocí '''Alt+F6''' a v některých dalších menu, je možné spustit skript určený proměnnou. V proměnné '''''FSRun_XXX,n''''' je třeba určit jméno podepsaného skriptu (FSC). '''Menu má vždy kód menu 69,n (n odpovídá proměnné FSRun_XXX, n).''' Při spuštění skriptu program naplní seznam hodnot Settings podle aktuálního záznamu, na kterém stojí program v době spuštění exportu ve formátu Alias.Pole=hodnota (např. DOK.CisloDokl=12345)
_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:
+
{|border=1 class ="wikitable"
Function IniReadString(Sekce: String; Promenna: Byte; TestUzivatel: Boolean; Sklad: integer; Default: String): String
+
|-
- vrací textovou hodnotu proměnné z CISELNIK.BTR (číselník 161)
+
|bgcolor=#00FF00 colspan =4| '''Technická poznámka'''
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)
+
|Menu||Proměnná||Alias||Popis
Function IniReadInteger(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Default: integer): integer
+
|-
- vrací číselnou hodnotu proměnné
+
|InfoMenu||FSRun_IADR||IADR.||Jednání, úkoly, dokumenty
Function IniWriteInteger(Sekce : String;  Promenna : Byte; TestUzivatel: Boolean; Sklad: integer; Hodnota: integer): Boolean
+
|-
- zapisuje číselnou hodnotu proměnné
+
|BNO_MNU||FSRun_BNO||BNO.||Odběratelské bonusy
Procedure LogWrite(Msg : String)
+
|-
- zapisuje informaci Msg do textového logu aplikace
+
|UCC_MNU||FSRun_UCC||UCC.||Účtenky - prodej na pokladně
 +
|-
 +
|DOKLAD_SPC||FSRun_DOK||DOK.||Speciální funkce k dokladu (popř. též DOKLAD_SP+ nebo DOKLAD_SP-)
 +
|-
 +
|DKS_MNU||FSRun_DKS||DKS.||Funkce ke sloučenému dokladu
 +
|-
 +
|EDI_Pol||FSRun_EDIL||EDIL.||Funkce k položkám EDI dokladu
 +
|-
 +
|EDI_Dok||FSRun_EDIH||EDIH.||Funkce k hlavičce EDI dokladu
 +
|-
 +
|EET_TST||FSRun_EET||EET.||Kontrola neodeslaného EET při spuštění programu DodMenu FSRum_ADR ADR. Funkce k adrese (též menu OdbMenu/Dod_SPC/Odb_SPC/Dod_ADRI/Odb_ADRI)
 +
|-
 +
|KARTA_SPC||FSRun_KAR||KAR.||Speciální funkce ke kartě
 +
|-
 +
|LPP_MNU||FSRun_LPP||LPP.||Položky dávky oznamovací povinnosti lihu
 +
|-
 +
|LPH_MNU||FSRun_LPH||LPH.||Hlavičky dávky oznamovací povinnosti lihu
 +
|-
 +
|LOP_MNU||FSRun_LOP||LOP.||Položky podání oznamovací povinnosti lihu
 +
|-
 +
|LOH_MNU||FSRun_LOH||LOH.||Hlavičky podání oznamovací povinnosti lihu
 +
|-
 +
|NTB_NTEXP||FSRun_NTBE||NTBE.||Přenosy z notebooku
 +
|-
 +
|NOBJED_SPC||FSRun_NOB||NOB.||Speciální funkce k objednávkám a dodavatele
 +
|-
 +
|OBJ_MNU||FSRun_OBJ||OBJ.||Speciální funkce k požadavkům
 +
|-
 +
|OPE_SPC||FSRun_OPE||OPE.||Speciální funkce k operacím dokladů
 +
|-
 +
|OPERACE||FSRun_OPE||OPE.||Funkce k nákupním operacím dokladů
 +
|-
 +
|NBH_MNU||FSRun_NBH||NBH.||Funkce k hlavičce návrhu objednávky
 +
|-
 +
|POKL_SPC||FSRun_POK||POK.||Speciální funkce k pokladním dokladům
 +
|-
 +
|REK_MNU||FSRun_REK||REK.||Speciální funkce k reklamacím
 +
|-
 +
|ROZVOZ_SPC||FSRun_DPR||DPR.||Speciální funkce k dokladům v rozvozu
 +
|-
 +
|ROZVOZ_MNU||FSRun_PRU||PRU.||Speciální funkce k rozvozům
 +
|-
 +
|DOKLAD_TSK||FSRun_DOK||DOK.|| Tisk dokladu (též menu
 +
DOKLAD_TS+/DOKLAD_TS-/DOKLAD_TN+/DOKLAD_TN-/DOKLAD_TM+/DOKLAD_TM-/DOKLAD_TSN/DOKLAD_TMO)
 +
|-
 +
|CIS_SPC||FSRun_CIS||CIS.||Funkce k číselným řadám
 +
|}
  
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.
 
  
 +
Ve skriptech spouštěných z menu je nově možné rozeznat, jaká proměnná byla použita pro spuštění skriptu. Jméno proměnné je dostupné pomocí Settings.Values['RUN.VarName'] a číslo proměnné pomocí Settings.Values['RUN.VarNum'].
  
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).
+
Můžete si stáhnout podrobnou příručku v angličtině popisující syntaxi, základní možnosti a příklady [http://www.kapsw.cz/data/xinha/downloads/FastScriptDoc_en.pdf skriptovacího jazyka].
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.
 

Aktuální verze z 7. 10. 2022, 18:29

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.

Skripty nelze v programu spouštět přímo (pouze v integrovaném editoru skriptů, kde je možné i jednoduché krokování skriptů), 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.

Pomocí kódů menu 90,100 až 90,150 lze spouštět skripty se jménem souboru určeným pomocí proměnné MenuScript,x (x je hodnota od 0 do 50). Skripty musí být sice podepsané, ale jméno uživatele ani heslo se v tomto případě nekontroluje.

Skriptovací jazyk - objekty

Objekt TMOSCommunicator
Objekt TKAPBtrTable
Objekt TKAPMemTable
Objekt TKAPPvQuery
Objekt TKAPADOTable
Objekt TKAPADOQuery
Objekt TKAPADOConnection
Objekt App
Objekt TKAPRegOptions
Objekt TKAPIndPrice
Objekt TKAPOrder
Objekt TKAPDocument

Skriptovací jazyk - konstanty
Skriptovací jazyk - funkce

Skriptovací jazyk - tvorba sestav
Skriptovací jazyk - odesílání mailů pomocí SMTP

Skriptovací jazyk - příklady

Příklady PASCAL
Příklady C++
Příklady JAVA
Příklady BASIC

Skriptovací programovací jazyk je doplněn o třídu TKAPADOTable, která umožňuje manipulaci s databázovými tabulkami prostřednictvím rozhraní ADO. Je tak možné načítat či ukládat data do externích databází (např. MS SQL server, tabulky MS Excel apod.). Pro přístup k externím databázím lze také využít již dříve definované třídy TTable, TQuery apod., které ale vyžadují, aby na daném PC bylo instalováno databázové prostředí BDE (Borland Database Engine).


Ve většině menu, které lze vyvolat v programu pomocí Alt+F6 a v některých dalších menu, je možné spustit skript určený proměnnou. V proměnné FSRun_XXX,n je třeba určit jméno podepsaného skriptu (FSC). Menu má vždy kód menu 69,n (n odpovídá proměnné FSRun_XXX, n). Při spuštění skriptu program naplní seznam hodnot Settings podle aktuálního záznamu, na kterém stojí program v době spuštění exportu ve formátu Alias.Pole=hodnota (např. DOK.CisloDokl=12345)

Technická poznámka
Menu Proměnná Alias Popis
InfoMenu FSRun_IADR IADR. Jednání, úkoly, dokumenty
BNO_MNU FSRun_BNO BNO. Odběratelské bonusy
UCC_MNU FSRun_UCC UCC. Účtenky - prodej na pokladně
DOKLAD_SPC FSRun_DOK DOK. Speciální funkce k dokladu (popř. též DOKLAD_SP+ nebo DOKLAD_SP-)
DKS_MNU FSRun_DKS DKS. Funkce ke sloučenému dokladu
EDI_Pol FSRun_EDIL EDIL. Funkce k položkám EDI dokladu
EDI_Dok FSRun_EDIH EDIH. Funkce k hlavičce EDI dokladu
EET_TST FSRun_EET EET. Kontrola neodeslaného EET při spuštění programu DodMenu FSRum_ADR ADR. Funkce k adrese (též menu OdbMenu/Dod_SPC/Odb_SPC/Dod_ADRI/Odb_ADRI)
KARTA_SPC FSRun_KAR KAR. Speciální funkce ke kartě
LPP_MNU FSRun_LPP LPP. Položky dávky oznamovací povinnosti lihu
LPH_MNU FSRun_LPH LPH. Hlavičky dávky oznamovací povinnosti lihu
LOP_MNU FSRun_LOP LOP. Položky podání oznamovací povinnosti lihu
LOH_MNU FSRun_LOH LOH. Hlavičky podání oznamovací povinnosti lihu
NTB_NTEXP FSRun_NTBE NTBE. Přenosy z notebooku
NOBJED_SPC FSRun_NOB NOB. Speciální funkce k objednávkám a dodavatele
OBJ_MNU FSRun_OBJ OBJ. Speciální funkce k požadavkům
OPE_SPC FSRun_OPE OPE. Speciální funkce k operacím dokladů
OPERACE FSRun_OPE OPE. Funkce k nákupním operacím dokladů
NBH_MNU FSRun_NBH NBH. Funkce k hlavičce návrhu objednávky
POKL_SPC FSRun_POK POK. Speciální funkce k pokladním dokladům
REK_MNU FSRun_REK REK. Speciální funkce k reklamacím
ROZVOZ_SPC FSRun_DPR DPR. Speciální funkce k dokladům v rozvozu
ROZVOZ_MNU FSRun_PRU PRU. Speciální funkce k rozvozům
DOKLAD_TSK FSRun_DOK DOK. Tisk dokladu (též menu

DOKLAD_TS+/DOKLAD_TS-/DOKLAD_TN+/DOKLAD_TN-/DOKLAD_TM+/DOKLAD_TM-/DOKLAD_TSN/DOKLAD_TMO)

CIS_SPC FSRun_CIS CIS. Funkce k číselným řadám


Ve skriptech spouštěných z menu je nově možné rozeznat, jaká proměnná byla použita pro spuštění skriptu. Jméno proměnné je dostupné pomocí Settings.Values['RUN.VarName'] a číslo proměnné pomocí Settings.Values['RUN.VarNum'].

Můžete si stáhnout podrobnou příručku v angličtině popisující syntaxi, základní možnosti a příklady skriptovacího jazyka.