Příklady BASIC

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

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

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

s = IniReadString("ScriptTest", 1, True, G_AktualniSklad, "5")
ShowMessage(Settings.Values["VAR.DPH-Firma"]+#13#10+Settings.Values["VAR.Registrace"])
LogWrite("Direktivy (verze programu): "+G_Direktivy)
if (s <> null) and (s <> "") then
  i = StrToInt(s)+1
else
  i = -10
end if
if not IniWriteInteger("ScriptTest", 1, True, G_AktualniSklad, i) then
  ShowMessage("V IniWriteInteger se vyskytla chyba")
end if

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

DecodeDate(Date, YY, MM, DD)
if (MM = 1) then
  MM = 12
  YY = YY - 1
else
  MM = MM - 1
end if
D1 = EncodeDate(YY, MM, 1)
D2 = EncodeDate(YY, MM, DaysInMonth(YY, MM))
rem 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

rem From, SendTo, FileAttach, Subject, SMTPServer, SMTPSenderName, SMTPPassword, BodyString, ErrMessage rem nasledujici prikaz musi byt na jednom radku, rem Pokud potrebujete rozdelit v Basicu jeden prikaz na vice radku, tak na konec radku napiste podtrznitko a pokracujte na daslsim radku

 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."+#13#10+"Konec", s) then
   ShowMessage("OK"+#13#10+ s)
 else
   ShowMessage("CHYBA"+#13#10+ s)


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

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

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

MOSCommunicator = TMOSCommunicator.Create("", "192.168.17.1", "MOSuser", "MOSpswd", 1)
try
  if (MOSCommunicator.Connect) then
    if (MOSCommunicator.Connected) then
      if (MOSCommunicator.SendSMS("111222333","Pokus o poslani SMS")) then
        ShowMessage("SMS odeslana.")
      else
        ShowMessage("Chyba pri odesilani SMS:" + #13+MOSCommunicator.ErrMessage)
      end if
      if (MOSCommunicator.SendFile("DIR\DATA.xml", "DATA1.XML", "", "", "", False)) then
        ShowMessage("Prenos OK")
        if (MOSCommunicator.GetFileInfo("Sklad6DOC", "Stavy.xml", Info, Velikost, Cas)) then
          ShowMessage("GetFileInfo:"+#13 + Info+ #13 + FloatToStr(Velikost) + #13 + DateTimeToStr(Cas))
          if not (MOSCommunicator.GetFile("DIR\Stavy2.xml", "Stavy.xml", "Sklad6DOC")) then
            ShowMessage("GetFile:" + #13 + MOSCommunicator.ErrMessage)
          end if
        else
          ShowMessage("GetFileInfo:" + #13 + MOSCommunicator.ErrMessage)
        end if
      else
        ShowMessage("SendFile"+#13+MOSCommunicator.ErrMessage)
      end if
      MOSCommunicator.Disconnect
    else
      ShowMessage(MOSCommunicator.ErrMessage)
    end if
  else
    ShowMessage(MOSCommunicator.ErrMessage)
  end if
finally
  MOSCommunicator.Free
end try

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

ds = null
t = TKAPBtrTable.Create
try
  t.TableName = "CISELNIK.btr"
  t.IndexFieldNames = "TypCis;Klic1"
  t.Open
  f = TForm.Create(Application)
  try
    f.Caption = "Zobrazení " + t.TableName
    f.Position = poDefault
    DBGrid = TDBGrid.Create(f)
    DBGrid.Parent = f
    DBGrid.Align = alClient
    ds = TDataSource.Create(f)
    DBGrid.DataSource = ds
    ds.DataSet = t
    f.ShowModal
  finally
    F.Free
  end try
finally
  t.Free
end try

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

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.AddIndex("i1", "A;B",[ixCaseInsensitive])
  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
    if t.FieldByName("A").AsInteger < MinA then
      MinA = t.FieldByName("A").AsInteger
    end if
    t.Next
  Wend
  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 try
finally
  t.Free
end try