196 lines
5.7 KiB
ObjectPascal
196 lines
5.7 KiB
ObjectPascal
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.
|