unit frmVyrobniDenik; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Mask, Data.DB, Vcl.Grids, Vcl.DBGrids, ddPlugin_TLB; {$I iConsts.inc} type TformVyrobniDenik = class(TForm) GridPanel1: TGridPanel; edtVyrobniDen: TLabeledEdit; GridPanel2: TGridPanel; grdVyrobniDenik: TDBGrid; btnNahledDenik: TButton; btnDenniSoupisCCP1: TButton; btnSeznamVyrobenychPalet: TButton; btnCCP1NovyZapis: TButton; btnNovyVzorek: TButton; procedure FormShow(Sender: TObject); procedure grdVyrobniDenikDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure btnNovyVzorekClick(Sender: TObject); procedure btnDenniSoupisCCP1Click(Sender: TObject); procedure btnCCP1NovyZapisClick(Sender: TObject); procedure btnSeznamVyrobenychPaletClick(Sender: TObject); procedure btnNahledDenikClick(Sender: TObject); private public Helios: IHelios; den: TDateTime; end; var formVyrobniDenik: TformVyrobniDenik; bidXVyrobniDenik: integer; implementation uses System.StrUtils, System.DateUtils, System.Math, datMod, frmKontrolaCCP1, frmSeznamPalet, helUtils, helTabsBIDs; {$R *.dfm} procedure TformVyrobniDenik.grdVyrobniDenikDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (not(gdSelected in State)) then begin if (Odd(grdVyrobniDenik.DataSource.DataSet.RecNo)) then TDBGrid(Sender).Canvas.Brush.Color:= clWindow else TDBGrid(Sender).Canvas.Brush.Color:= $00E0E0E0; end; TDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State); end; procedure TformVyrobniDenik.btnCCP1NovyZapisClick(Sender: TObject); begin btnDenniSoupisCCP1Click (Sender); end; procedure TformVyrobniDenik.btnDenniSoupisCCP1Click (Sender: TObject); var f: TformKontrolaCCP1; begin f:= TformKontrolaCCP1.Create(nil); try f.vyrobniDen:= Now; f.Helios:= Helios; f.ShowModal; finally f.Free; end; end; procedure TformVyrobniDenik.btnNahledDenikClick(Sender: TObject); var podm: string; bid, idF: integer; begin bid:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT DPBID FROM ' + tblObecPrehled + ' WHERE NazevSys=N''hvw_Vyroba_VyrobniDen'''); idF:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT ID FROM ' + tblFormDef + ' WHERE Nazev2=N''PEK-1'''); if (bid>100000) and (idF>0) then begin podm:= 'hvw_Vyroba_VyrobniDen.VyrobniSmena=1 AND hvw_Vyroba_VyrobniDen.VyrobniDen=CONVERT(date,N' + edtVyrobniDen.Text.QuotedString + ',104)'; Helios.PrintForm3 (bid, idF, podm); end; end; procedure TformVyrobniDenik.btnNovyVzorekClick (Sender: TObject); var lSQL: string; aktArchiv, stroj, lastArchiv, nazev: string; i, idKZ, idStroj, idArchiv: integer; begin idKZ:= grdVyrobniDenik.DataSource.DataSet.FieldByName('colIDKmen').AsInteger; nazev:= grdVyrobniDenik.DataSource.DataSet.FieldByName('colNazev1').AsString; if (Helios.YesNo('Chcete zapsat nový vzorek ' + nazev + CRLF + 'Pokračovat ?', false)) then begin idStroj:= grdVyrobniDenik.DataSource.DataSet.FieldByName('colIDStroj').AsInteger; stroj:= grdVyrobniDenik.DataSource.DataSet.FieldByName('colStroj').AsString; i:= 0; idArchiv:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT TOP(1) ID FROM ' + tblVzorkyArchiv + ' WHERE DatUkonceni IS NULL ORDER BY DatPorizeni'); if (idArchiv=0) then begin lastArchiv:= helUtils.getHeliosStrVal(Helios, '', 'SELECT TOP(1) Archiv FROM ' + tblVzorkyArchiv + ' WHERE DatUkonceni IS NOT NULL ORDER BY DatUkonceni DESC'); if (lastArchiv='') then i:= 1 else i:= StrToInt(RightStr(lastArchiv, 4)) + 1; aktArchiv:= YearOf(Now).ToString + 'PE' + StringOfChar('0', 4-Length(i.ToString)) + i.ToString; lSQL:= 'INSERT ' + tblVzorkyArchiv + ' (Archiv) SELECT N' + aktArchiv.QuotedString + CRLF + 'SELECT SCOPE_IDENTITY() AS newid'; try with Helios.OpenSQL(lSQL) do idArchiv:= VarToStr(FieldByNameValues('newid')).ToInteger; except idArchiv:= 0; end; end; if (idArchiv>0) then begin lSQL:= 'INSERT ' + tblVzorky + ' (IDArchiv, IDStroj, IDKmenZbozi, CisloZamMistr) SELECT ' + idArchiv.ToString + ', ' + idStroj.ToString; lSQL:= lSQL + ', ' + idKZ.ToString + ', ' + datMod.cisZamMistr.ToString; try Helios.ExecSQL(lSQL); Helios.Info(#1'Nový vzorek zapsán.'#1); except on E:Exception do Helios.Info(#1'Chyba zápisu vzorku: '#1 + E.Message); end; end; end; end; procedure TformVyrobniDenik.btnSeznamVyrobenychPaletClick (Sender: TObject); var idKZ: integer; f: TformSeznamPalet; begin idKZ:= grdVyrobniDenik.DataSource.DataSet.FieldByName('colIDKmen').AsInteger; f:= TformSeznamPalet.Create(nil); try f.Helios:= Helios; f.typ:= 1; f.idKmen:= idKZ; f.idStroj:= 0; f.den:= den; f.ShowModal; finally f.Free; end; end; procedure TformVyrobniDenik.FormShow (Sender: TObject); begin edtVyrobniDen.Text:= FormatDateTime ('dd.mm.yyyy', den.GetDate); dm.NactiVyrobniDenik (self, den); // btnNahledDenik.Enabled:= btnDenniSoupisCCP1.Enabled; btnDenniSoupisCCP1.Enabled:= (dm.vtVyrobniDenik.RecordCount>0); btnSeznamVyrobenychPalet.Enabled:= btnDenniSoupisCCP1.Enabled; btnNovyVzorek.Enabled:= btnDenniSoupisCCP1.Enabled; btnCCP1NovyZapis.Enabled:= btnDenniSoupisCCP1.Enabled; end; end.