unit frmKanbanObj; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Data.DB, FireDAC.Comp.Client, ddPlugin_TLB, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Comp.DataSet, Vcl.Grids, Vcl.DBGrids, JvExDBGrids, JvDBGrid; const KLF_ACTIVATE = $00000001; KLF_SETFORPROCESS = $00000100; CRLF = #13#10; type TformKanbanObj = class(TForm) Label1: TLabel; lblPocetPol: TLabel; Label2: TLabel; lblDodavatel: TLabel; ds: TDataSource; vTable: TFDMemTable; vTableIdPohybu: TIntegerField; vTableIdKanbanBox: TIntegerField; vTableNazev: TStringField; vTableMnozstvi: TSmallintField; btnStorno: TButton; btnOK: TButton; btnGenObj: TButton; btnGenKoopOrVPr: TButton; // přidáno 18.3.2021 vTableRegCis: TStringField; mLog: TMemo; Label3: TLabel; edtBox: TEdit; lblWork: TLabel; grdPolozky: TJvDBGrid; procedure FormShow (Sender: TObject); procedure edtBoxKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); procedure btnStornoClick (Sender: TObject); procedure FormClose (Sender: TObject; var Action: TCloseAction); procedure btnGenObjClick (Sender: TObject); procedure btnGenKoopOrVPrClick(Sender: TObject); // přidáno 18.3.2021 procedure btnOKClick (Sender: TObject); procedure grdPolozkyKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); private function IDPol2Str: string; public Helios: IHelios; idObj: integer; btnGenVPrOrKoopText: string; // přidáno 18.3.2021 PoslatEmail: integer; // přidáno 10.6.2022 TypKooObj: boolean; // přidáno 10.6.2022 NadpisTypuKoopObj: String; // přidáno 10.6.2022 Zarovnani: string; // přidáno 10.6.2022 Cesta: string; // přidáno 10.6.2022 Nazev: string // přidáno 10.6.2022 end; var formKanbanObj: TformKanbanObj; cOrg: integer; jeGenVydej, jeKoopObj, primaObj: Boolean; layName: array[0..KL_NAMELENGTH+1] of Char; jsouGenVPr: Boolean; // přidáno 18.3.2021 implementation uses System.StrUtils, Globalni; {$R *.dfm} function TformKanbanObj.IDPol2Str: string; var tmp: string; x: integer; begin x:= vTable.RecNo; grdPolozky.LockDrawing; vTable.First; tmp:= ''; while not(vTable.Eof) do begin if (vTable.Fields.FieldByName('IdPohybu').AsString<>'') then tmp:= tmp + vTable.Fields.FieldByName('IdPohybu').AsString + ','; vTable.Next; end; if (RightStr(tmp,1)=',') then SetLength(tmp, Length(tmp)-1); vTable.RecNo:= x; grdPolozky.UnlockDrawing; result:= tmp; end; procedure TformKanbanObj.grdPolozkyKeyUp (Sender: TObject; var Key: Word; Shift: TShiftState); begin if (jeGenVydej) then Helios.Error(#1'Z objednávky byla vytvořena výdejka obalů, záznamy nelze mazat.'#1) else begin // přidáno 18.3.2021 if (jsouGenVPr) then Helios.Error(#1'Z objednávky byly vygenerovány výrobní příkazy nebo kooperační objednávka, záznamy nelze mazat.'#1) else begin // konec přidáno 18.3.2021 if (Key=VK_DELETE) and (vTable.RecordCount>0) then if Helios.YesNo('Opravdu chcete z objednávky smazat tento box ?',false) then begin vTable.Delete; lblPocetPol.Caption:= IntToStr(StrToInt(lblPocetPol.Caption)-1); grdPolozky.Refresh; edtBox.SetFocus; end; end; end; // přidáno 18.3.2021 end; procedure TformKanbanObj.btnStornoClick(Sender: TObject); begin Close; end; procedure TformKanbanObj.btnOKClick(Sender: TObject); var lSQL, idcka, idKZobal: string; x: integer; begin lblWork.Visible:= true; lblWork.Caption:= 'Ukládám položky...'; lSQL:= 'DECLARE @i INT; SELECT @i=ISNULL(MAX(id),0) FROM dbo._TabKanbanPohyby;DBCC CHECKIDENT(_TabKanbanPohyby,reseed,@i);'; Helios.ExecSQL(lSQL); idcka:= IDPol2Str; if (idObj>0) then begin Helios.ExecSQL('DELETE FROM dbo._TabKanbanPohyby WHERE IdKanbanObj=' + IntToStr(idObj) + ' AND Id NOT IN (' + IfThen(idcka='','0',idcka) + ')'); x:= vTable.RecNo; grdPolozky.BeginUpdate; vTable.First; while not(vTable.Eof) do begin if (vTable.Fields.FieldByName('IdPohybu').AsString='') then begin idKZobal:= ''; lSQL:= 'SELECT kzO.Id FROM dbo._TabKanbanBox b INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)'; lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) LEFT JOIN dbo.TabKmenZbozi kzO ON'; lSQL:= lSQL + ' (kzO.CisloZbozi=kze._KanbanObal) WHERE b.Id=' + vTable.Fields.FieldByName('IdKanbanBox').AsString; with Helios.OpenSQL(lSQL) do if (RecordCount=1) then if not VarIsNull(FieldValues(0)) then idKZobal:= VarToStr(FieldValues(0)); lSQL:= 'INSERT dbo._TabKanbanPohyby (IDKanbanObj, IDKanbanBox, IdKmenZboziObal) VALUES ('; lSQL:= lSQL + IntToStr(idObj) + ',' + vTable.Fields.FieldByName('IdKanbanBox').AsString + ','; lSQL:= lSQL + IfThen(idKZobal='','null',idKZobal) + ')'; Helios.ExecSQL(lSQL); end; vTable.Next; end; vTable.RecNo:= x; grdPolozky.EndUpdate; Close; end else begin if (cOrg >=0) then begin // přidáno 18.3.2021 lSQL:= 'DECLARE @i INT; SELECT @i=ISNULL(MAX(id),0) FROM dbo._TabKanbanObj; DBCC CHECKIDENT(_TabKanbanObj,reseed,@i);'; Helios.ExecSQL(lSQL); lSQL:= 'INSERT dbo._TabKanbanObj (CisloOrgKoop) VALUES (' + IntToStr(cOrg) + '); SELECT SCOPE_IDENTITY()'; with Helios.OpenSQL(lSQL) do if (RecordCount=1) then begin idObj:= StrToInt(VarToStr(FieldValues(0))); x:= vTable.RecNo; grdPolozky.BeginUpdate; vTable.First; while not(vTable.Eof) do begin idKZobal:= ''; lSQL:= 'SELECT kzO.Id FROM dbo._TabKanbanBox b INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)'; lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) LEFT JOIN dbo.TabKmenZbozi kzO ON'; lSQL:= lSQL + ' (kzO.CisloZbozi=kze._KanbanObal) WHERE b.Id=' + vTable.Fields.FieldByName('IdKanbanBox').AsString; with Helios.OpenSQL(lSQL) do if (RecordCount=1) then if not VarIsNull(FieldValues(0)) then idKZobal:= VarToStr(FieldValues(0)); lSQL:= 'INSERT dbo._TabKanbanPohyby (IDKanbanObj, IDKanbanBox, IdKmenZboziObal) VALUES ('; lSQL:= lSQL + IntToStr(idObj) + ',' + vTable.Fields.FieldByName('IdKanbanBox').AsString + ','; lSQL:= lSQL + IfThen(idKZobal='','null',idKZobal) + ')'; Helios.ExecSQL(lSQL); vTable.Next; end; vTable.RecNo:= x; grdPolozky.EndUpdate; Close; end; end else begin Close; end; // přidáno 18.3.2021 end; lblWork.Visible:= false; end; procedure TformKanbanObj.btnGenObjClick (Sender: TObject); begin btnGenObj.Caption:= 'Probíhá generování...'; if (primaObj) then btnOKClick(Sender); try Helios.ExecSQL('EXEC dbo.ep_KanbanGenVydejObalu @idKanObj=' + IntToStr(idObj)); btnGenObj.Caption:= 'Generuj výdejku obalů'; with Helios.OpenSQL('SELECT IdVydejObalu FROM dbo._TabKanbanObj WHERE Id=' + IntToStr(idObj)) do if (RecordCount=1) then if not VarIsNull(FieldValues(0)) then Helios.PrintForm3(18, 2, 'TabDokladyZbozi.Id=' + VarToStr(FieldValues(0))); Close; except on E:Exception do Helios.Error(#1'Chyba při generování výdejky kanban boxů'#1#13#10 + E.Message); end; end; // přidáno 18.3.2021 procedure TformKanbanObj.btnGenKoopOrVPrClick (Sender: TObject); var IDKoopObj, JeGenKoop : integer; Sql : string; JmenoSouboruVyg: String; begin //if (primaObj) then btnOKClick (Sender); with Helios.OpenSQL('SELECT CASE WHEN EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ' AND IDPrikaz IS NULL) OR NOT EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ') THEN 1 ELSE 0 END' ) do begin if VarIsNull(FieldValues(0)) or (VarToStr(FieldValues(0))='0') or (VarToStr(FieldValues(0))='') then begin Helios.Error('Výrobní příkazy již byly vygenerovány. Nelze je vygenerovat znovu'); exit; end; end; with Helios.OpenSQL('SELECT CASE WHEN EXISTS (SELECT 1 FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ') THEN 1 ELSE 0 END' ) do begin if VarIsNull(FieldValues(0)) or (VarToStr(FieldValues(0))='0') or (VarToStr(FieldValues(0))='') then begin Helios.Error('Nejsou zadány žádné položky'); exit; end; end; btnGenKoopOrVPr.Caption:= 'Probíhá generování...'; try //Helios.ExecSQL('EXEC dbo.hpx_NTS_Kanban_GenerujKoopObjNeboVPr @idKanObj=' + IntToStr(idObj)); // zakomentováno 10.6.2022 // přidáno 10.6.2022 Sql := 'DECLARE @IDKoopObj INT, @VzniklaKoopObj INT; '; Sql := Sql + ' EXEC dbo.hpx_NTS_Kanban_GenerujKoopObjNeboVPr_Plugin @idKanObj=' + IntToStr(idObj) + ', @IDKoopObj = @IDKoopObj OUT, @VzniklaKoopObj = @VzniklaKoopObj OUT;'; Sql := Sql + ' SELECT @IDKoopObj AS IDKoopObj, @VzniklaKoopObj AS VzniklaKoopObj'; with Helios.OpenSQL(Sql) do begin if not VarIsNull(FieldValues(0)) then IDKoopObj := FieldValues(0) else IDKoopObj := -99; if not VarIsNull(FieldValues(1)) then JeGenKoop := FieldValues(1) else JeGenKoop := 0; end; // konec přidání 10.6.2022 btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText; //Close; // zakomentováno 10.6.2022 except on E:Exception do begin Helios.Error(#1'Chyba při generování kooperační objednávky nebo VPř'#1#13#10 + E.Message); btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText; // přidáno 10.6.2022 exit; // přidáno 10.6.2022 end; end; // přidáno 10.6.2022 if (PoslatEmail = 1) and (IDKoopObj > 0) and (JeGenKoop > 0) then begin btnGenKoopOrVPr.Caption:= 'Export do xls...'; // export do xls with Helios.OpenSQL('SELECT id FROM dbo.TabKoopObj WHERE realizovano=0 AND id=' + IntToStr(IDKoopObj)) do begin if (RecordCount=0) then begin JmenoSouboruVyg:= ExportKoopObjXls (Helios, IDKoopObj, TypKooObj, NadpisTypuKoopObj, Zarovnani, Cesta, Nazev, 0) ; end else begin Helios.Error(#1'Kooperační objednávka není realizována, nelze exportovat.'#1 + CRLF + 'Realizujte jí a zkuste to znovu.'); end; end; // zavolání procedury na poslání e-mailu btnGenKoopOrVPr.Caption:= 'Generování e-mailu...'; Sql := 'DECLARE @IDExtKom INT = ' + IntToStr(Helios.ExtKomID) + ', @Soubor NVARCHAR(255) = N''' + JmenoSouboruVyg + ''', @Cesta NVARCHAR(255) = N''' + Cesta + ''', @Chyba NVARCHAR(500);'; Sql := Sql + ' EXEC dbo.hpx_OdeslatKooperacniObjednavkuEmailem_Plugin @IDExtKom , @Soubor = @Soubor, @Cesta = @Cesta, @Chyba = @Chyba OUT, @IDKoopObj = ' + IntToStr(IDKoopObj) + ';' ; Sql := Sql + ' SELECT @Chyba; ' ; // Helios.Info(sql); with Helios.OpenSQL(Sql) do begin if (Not VarIsNull(FieldValues(0))) and (trim(VarToStr(FieldValues(0)))<>'') then begin Helios.Error(VarToStr(FieldValues(0))); end; end; btnGenKoopOrVPr.Caption:= btnGenVPrOrKoopText; end; Close; // konec přidání 10.6.2022 end; // konec přidání 18.3.2021 procedure TformKanbanObj.edtBoxKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var lSQL: string; idx, idKZ: Integer; PridatPolozku: boolean; // přidáno 18.3.2021 begin edtBox.Text:= Trim(edtBox.Text); if (jeKoopObj) then begin Helios.Error(#1'Byla vytvořena Kooperační objednávka, položky nelze přidávat.'#1); Exit; end; // přidáno 18.3.2021 if (jsouGenVPr) then begin Helios.Error(#1'Byly vytvořeny výrobní příkazy, položky nelze přidávat.'#1); Exit; end; // konec přidání 18.3.2021 if (jeGenVydej) then begin Helios.Error(#1'Byla vytvořena výdejka na obaly, položky nelze přidávat.'#1); Exit; end; if ((Key=VK_TAB) or (Key=VK_RETURN)) and (edtBox.Text<>'') then begin idx:= vTable.RecNo; if not(vTable.Locate('IdKanbanBox', VarArrayOf([edtBox.Text]),[loCaseInsensitive])) then begin PridatPolozku := true; //přidáno 18.3.2021 vTable.RecNo:= idx; with Helios.OpenSQL('SELECT id FROM dbo._TabKanbanBox WHERE Id=' + edtBox.Text) do if (RecordCount=1) then begin lSQL:= 'SELECT kz.RegCis, kz.Nazev1, kze._KanbanMnozstvi, kz.Id FROM dbo._TabKanbanBox b'; lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)'; lSQL:= lSQL + ' LEFT JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id) WHERE b.Id=' + edtBox.Text; with Helios.OpenSQL(lSQL) do begin if (cOrg=-99) then // upraveno 18.3.2021 begin idKZ:= StrToInt(VarToStr(FieldValues(3))); lSQL:= 'SELECT se._CisloOrg, co.Nazev FROM dbo.TabKmenZbozi kz INNER JOIN dbo.TabStrom s ON (s.Cislo=kz.KmenoveStredisko)'; lSQL:= lSQL + ' INNER JOIN dbo.TabStrom_EXT se ON (se.Id=s.Id) INNER JOIN dbo.TabCisOrg co ON (co.CisloOrg=se._CisloOrg)'; lSQL:= lSQL + ' WHERE kz.Id=' + IntToStr(idKZ); with Helios.OpenSQL(lSQL) do if (RecordCount=1) then begin cOrg:= StrToInt(VarToStr(FieldValues(0))); lblDodavatel.Caption:= VarToStr(FieldValues(1)); end; // přidáno 18.3.2021 end else begin idKZ:= StrToInt(VarToStr(FieldValues(3))); lSQL:= 'SELECT se._CisloOrg, co.Nazev FROM dbo.TabKmenZbozi kz INNER JOIN dbo.TabStrom s ON (s.Cislo=kz.KmenoveStredisko)'; lSQL:= lSQL + ' INNER JOIN dbo.TabStrom_EXT se ON (se.Id=s.Id) INNER JOIN dbo.TabCisOrg co ON (co.CisloOrg=se._CisloOrg)'; lSQL:= lSQL + ' WHERE kz.Id=' + IntToStr(idKZ); with Helios.OpenSQL(lSQL) do if (RecordCount=1) then begin if (cOrg <> StrToInt(VarToStr(FieldValues(0)))) then begin PridatPolozku := false; Helios.Error('Tento kanbanbox patří jiné organizaci. Nelze přidat na objednávku.') ; if (mLog.Lines.Count=0) then mLog.Lines.Append('Kanbanbox patří jiné organizaci: ' + edtBox.Text) else mLog.Lines.Insert(0, 'Kanbanbox patří jiné organizaci: ' + edtBox.Text); end; end; // konec přidáno 18.3.2021 end; if (PridatPolozku) then begin // přidáno 18.3.2021 vTable.Append; vTable.Fields.FieldByName('IdKanbanBox').AsString:= edtBox.Text; vTable.Fields.FieldByName('RegCis').AsString:= VarToStr(FieldValues(0)); vTable.Fields.FieldByName('Nazev').AsString:= VarToStr(FieldValues(1)); vTable.Fields.FieldByName('Mnozstvi').AsInteger:= StrToInt(VarToStr(FieldValues(2))); vTable.Post; lblPocetPol.Caption:= IntToStr(1 + StrToInt(lblPocetPol.Caption)); end; // přidáno 18.3.2021 end; end else begin if (mLog.Lines.Count=0) then mLog.Lines.Append('Nebyl nalezen kanban box: ' + edtBox.Text) else mLog.Lines.Insert(0, 'Nebyl nalezen kanban box: ' + edtBox.Text); end; end else if (mLog.Lines.Count=0) then mLog.Lines.Append('Kanban box je již zadán: ' + edtBox.Text) else mLog.Lines.Insert(0, 'Kanban box je již zadán: ' + edtBox.Text); edtBox.Text:= ''; edtBox.SetFocus; end; end; procedure TformKanbanObj.FormClose(Sender: TObject; var Action: TCloseAction); begin if (layName[0]<>'') then LoadKeyboardLayout(@layName, KLF_ACTIVATE or KLF_SETFORPROCESS); if (vTable.Active) then vTable.Close; Action:= caFree; end; procedure TformKanbanObj.FormShow(Sender: TObject); var lSQL: string; begin if GetKeyboardLayoutName(@layName) then LoadKeyboardLayout('00020409', KLF_ACTIVATE or KLF_SETFORPROCESS); lblWork.Visible:= false; cOrg:= -99; // upraveno 18.3.2021 jeGenVydej:= false; jeKoopObj:= false; jsouGenVPr := false; // přidáno 18.3.2021 primaObj:= true; if not(vTable.Active) then vTable.Open; vTable.EmptyDataSet; Self.Caption:= 'Kanban objednávka'; edtBox.SetFocus; edtBox.Color:= clWindow; btnGenObj.Enabled:= true; btnGenKoopOrVPr.Enabled:= true; // přidáno 18.3.2021 //přidáno 18.3.2021 with Helios.OpenSQL('EXEC dbo.hpx_NTS_Kanban_TextButonuGenVPrNeboKoop') do begin btnGenVPrOrKoopText:=VarToStr(FieldValues(0)); btnGenKoopOrVPr.Width := StrToInt(VarToStr(FieldValues(1))) ; btnGenKoopOrVPr.Height := StrToInt(VarToStr(FieldValues(2))) ; btnGenKoopOrVPr.Top := StrToInt(VarToStr(FieldValues(3))) ; btnGenKoopOrVPr.Left := StrToInt(VarToStr(FieldValues(4))) ; btnGenKoopOrVPr.Font.Height := StrToInt(VarToStr(FieldValues(5))) ; end; btnGenKoopOrVPr.Caption := btnGenVPrOrKoopText; // konec přidání 18.3.2021 if (idObj>0) then begin primaObj:= false; with Helios.OpenSQL('SELECT CisloOrgKoop, IdVydejObalu, IdKoopObj FROM dbo._TabKanbanObj WHERE Id=' + IntToStr(idObj)) do begin cOrg:= StrToInt(VarToStr(FieldValues(0))); if not VarIsNull(FieldValues(1)) and (VarToStr(FieldValues(1))<>'0') and (VarToStr(FieldValues(1))<>'') then jeGenVydej:= true; if not VarIsNull(FieldValues(2)) and (VarToStr(FieldValues(2))<>'0') and (VarToStr(FieldValues(2))<>'') then jeKoopObj:= true; end; // přidáno 18.3.2021 with Helios.OpenSQL('SELECT COUNT(1) FROM dbo._TabKanbanPohyby WHERE IdKanbanObj = ' + IntToStr(idObj) + ' AND IDPrikaz IS NOT NULL' ) do begin if not VarIsNull(FieldValues(0)) and (VarToStr(FieldValues(0))<>'0') and (VarToStr(FieldValues(0))<>'') then jsouGenVPr:= true else jsouGenVPr := false; end; // konec přidání 18.3.2021 if (jeKoopObj) or (jeGenVydej) or (jsouGenVPr) then // upraveno 18.3.2021 begin btnGenObj.Enabled:= false; edtBox.Enabled:= false; edtBox.Color:= clBtnFace; btnStorno.SetFocus; if ((jeKoopObj) or (jeGenVydej)) then btnGenKoopOrVPr.Enabled := false; end; if (jeKoopObj) then begin Self.Caption:= Self.Caption + ' (odeslána)'; mLog.Lines.Insert(0, 'Objednávka byla již odeslána...'); end else begin if (jeGenVydej) then begin Self.Caption:= Self.Caption + ' (výdejka obalů)'; mLog.Lines.Insert(0, 'Byla již vygenerována výdejka obalů...'); end else begin // přidáno 18.3.2021 if (jsouGenVPr) then begin Self.Caption:= Self.Caption + ' (výrobní příkaz)'; mLog.Lines.Insert(0, 'Byl již vygenerován výrobní příkaz...'); end; // konec přidání 18.3.2021 end; end; with Helios.OpenSQL('SELECT Nazev FROM dbo.TabCisOrg WHERE CisloOrg=' + IntToStr(cOrg)) do lblDodavatel.Caption:= VarToStr(FieldValues(0)); lSQL:= 'SELECT p.Id, b.Id, kz.RegCis, kz.Nazev1, kze._KanbanMnozstvi FROM dbo._TabKanbanPohyby p'; lSQL:= lSQL + ' INNER JOIN dbo._TabKanbanBox b ON (p.IdKanbanBox=b.Id)'; lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi kz ON (kz.Id=b.IdKmenZbozi)'; lSQL:= lSQL + ' INNER JOIN dbo.TabKmenZbozi_EXT kze ON (kze.Id=kz.Id)'; lSQL:= lSQL + ' WHERE p.IdKanbanObj=' + IntToStr(idObj) + ' ORDER BY p.Id'; with Helios.OpenSQL(lSQL) do begin lblPocetPol.Caption:= IntToStr(RecordCount); grdPolozky.BeginUpdate; First; while not(EOF) do begin vTable.Append; vTable.Fields.FieldByName('IdPohybu').AsString:= VarToStr(FieldValues(0)); vTable.Fields.FieldByName('IdKanbanBox').AsString:= VarToStr(FieldValues(1)); vTable.Fields.FieldByName('RegCis').AsString:= VarToStr(FieldValues(2)); vTable.Fields.FieldByName('Nazev').AsString:= VarToStr(FieldValues(3)); vTable.Fields.FieldByName('Mnozstvi').AsInteger:= StrToInt(VarToStr(FieldValues(4))); vTable.Post; Next; end; grdPolozky.EndUpdate; end; end; end; end.