unit frmZahajeniVyrobyPalety; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Data.DB, Vcl.Grids, Vcl.DBGrids, ddPlugin_TLB; type TformZahajeniVyrobyPalety = class(TForm) GridPanel1: TGridPanel; grdZahajeniVyrobyPalety: TDBGrid; procedure FormShow(Sender: TObject); procedure grdZahajeniVyrobyPaletyDblClick(Sender: TObject); private public Helios: IHelios; end; var formZahajeniVyrobyPalety: TformZahajeniVyrobyPalety; implementation uses System.StrUtils, System.DateUtils, datMod, helUtils, helTabsBIDs, frmTiskKAStitku; {$R *.dfm} procedure TformZahajeniVyrobyPalety.FormShow(Sender: TObject); begin dm.NactiZahajeniVyrobyPalety (self); helUtils.waitEnd; end; procedure TformZahajeniVyrobyPalety.grdZahajeniVyrobyPaletyDblClick (Sender: TObject); var msg, podm, lSQL, lSQL2: string; novyZaznam, canCont: boolean; idVPr, idKZPrikaz, idPrP, idStroj, idPrac, idEvROp, prpD: integer; prpA: string; f2: TformTiskKAStitku; begin idVPr:= grdZahajeniVyrobyPalety.DataSource.DataSet.FieldByName('colIDPrikaz').AsInteger; idStroj:= grdZahajeniVyrobyPalety.DataSource.DataSet.FieldByName('colIDStroj').AsInteger; idEvROp:= 0; try novyZaznam:= true; if (dm.vtStroje.FieldByName('fCinnost').AsString='Výroba') then begin idEvROp:= dm.vtStroje.FieldByName('fIDEvidRozpOper').AsInteger; msg:= 'Na stroji ' + #1 + dm.vtStroje.FieldByName('fStroj').AsString + #1 + ' je ve výrobě paleta ' + dm.vtStroje.FieldByName('fAktPaletList').AsString + '.' + CRLF; msg:= msg +'Pokud na ní chcete pokračovat, zadejte z Rozpracovanosti.' + CRLF + 'Pokračovat v zadání nové palety ?'; if not(Helios.YesNo(msg, false)) then novyZaznam:= false; end; if (novyZaznam) then begin dm.UkonciEvidRozpracOper (idEvROp, msg); idKZPrikaz:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IdTabKmen FROM ' + tblVPr + ' WHERE ID=' + idVPr.ToString); idPrac:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT IDPrac FROM ' + tblCStroju + ' WHERE ID=' + idStroj.ToString); lSQL:= 'SELECT pp.ID FROM ' + tblPrPost + ' pp INNER JOIN ' + tblCStroju + ' s ON (s.ID=pp.IDStroje) INNER JOIN ' + tblVPr + ' vp ON (vp.ID=pp.IDPrikaz)'; lSQL:= lSQL + ' WHERE vp.StavPrikazu=30 AND pp.Splneno=0 AND pp.IDOdchylkyDo IS NULL AND s.ID=' + idStroj.ToString; idPrP:= helUtils.getHeliosIntVal(Helios, 0, lSQL + ' AND vp.ID=' + idVPr.ToString); canCont:= false; f2:= TformTiskKAStitku.Create(nil); try try f2.Caption:= ' Zahájení výroby palety'; f2.btnTiskZaloha.Visible:= true; f2.retVal:= 0; f2.Helios:= Helios; f2.idKmen:= idKZPrikaz; f2.ShowModal; if (f2.retVal=1) then canCont:= true; except end; finally f2.Free; end; if (canCont) then begin prpD:= helUtils.getHeliosIntVal(Helios, 1, 'SELECT Doklad FROM ' + tblPrPost + ' WHERE ID=' + idPrP.ToString); prpA:= helUtils.getHeliosStrVal(Helios, 'A', 'SELECT Alt FROM ' + tblPrPost + ' WHERE ID=' + idPrP.ToString); lSQL:= 'INSERT ' + tblRozpracOper + ' (IDZamestnance, CasZahajeni, IDPracoviste, IDStroje) SELECT ' + datMod.idZamMistr.ToString; lSQL:= lSQL + ', GETDATE(), ' + idPrac.ToString + ', ' + idStroj.ToString + CRLF + 'SELECT SCOPE_IDENTITY() AS newid'; idEvROp:= helUtils.getHeliosIntVal(Helios, 0, lSQL); if (idEvROp>0) then begin lSQL:= ' INSERT ' + tblRozpracOperR + ' (IDEvidRozpracOper, IDPrikaz, DokladPrPostup, AltPrPostup, IDVyrCis, Mnoz_odv, Sk_cas, Sk_cas_T, Sk_cas_Obsluhy, Sk_cas_Obsluhy_T)'; lSQL:= lSQL + ' SELECT ' + idEvROp.ToString + ', ' + idVPr.ToString + ', ' + prpD.ToString + ' , N' + prpA.QuotedString + ', NULL, 0, 0, 1, 0, 1'; Helios.ExecSQL(lSQL); end; end; end; except on E:Exception do begin msg:= E.Message; Helios.Error(#1'Chyba'#1 + CRLF + msg); end; end; end; end.