Příklady C++

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

Příklady programů ve skriptovacím programovacím jazyku v jazyku C++.

Příklad 1 - práce s proměnnými uloženými do databáze

  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");}

}


Příklad 2 - spuštění sestavy z generátoru sestav

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);

}


Příklad 3 - odeslání mailu s přílohou pomocí SMTP

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);}

}


Příklad 4 - odeslání souboru pomocí MaximObjServeru

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;

}


Příklad 5 - použití funkcí objektu TMOSCommunicator pro komunikaci s MaximObjServerem

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;
}

}


Příklad 6 - práce s TKAPBtrTable ve formuláři

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
}

}


Příklad 7 - použití paměťové tabulky TKAPMemTable

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;
}

}