Skriptovací programovací jazyk
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.
Skriptovací jazyk - objekty
Skriptovací jazyk - konstanty
Skriptovací jazyk - funkce
Skriptovací jazyk - tvorba sestav
Skriptovací jazyk - komunikace s MaximObjServerem
Tvorba sestav
Příklady
var
s: String;
d1, d2: TDateTime;
DD, MM, YY : word;
begin
DecodeDate(Date, YY, MM, DD);
if MM=1 then begin // Zjisteni predchoziho mesice
MM := 12;
YY := YY - 1;
end else
MM := MM - 1;
D1 := EncodeDate(YY, MM, 1);
D2 := EncodeDate(YY, MM, DaysInMonth(YY, MM));
S := GSRunReport(6, 1, 'KFG_Datum1='+StrDate(D1)+chr(13)+ 'KFG_Datum='+StrDate(D2)+chr(13)+ 'INI_Jmeno=Pokusný sklad');
//S := GSRunReportV(6, 1, ['KFG_Datum1', 'KFG_Datum', 'INI_Jmeno'],[StrDate(D1), StrDate(D2), 'Pokusný sklad']);
ShowMessage(s);
end.
var
s: String;
begin
//From, SendTo, FileAttach, Subject, SMTPServer, SMTPSenderName, SMTPPassword, BodyString, ErrMessage
if SendMailBySMTP('odesilatel@posta.cz', 'prijemce@mail.com', 'UZIV\SESTAVA1.SLK'#9'UZIV\SESTAVA2.SES'#13'UZIV\vystup.pdf', 'Test scriptu', 'smtp.posta.cz', 'SMTPjmeno', 'SMTPheslo', 'Testovaci email.'#13'Konec', s)
then ShowMessage('OK '+ s)
else ShowMessage('CHYBA '+ s);
end.
var MOSCommunicator: TMOSCommunicator;
begin
MOSCommunicator := TMOSCommunicator.Create('MOS.bin', , , , 0);
if MOSCommunicator.SendFile('C:\DIR\DATA1.xml', 'DATA1.XML', , , , True)
then LogWrite('Prenos OK');
else LogWrite(MOSCommunicator.ErrMessage);
MOSCommunicator.Free;
end.
var MOSCommunicator: TMOSCommunicator;
Info: String;
Velikost: Extended;
Cas: TDateTime;
begin
MOSCommunicator := TMOSCommunicator.Create(, '192.168.17.1', 'MOSuser', 'MOSpswd', 1);
try
if MOSCommunicator.Connect then begin // pokud se připojím, pak se vše realizuje
// v rámci jednoho připojení
// ShowMessage('Pripojeno');
if MOSCommunicator.Connected then begin // test navic
if MOSCommunicator.SendSMS('111222333','Pokus o poslani SMS') then ShowMessage('SMS odeslana.')
else ShowMessage('Chyba pri odesilani SMS:'#13+MOSCommunicator.ErrMessage);
if MOSCommunicator.SendFile('C:\DIR\DATA1.xml', 'DATA1.XML', , , , False) then
begin
ShowMessage('Prenos OK');
if MOSCommunicator.GetFileInfo('Sklad6DOC', 'Stavy.xml', Info, Velikost, Cas) then
begin
ShowMessage('GetFileInfo:'#13 + Info+ #13 +
FloatToStr(Velikost) + #13 + DateTimeToStr(Cas));
if not MOSCommunicator.GetFile('C:\DIR\Stavy2.XML', 'Podslozka\Stavy.xml', 'Sklad6DOC') then ShowMessage('GetFile:'#13+MOSCommunicator.ErrMessage);
end
else
ShowMessage('GetFileInfo:'#13+MOSCommunicator.ErrMessage);
end
else
ShowMessage('SendFile'#13+MOSCommunicator.ErrMessage);
MOSCommunicator.Disconnect;
end else
ShowMessage(MOSCommunicator.ErrMessage);
end else
ShowMessage(MOSCommunicator.ErrMessage);
finally
MOSCommunicator.Free;
end;
end.
Můžete si stáhnout podrobnou příručku popisující syntaxi, základní možnosti a příklady skriptovacího jazyka.