Files
Rootvin-pluginHDCRTN/frmVyrobniDenik.pas
2025-05-21 21:06:33 +02:00

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.