Skriptovací programovací jazyk: Porovnání verzí
m (→Tvorba sestav) |
|||
Řádek 15: | Řádek 15: | ||
− | |||
Verze z 26. 11. 2012, 12:14
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
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.