Skriptovací jazyk - příklady

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání

Příklad

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.

C++

  int i;

String s; {

s = IniReadString("ScriptTest", 1, True, _AktualniSklad_, "5");
ShowMessage(Settings.Values["INI.FirmaJmeno"]+"\n"+Settings.Values["USER.JmenoUziv"]+"\n"+_KonfigDir_);
LogWrite("Direktivy:"+_Direktivy_);
if (s != "") {
  i = StrToInt(s)+1;}
else
  {i = -10;}
if (!IniWriteInteger("ScriptTest", 1, True, _AktualniSklad_, i))
  {ShowMessage("V IniWriteInteger se vyskytla chyba");}

}

Java

s = IniReadString("ScriptTest", 1, True, _AktualniSklad_, "5");
ShowMessage(Settings.Values["INI.FirmaJmeno"]+"\n"+Settings.Values["USER.JmenoUziv"]+"\n"+_KonfigDir_);
LogWrite("Direktivy:"+_Direktivy_);
if (s != "") {
  i = StrToInt(s)+1;}
else
  {i = -10;}
if (!IniWriteInteger("ScriptTest", 1, True, _AktualniSklad_, i))
  {ShowMessage("V IniWriteInteger se vyskytla chyba");}   

Příklad 2

Pascal

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. 

C++

String s; TDateTime d1, d2; Word DD, MM, YY;

{

DecodeDate(Date, YY, MM, DD);
if (MM==1) // Zjisteni predchoziho mesice
{  MM = 12;
  YY = YY - 1;}
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);

}

Java

DecodeDate(Date, YY, MM, DD);
if (MM==1) // Zjisteni predchoziho mesice
{  MM = 12;
  YY = YY - 1;}
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);



Příklad 3

Pascal

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. 

C++=

String s;

{ //From, SendTo, FileAttach, Subject, SMTPServer, SMTPSenderName, SMTPPassword, BodyString, ErrMessage

 if (SendMailBySMTP("odesilatel@posta.cz", "prijemce@posta.com",
           "UZIV\\Sestava1.SES"+#9+"UZIV\\SESTAVA2.SES"+#13+"UZIV\\Doklad.pdf", 
           "Test scriptu", "smtp.posta.cz", "SMTPjmeno", "SMTPheslo", "Testovaci email.\nKonec", s))
  { ShowMessage("OK\n"+ s);}
 else
  { ShowMessage("CHYBA\n"+ s);}

}


Java

//From, SendTo, FileAttach, Subject, SMTPServer, SMTPSenderName, SMTPPassword, BodyString, ErrMessage

 s = "";
 if (SendMailBySMTP("odesilatel@posta.cz", "prijemce@posta.com",
           "UZIV\\Sestava1.SES"+#9+"UZIV\\SESTAVA2.SES"+#13+"UZIV\\Doklad.pdf",
           "Test scriptu", "smtp.posta.cz", "SMTPjmeno", "SMTPheslo", "Testovaci email.\nKonec", s))
  { ShowMessage("OK\n"+ s);}
 else
  { ShowMessage("CHYBA\n"+ s);}



Příklad 4

Pascal

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. 

C++

TMOSCommunicator MOSCommunicator;

{

MOSCommunicator = TMOSCommunicator.Create("MOS.bin", "", "", "", 0);
if (MOSCommunicator.SendFile("DIR\\DATA.xml", "DATA1.XML", "", "", "", True))
 { LogWrite("Prenos OK");}
else
 { LogWrite(MOSCommunicator.ErrMessage);}
MOSCommunicator.Free;

}

Java

MOSCommunicator = TMOSCommunicator.Create("MOS.bin", "", "", "", 0);
if (MOSCommunicator.ErrMessage == ""){
  if (MOSCommunicator.SendFile("DIR\\DATA.xml", "DATA1.XML", "", "", "", True))
   { LogWrite("Prenos OK");}
  else
   { LogWrite(MOSCommunicator.ErrMessage);}
}else
 { LogWrite(MOSCommunicator.ErrMessage);}
MOSCommunicator.Free;

Příklad 5

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.

C++

TMOSCommunicator MOSCommunicator; String Info; Float Velikost; TDateTime Cas;

