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

290 lines
7.7 KiB
ObjectPascal

unit frmPrijemNestandard;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.NumberBox,
Vcl.ComCtrls, RzDTP,
ddPlugin_TLB, uUtils, ColorButton;
type
TformPrijemNestandard = class(TForm)
grdPrijemNestandard: TDBGrid;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edtSZ: TEdit;
edtRegCis: TEdit;
edtNazev1: TEdit;
edtStroj: TEdit;
Label4: TLabel;
edtPaletList: TEdit;
btnVyberPL: TButton;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
edtDatVyroba: TRzDateTimePicker;
edtDatSpotreba: TRzDateTimePicker;
edtSarze: TEdit;
edtSmena: TEdit;
Label9: TLabel;
Label10: TLabel;
btnZapisPaletyNestandard: TButton;
edtKA: TNumberBox;
btnPLTisk: TButton;
Panel4: TPanel;
edtFiltrRegCis: TEdit;
btnFiltrClear: TButton;
edtFiltrSZ: TEdit;
edtFiltrNazev1: TEdit;
rgPocetKopii: TRadioGroup;
cbTiskNaObraz: TCheckBox;
rb1Kopie: TRadioButton;
rb2Kopie: TRadioButton;
procedure FormShow(Sender: TObject);
procedure grdPrijemNestandardCellClick(Column: TColumn);
procedure btnFiltrClearClick(Sender: TObject);
procedure edtFiltrRegCisChange(Sender: TObject);
procedure edtFiltrSZChange(Sender: TObject);
procedure edtFiltrNazev1Change(Sender: TObject);
procedure btnZapisPaletyNestandardClick(Sender: TObject);
procedure btnVyberPLClick(Sender: TObject);
procedure edtDatSpotrebaChange(Sender: TObject);
procedure grdPrijemNestandardDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure cbTiskNaObrazClick(Sender: TObject);
procedure edtKAExit(Sender: TObject);
procedure edtKAChangeValue(Sender: TObject);
private
function VytvorFilter: string;
public
Helios: IHelios;
aktIdStroj: integer;
end;
var
formPrijemNestandard: TformPrijemNestandard;
idKZ, idStroj: integer;
filtr: string;
nahledTisku: boolean;
implementation
uses System.StrUtils, System.DateUtils, Math,
datMod, helUtils, frmVyberPL;
{$R *.dfm}
function TformPrijemNestandard.VytvorFilter: string;
begin
result:= '';
if (edtFiltrRegCis.Text<>'') then
result:= 'UPPER(fRegCis) LIKE "%' + edtFiltrRegCis.Text.Trim.ToUpper + '%"';
if (edtFiltrSZ.Text<>'') then
result:= IfThen(result='', '', result + ' AND ') + 'UPPER(fSZ) LIKE "%' + edtFiltrSZ.Text.Trim.ToUpper + '%"';
if (edtFiltrNazev1.Text<>'') then
result:= IfThen(result='', '', result + ' AND ') + 'UPPER(fNazev1) LIKE "%' + edtFiltrNazev1.Text.Trim.ToUpper + '%"';
dm.vtPrijemNestandard.Filter:= result;
dm.vtPrijemNestandard.Filtered:= (result<>'');
end;
procedure TformPrijemNestandard.btnFiltrClearClick (Sender: TObject);
begin
edtFiltrRegCis.Text:= '';
edtFiltrSZ.Text:= '';
edtFiltrNazev1.Text:= '';
dm.vtPrijemNestandard.Filter:= '';
dm.vtPrijemNestandard.Filtered:= false;
idKZ:= 0;
edtSZ.Text:= '';
edtRegCis.Text:= '';
edtNazev1.Text:= '';
edtDatSpotreba.DateTime:= 0;
end;
procedure TformPrijemNestandard.btnVyberPLClick (Sender: TObject);
{
var f: TformVyberPL;
begin
f:= TformVyberPL.Create(nil);
try
f.Helios:= Helios;
f.typVyberu:= 1;
f.ShowModal;
if (f.mrVal=10) then // ok
begin
edtPaletList.Text:= f.paletList;
end;
finally
f.Free;
end;
end;
}
var lSQL: string;
begin
{
lSQL:= 'IF OBJECT_ID(N''dbo.ef_Vyroba_VratNovyPaletovyList'') IS NOT NULL SELECT dbo.ef_Vyroba_VratNovyPaletovyList (1, default,default,default) ELSE SELECT 8200000';
with Helios.OpenSQL(lSQL) do
if (RecordCount>0) then
edtPaletList.Text:= VarToStr(FieldValues(0));
}
edtPaletList.Text:= helUtils.getHeliosStrVal (Helios, '5200001', 'SELECT dbo.ef_Vyroba_VratNovyPaletovyList (1, default, default, default)');
edtSarze.Text:= helUtils.getHeliosStrVal (Helios, '', 'SELECT dbo.ef_Vyroba_VratCisloSarze (default, default, default)')
end;
procedure TformPrijemNestandard.btnZapisPaletyNestandardClick (Sender: TObject);
begin
edtPaletList.Text:= edtPaletList.Text.Trim;
edtSarze.Text:= edtSarze.Text.Trim;
if (edtPaletList.Text='') then
Helios.Error(#1'Není načten Paletový list'#1)
else
dm.ZapisVyrobenePaletyNestandard (self, idKZ, idStroj);
end;
procedure TformPrijemNestandard.cbTiskNaObrazClick (Sender: TObject);
begin
rgPocetKopii.Visible:= not(cbTiskNaObraz.Checked);
rb1Kopie.Visible:= not(cbTiskNaObraz.Checked);
rb2Kopie.Visible:= not(cbTiskNaObraz.Checked);
end;
procedure TformPrijemNestandard.edtDatSpotrebaChange (Sender: TObject);
begin
// edtDatSpotreba.Format:= FormatSettings.ShortDateFormat;
end;
procedure TformPrijemNestandard.edtFiltrNazev1Change (Sender: TObject);
begin
VytvorFilter;
end;
procedure TformPrijemNestandard.edtFiltrRegCisChange (Sender: TObject);
begin
VytvorFilter;
end;
procedure TformPrijemNestandard.edtFiltrSZChange (Sender: TObject);
begin
edtFiltrSZ.Text:= edtFiltrSZ.Text.Trim;
VytvorFilter;
end;
procedure TformPrijemNestandard.edtKAChangeValue(Sender: TObject);
begin
btnZapisPaletyNestandard.Enabled:= (edtKA.Value>0);
end;
procedure TformPrijemNestandard.edtKAExit(Sender: TObject);
begin
btnZapisPaletyNestandard.Enabled:= (edtKA.Value>0);
end;
procedure TformPrijemNestandard.FormShow (Sender: TObject);
var lSQL: string;
begin
nahledTisku:= false;
idStroj:= datMod.bmIdStroj; // helUtils.getHeliosIntVal(Helios, 0, 'SELECT TOP(1) ID FROM ' + tblCStroju + ' WHERE Blokovano=0 AND Nazev LIKE N''%přepracování%''');
edtStroj.Text:= helUtils.getHeliosStrVal(Helios, '', 'SELECT nazev FROM ' + tblCStroju + ' WHERE ID=' + idStroj.ToString);
edtDatVyroba.DateTime:= Now;
lSQL:= 'DECLARE @d DATETIME=GETDATE(); SELECT Smena FROM dbo.ef_GetDatumASmenu (@d)';
with Helios.OpenSQL(lSQL) do
edtSmena.Text:= VarToStr(FieldByNameValues('Smena'));
dm.NactiVyrobkyNestandard (self);
ShowScrollbar(grdPrijemNestandard.Handle, SB_VERT, true)
end;
procedure TformPrijemNestandard.grdPrijemNestandardCellClick(Column: TColumn);
var zarukaTyp: integer;
zarukaNum: extended;
d: TDateTime;
begin
idKZ:= dm.vtPrijemNestandard.FieldByName('fID').AsInteger;
edtSZ.Text:= dm.vtPrijemNestandard.FieldByName('fSZ').AsString;
edtRegCis.Text:= dm.vtPrijemNestandard.FieldByName('fRegCis').AsString;
edtNazev1.Text:= dm.vtPrijemNestandard.FieldByName('fNazev1').AsString;
zarukaNum:= helUtils.getHeliosFloatVal(Helios, 0, 'SELECT ZarukaVystup FROM ' + tblKZ + ' WHERE ID=' + idKZ.ToString);
zarukaTyp:= helUtils.getHeliosIntVal(Helios, 0, 'SELECT TypZarukaVystup FROM ' + tblKZ + ' WHERE ID=' + idKZ.ToString); // 0-Den, 1-Mesic, 2-Rok
d:= Now;
if (zarukaTyp=0) then
d:= IncDay(Now, Floor(zarukaNum));
if (zarukaTyp=1) then
d:= IncMonth(Now, Floor(zarukaNum));
if (zarukaTyp=2) then
d:= IncYear(Now, Floor(zarukaNum));
d:= EndOfTheMonth(d);
edtDatSpotreba.Date:= d.GetDate;
if (edtKA.CanFocus) then
edtKA.SetFocus;
end;
procedure TformPrijemNestandard.grdPrijemNestandardDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (not(gdSelected in State)) then
begin
if (Odd(grdPrijemNestandard.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;
end.