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.