{

MOSCommunicator = TMOSCommunicator.Create("", "192.168.17.1", "MOSuser", "MOSpswd", 1);
try{
  if (MOSCommunicator.Connect) {         // pokud se poipojím, pak se vše realizuje
                                         // v rámci jednoho poipojení
                                         //    ShowMessage('Pripojeno');
    if (MOSCommunicator.Connected) { // test navic
      if (MOSCommunicator.SendSMS("111222333","Pokus o poslani SMS"))
        {ShowMessage("SMS odeslana.");}
      else
        {ShowMessage("Chyba pri odesilani SMS:" + #13+MOSCommunicator.ErrMessage);}
      if (MOSCommunicator.SendFile("DIR\\DATA.xml", "DATA1.XML", "", "", "", False))
      {
        ShowMessage("Prenos OK");
        if (MOSCommunicator.GetFileInfo("Sklad6DOC", "Stavy.xml", Info, Velikost, Cas)){
          ShowMessage("GetFileInfo:"+#13 + Info+ #13 + FloatToStr(Velikost) + #13 + DateTimeToStr(Cas));
          if (!MOSCommunicator.GetFile("DIR\\Stavy2.xml", "Stavy.xml", "Sklad6DOC")){
            ShowMessage("GetFile:" + #13 + MOSCommunicator.ErrMessage);}
        } else
        {  ShowMessage("GetFileInfo:" + #13 + MOSCommunicator.ErrMessage);}
      } else {
        ShowMessage("SendFile"+#13+MOSCommunicator.ErrMessage);}
      MOSCommunicator.Disconnect;
    } else
      {ShowMessage(MOSCommunicator.ErrMessage);}
  } else
    {ShowMessage(MOSCommunicator.ErrMessage);}
}finally{
  MOSCommunicator.Free;
}

}

=Java

MOSCommunicator = TMOSCommunicator.Create("", "192.168.17.1", "MOSuser", "MOSpswd", 1);
try{
  if (MOSCommunicator.Connect) {         // pokud se poipojím, pak se vše realizuje
                                         // v rámci jednoho poipojení
                                         //    ShowMessage('Pripojeno');
    if (MOSCommunicator.Connected) { // test navic
      if (MOSCommunicator.SendSMS("111222333","Pokus o poslani SMS"))
        {ShowMessage("SMS odeslana.");}
      else
        {ShowMessage("Chyba pri odesilani SMS:" + #13+MOSCommunicator.ErrMessage);}
      if (MOSCommunicator.SendFile("DIR\\DATA.xml", "DATA1.XML", "", "", "", False))
      {
        ShowMessage("Prenos OK");
        if (MOSCommunicator.GetFileInfo("Sklad6DOC", "Stavy.xml", Info, Velikost, Cas)){
          ShowMessage("GetFileInfo:"+#13 + Info+ #13 + FloatToStr(Velikost) + #13 + DateTimeToStr(Cas));
          if (!MOSCommunicator.GetFile("DIR\\Stavy2.xml", "Stavy.xml", "Sklad6DOC")){
            ShowMessage("GetFile:" + #13 + MOSCommunicator.ErrMessage);}
        } else
        {  ShowMessage("GetFileInfo:" + #13 + MOSCommunicator.ErrMessage);}
      } else {
        ShowMessage("SendFile"+#13+MOSCommunicator.ErrMessage);}
      MOSCommunicator.Disconnect;
    } else
      {ShowMessage(MOSCommunicator.ErrMessage);}
  } else
    {ShowMessage(MOSCommunicator.ErrMessage);}
}finally{
  MOSCommunicator.Free;
}



Příklad 6

Pascal

var
  t: TKAPBtrTable;
  f: TForm;
  DBGrid: TDBGrid;
  ds: TDataSource;
begin
 ds := nil;
 t := TKAPBtrTable.Create;
 try  // try-finally část není nutná, ale správně se takto řeší problémové situace
   t.TableName := 'CISELNIK.btr';  // jméno tabulky bez cesty
   t.IndexFieldNames := 'TypCis;Klic1';
   t.Open;
   f := TForm.Create(Application);
   try
     f.Caption := 'Zobrazení ' + t.TableName;
     f.Position := poDefault;
     DBGrid:= TDBGrid.Create(f);   // parametr určuje vlastníka prvku DBGrid
     DBGrid.Parent := f;           // Parent určuje, na kterém formuláři se má DBGrid zobrazit
     DBGrid.Align := alClient;     // alClient znamená vyplnit celý formulář
     ds:= TDataSource.Create(f); // TDataSource propojuje tabulku s vizuálními prvky pro editaci (DBGrid)
     DBGrid.DataSource := ds;
     ds.DataSet := t;
     f.ShowModal;                // hlavní okno je třeba vždy otevírat pomocí ShowModal
   finally
     F.Free;                     // objekty, kterým byl určen vlastník (DBGrid) se ruší automaticky
   end;                          // při rušení vlastníka (při F.Free se ruší DBGrid i ds)
 finally
   t.Free;                       // vytvořené objekty je třeba zrušit
 end;
end.

C++

TKAPBtrTable t; TForm f; TDBGrid DBGrid; TDataSource ds; {

ds = null;
t = TKAPBtrTable.Create;
try{  // try-finally cást není nutná, ale správne se takto reší problémové situace
  t.TableName = "CISELNIK.btr";  // jméno tabulky bez cesty
  t.IndexFieldNames = "TypCis;Klic1";
  t.Open;
  f = TForm.Create(Application);
  try{
    f.Caption = "Zobrazení " + t.TableName;
    f.Position = poDefault;
    DBGrid = TDBGrid.Create(f);   // parametr urcuje vlastníka prvku DBGrid
    DBGrid.Parent = f;           // Parent urcuje, na kterém formulári se má DBGrid zobrazit
    DBGrid.Align = alClient;     // alClient znamená vyplnit celý formulár
    ds = TDataSource.Create(f); // TDataSource propojuje tabulku s vizuálními prvky pro editaci (DBGrid)
    DBGrid.DataSource = ds;
    ds.DataSet = t;
    f.ShowModal;                // hlavní okno je treba vždy otevírat pomocí ShowModal
  }finally{
    F.Free;                     // objekty, kterým byl urcen vlastník (DBGrid) se ruší automaticky
  }                          // pri rušení vlastníka (pri F.Free se ruší DBGrid i ds)
}finally{
  t.Free;                       // vytvorené objekty je treba zrušit
}

}

Java

t = TKAPBtrTable.Create;
try{  // try-finally cást není nutná, ale správne se takto reší problémové situace
  t.TableName = "CISELNIK.btr";  // jméno tabulky bez cesty
  t.IndexFieldNames = "TypCis;Klic1";
  t.Open;
  f = TForm.Create(Application);
  try{
    f.Caption = "Zobrazení " + t.TableName;
    f.Position = poDefault;
    DBGrid = TDBGrid.Create(f);   // parametr urcuje vlastníka prvku DBGrid
    DBGrid.Parent = f;           // Parent urcuje, na kterém formulári se má DBGrid zobrazit
    DBGrid.Align = alClient;     // alClient znamená vyplnit celý formulár
    ds = TDataSource.Create(f); // TDataSource propojuje tabulku s vizuálními prvky pro editaci (DBGrid)
    DBGrid.DataSource = ds;
    ds.DataSet = t;
    f.ShowModal;                // hlavní okno je treba vždy otevírat pomocí ShowModal
  }finally{
    F.Free;                     // objekty, kterým byl urcen vlastník (DBGrid) se ruší automaticky
  }                          // pri rušení vlastníka (pri F.Free se ruší DBGrid i ds)
}finally{
  t.Free;                       // vytvorené objekty je treba zrušit
}

Příklad 7

var t: TKAPMemTable;
   f:TForm;
   DBGr: TDBGrid;
   ds: TDataSource;
   MinA, x: Integer;
begin
 t := TKAPMemTable.Create;
 try
   t.FieldDefs.Add('A',ftInteger,0, false);
   t.FieldDefs.Add('B',ftString,30, false);
   t.FieldDefs.Add('C',ftfloat,0, false);
   t.FieldDefs.Add('D',ftDate,0, false);
   t.FieldDefs.Add('E',ftTime,0, false);
   t.CreateTable(nil);
//    t.IndexFieldNames := 'A;B';
   t.AddIndex('i1', 'A;B',[ixCaseInsensitive]); // nesmi byt prazdna mnozina
   t.IndexName := 'i1';
   t.Open;
   t.Append;
   t.FieldByName('A').AsInteger := 5555;
   t.FieldByName('B').AsString := 'TEST';
   t.FieldByName('C').AsFloat := 10.5;
   t.Post;
   t.Append;
   t.FieldByName('A').AsInteger := 4444;
   t.FieldByName('D').AsDateTime := Date+1;
   t.Post;
   t.Append;
   t.FieldByName('A').AsInteger := 3333;
   t.Post;
   t.Append;
   t.FieldByName('A').AsInteger := 8888;
   t.Post;
   t.First;
   MinA := t.FieldByName('A').AsInteger;
   while not t.EOF do begin
     if t.FieldByName('A').AsInteger < MinA then MinA := t.FieldByName('A').AsInteger;
     t.Next;
   end;
   ShowMessage('Min: '+IntToStr(MinA));
   f := TForm.Create(Application);
   try
     f.Caption := 'Zobrazení MemTable';
     f.Width := 1024;
     f.Height := 768;
     DBGr:= TDBGrid.Create(f);
     DBGr.Parent := f;
     DBGr.Align := alClient;
     ds:= TDataSource.Create(f);
     DBGr.DataSource :=ds;
     ds.DataSet := t;
     f.ShowModal;
   finally
     f.free;
   end
//    x := t.RecordCount;
 finally
   t.Free;
 end
end.

C++

TKAPMemTable t; TForm f; TDBGrid DBGr; TDataSource ds; Integer MinA, x;

{

t = TKAPMemTable.Create;
try{
  t.FieldDefs.Add("A",ftInteger,0, false);
  t.FieldDefs.Add("B",ftString,30, false);
  t.FieldDefs.Add("C",ftfloat,0, false);
  t.FieldDefs.Add("D",ftDate,0, false);
  t.FieldDefs.Add("E",ftTime,0, false);
  t.CreateTable(nil);

// t.IndexFieldNames = "A;B";

  t.AddIndex("i1", "A;B",[ixCaseInsensitive]); // nesmi byt prazdna mnozina
  t.IndexName = "i1";
  t.Open;
  t.Append;
  t.FieldByName("A").AsInteger = 5555;
  t.FieldByName("B").AsString = "TEST";
  t.FieldByName("C").AsFloat = 10.5;
  t.Post;
  t.Append;
  t.FieldByName("A").AsInteger = 4444;
  t.FieldByName("D").AsDateTime = Date+1;
  t.Post;
  t.Append;
  t.FieldByName("A").AsInteger = 3333;
  t.Post;
  t.Append;
  t.FieldByName("A").AsInteger = 8888;
  t.Post;
  t.First;
  MinA = t.FieldByName("A").AsInteger;
  while(!t.EOF){
    if (t.FieldByName("A").AsInteger < MinA) { MinA = t.FieldByName("A").AsInteger;}
    t.Next;
  }
  ShowMessage("Min: "+IntToStr(MinA));
  f = TForm.Create(Application);
  try{
    f.Caption = "Zobrazení MemTable";
    f.Width = 1024;
    f.Height = 768;
    DBGr= TDBGrid.Create(f);
    DBGr.Parent = f;
    DBGr.Align = alClient;
    ds= TDataSource.Create(f);
    DBGr.DataSource =ds;
    ds.DataSet = t;
    f.ShowModal;
  }finally{
    f.free;
  }
}finally{
  t.Free;
}

}

Java

t = TKAPMemTable.Create;
try{
  t.FieldDefs.Add("A",ftInteger,0, false);
  t.FieldDefs.Add("B",ftString,30, false);
  t.FieldDefs.Add("C",ftfloat,0, false);
  t.FieldDefs.Add("D",ftDate,0, false);
  t.FieldDefs.Add("E",ftTime,0, false);
  t.CreateTable(nil);

// t.IndexFieldNames = "A;B";

  t.AddIndex("i1", "A;B",[ixCaseInsensitive]); // nesmi byt prazdna mnozina
  t.IndexName = "i1";
  t.Open;
  t.Append;
  t.FieldByName("A").AsInteger = 5555;
  t.FieldByName("B").AsString = "TEST";
  t.FieldByName("C").AsFloat = 10.5;
  t.Post;
  t.Append;
  t.FieldByName("A").AsInteger = 4444;
  t.FieldByName("D").AsDateTime = Date+1;
  t.Post;
  t.Append;
  t.FieldByName("A").AsInteger = 3333;
  t.Post;
  t.Append;
  t.FieldByName("A").AsInteger = 8888;
  t.Post;
  t.First;
  MinA = t.FieldByName("A").AsInteger;
  while(!t.EOF){
    if (t.FieldByName("A").AsInteger < MinA) { MinA = t.FieldByName("A").AsInteger;}
    t.Next;
  }
  ShowMessage("Min: "+IntToStr(MinA));
  f = TForm.Create(Application);
  try{
    f.Caption = "Zobrazení MemTable";
    f.Width = 1024;
    f.Height = 768;
    DBGr= TDBGrid.Create(f);
    DBGr.Parent = f;
    DBGr.Align = alClient;
    ds= TDataSource.Create(f);
    DBGr.DataSource =ds;
    ds.DataSet = t;
    f.ShowModal;
  }finally{
    f.free;
  }
}finally{
  t.Free;
}