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

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání
m
 
(Není zobrazeno 47 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.
 
 
===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 (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).
 
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ř.
+
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ř.
 
SKLAD6.EXE S:SYSTEM FSC:Test.FSC
 
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.
 
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.
  
===Tvorba sestav===
+
[[Skriptovací jazyk - objekty]]<br/>
Modul pro práci se skripty podporuje vytváření sestav připravených v generátoru sestav. Příkaz pro spuštění výpočtu sestavy má následující syntaxi:
+
:[[Objekt TMOSCommunicator]]<br/>
 
+
:[[Objekt TKAPBtrTable]]<br/>
Function GSRunReport(SkupinaSestav : Integer; SestavaCislo : Integer; Parametry: String): String;
+
:[[Objekt TKAPMemTable]]<br/>
Function GSRunReportV(SkupinaSestav : Integer; SestavaCislo : Integer; JmenaParametru: Array of String; Hodnoty: array of Variant): String;
+
:[[Objekt TKAPPvQuery]]<br/>
 
+
:[[Objekt TKAPADOTable]]<br/>
SkupinaSestav a SestavaCislo je identifikace spouštěné sestavy.
+
:[[Objekt TKAPADOQuery]]<br/>
 
+
:[[Objekt TKAPADOConnection]]<br/>
V první variantě musí být parametry zapsány takto:
+
:[[Objekt App]]<br/>
promenna1=hodnota1 #13 promenna2=hodnota2 #13 ... promenna_n=hodnota_n
+
:[[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/>
  
Například: GSRunReport(6, 2, 'DatumOd=01/01/12'+chr(13)+'DatumOd=01/01/12')
+
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 druhé variantě jsou parametry zadávány formou dvojice hodnot:
 
[promenna_1, ..., promenna_n], [hodnota_1, ..., hodnota_n]
 
  
Například GSRunReportV(6, 2, ['DatumOd', 'DatumDo'], ['01/01/12', '01/01/12'])
+
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)
     
 
Doplněna je také funkce pro odeslání souboru mailem prostřednictvím protokolu SMTP:
 
Function SendMailBySMTP(From, SendTo, FileAttach, Subject, SMTPServer, SMTPSenderName,SMTPPassword, BodyString : String; var ErrMessage : String) : Boolean;
 
  
From .. odesílatel (obvykle ve formátu e-mailové adresy)
+
{|border=1 class ="wikitable"
SendTo .. emailová adresa příjemce
+
|-
FileAttach .. jméno souboru s přílohou
+
|bgcolor=#00FF00 colspan =4| '''Technická poznámka'''
Subject .. předmět mailu
+
|-
SMTPServer .. jméno SMTP serveru nebo IP adresa
+
|Menu||Proměnná||Alias||Popis
SMTPSenderName .. přihlašovací jméno k SMTP serveru
+
|-
SMTPPassword .. přihlašovací heslo k SMTP serveru
+
|InfoMenu||FSRun_IADR||IADR.||Jednání, úkoly, dokumenty
BodyString .. obsah zprávy - řádky odděleny znakem #13 neboli chr(13)
+
|-
ErrMessage .. návratový chybový kód nebo zpráva
+
|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
 +
|}
  
Pokud jsou parametry SMTPServer, SMTPSenderName, SMTPPassword, From prázdné, tak se jejich hodnoty načítají z proměnných SMTP, 0 až SMTP, 3 (obsah proměnných lze nastavit pomocí dialogu "Nastavení SMTP" (kód menu 51,41)
 
  
Pro vazbu s aplikací je nadefinováno několik objektů a proměnných:
+
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 popisující syntaxi, základní možnosti a příklady [http://www.kapsw.cz/data/xinha/downloads/FastScriptDoc_en.pdf skriptovacího jazyka].
+
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].

Aktuální verze z 7. 10. 2022, 19: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.