Files
Rootvin-pluginHDCRTN/frmZasobaObjednavky.pas
2025-06-10 19:43:13 +02:00

279 lines
6.8 KiB
ObjectPascal

unit frmZasobaObjednavky;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Data.DB, Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls,
ddPlugin_TLB, JvExDBGrids, JvDBGrid;
type
TformZasobaObjednavky = class(TForm)
GridPanel1: TGridPanel;
grdZasobaObjednavky: TJvDBGrid;
GridPanel2: TGridPanel;
GridPanel3: TGridPanel;
edtSZ: TEdit;
edtRC: TEdit;
edtNazev1: TEdit;
edtMJ: TEdit;
edtBaleni1: TEdit;
edtBaleni2: TEdit;
cbVyroba: TComboBox;
cbNaCeste: TComboBox;
cbSklad: TComboBox;
cbCelkem: TComboBox;
cbObjednano: TComboBox;
Label1: TLabel;
procedure FormShow (Sender: TObject);
procedure grdZasobaObjednavkyDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure grdZasobaObjednavkyDblClick (Sender: TObject);
procedure edtSZChange (Sender: TObject);
procedure edtRCChange (Sender: TObject);
procedure edtNazev1Change (Sender: TObject);
procedure cbVyrobaChange (Sender: TObject);
procedure cbNaCesteChange (Sender: TObject);
procedure cbSkladChange (Sender: TObject);
procedure cbCelkemChange (Sender: TObject);
procedure cbObjednanoChange (Sender: TObject);
procedure edtMJChange (Sender: TObject);
procedure edtBaleni1Change (Sender: TObject);
procedure edtBaleni2Change (Sender: TObject);
procedure Label1Click (Sender: TObject);
private
procedure Filtruj;
public
Helios: iHelios;
vyrobniDen: TDateTime;
end;
var
formZasobaObjednavky: TformZasobaObjednavky;
implementation
uses System.StrUtils, System.Math,
datMod, frmObjednavkaMat, helUtils;
{$R *.dfm}
procedure TformZasobaObjednavky.cbCelkemChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformZasobaObjednavky.cbNaCesteChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformZasobaObjednavky.cbObjednanoChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformZasobaObjednavky.cbSkladChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformZasobaObjednavky.cbVyrobaChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformZasobaObjednavky.edtBaleni1Change(Sender: TObject);
var n: Extended;
begin
edtBaleni1.Text:= edtBaleni1.Text.Trim;
if not(TryStrToFloat(edtBaleni1.Text, n)) then
n:= 0;
Filtruj;
end;
procedure TformZasobaObjednavky.edtBaleni2Change(Sender: TObject);
var n: Extended;
begin
edtBaleni2.Text:= edtBaleni2.Text.Trim;
if not(TryStrToFloat(edtBaleni2.Text, n)) then
n:= 0;
Filtruj;
end;
procedure TformZasobaObjednavky.edtMJChange(Sender: TObject);
begin
edtMJ.Text:= edtMJ.Text.Trim;
Filtruj;
end;
procedure TformZasobaObjednavky.edtNazev1Change(Sender: TObject);
begin
Filtruj;
end;
procedure TformZasobaObjednavky.edtRCChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformZasobaObjednavky.edtSZChange(Sender: TObject);
begin
edtSZ.Text:= edtSZ.Text.Trim;
Filtruj;
end;
procedure TformZasobaObjednavky.Filtruj;
var filtr: string;
n: Extended;
begin
filtr:= '';
if (edtSZ.Text<>'') then
filtr:= 'UPPER(colSZ) LIKE ''%' + edtSZ.Text.Trim.ToUpper + '%''';
if (edtRC.Text<>'') then
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'UPPER(colRC) LIKE ''%' + edtRC.Text.Trim.ToUpper + '%''';
if (edtNazev1.Text<>'') then
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'UPPER(colNazev1) LIKE ''%' + edtNazev1.Text.Trim.ToUpper + '%''';
if (edtMJ.Text<>'') then
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'UPPER(colMJ) LIKE ''%' + edtMJ.Text.Trim.ToUpper + '%''';
if (edtBaleni1.Text<>'') then
begin
if not(TryStrToFloat(edtBaleni1.Text, n)) then
n:= 0;
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'colBaleni1=' + n.ToString.Replace(',', '.');
end;
if (edtBaleni2.Text<>'') then
begin
if not(TryStrToFloat(edtBaleni2.Text, n)) then
n:= 0;
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'colBaleni2=' + n.ToString.Replace(',', '.');
end;
if (cbVyroba.Text.Trim<>'') then
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'colVyroba' + cbVyroba.Text;
if (cbNaCeste.Text.Trim<>'') then
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'colNaCeste' + cbNaCeste.Text;
if (cbSklad.Text.Trim<>'') then
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'colSklad' + cbSklad.Text;
if (cbCelkem.Text.Trim<>'') then
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'colCelkem' + cbCelkem.Text;
if (cbObjednano.Text.Trim<>'') then
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'colObjednano' + cbObjednano.Text; // + ' OR colPalet' + cbObjednano.Text;
grdZasobaObjednavky.LockDrawing;
if (filtr='') then
begin
dm.vtZasobyObjednavky.Filter:= filtr;
dm.vtZasobyObjednavky.Filtered:= false;
end
else
begin
dm.vtZasobyObjednavky.Filter:= filtr;
dm.vtZasobyObjednavky.Filtered:= true;
end;
grdZasobaObjednavky.UnlockDrawing;
grdZasobaObjednavky.Invalidate;
end;
procedure TformZasobaObjednavky.FormShow (Sender: TObject);
begin
grdZasobaObjednavky.Font.Height:= Helios.FontHeight;
dm.NactiZasobaObjednavky (self);
end;
procedure TformZasobaObjednavky.grdZasobaObjednavkyDblClick (Sender: TObject);
var idKZ: integer;
f: TformObjednavkaMat;
begin
idKZ:= TDBGrid(Sender).DataSource.DataSet.FieldByName('colIDKmen').AsInteger;
f:= TformObjednavkaMat.Create(nil);
try
f.Helios:= Helios;
f.vyrobniDen:= vyrobniDen;
f.idKmen:= idKZ;
f.ShowModal;
finally
f.Free;
end;
end;
procedure TformZasobaObjednavky.grdZasobaObjednavkyDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (not(gdSelected in State)) then
begin
if (Odd(grdZasobaObjednavky.DataSource.DataSet.RecNo)) then
TDBGrid(Sender).Canvas.Brush.Color:= clWindow
else
TDBGrid(Sender).Canvas.Brush.Color:= $00E0E0E0;
end;
if (Column.FieldName='colNazev1') then
begin
TDBGrid(Sender).Canvas.Brush.Color:= $00D0FEC6;
if (gdSelected in State) then
begin
TDBGrid(Sender).Canvas.Font.Color:= clBlack;
TDBGrid(Sender).Canvas.Brush.Color:= $0061F0FC;
end;
end;
TDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
procedure TformZasobaObjednavky.Label1Click (Sender: TObject);
begin
edtSZ.Text:= '';
edtRC.Text:= '';
edtNazev1.Text:= '';
edtMJ.Text:= '';
edtBaleni1.Text:= '';
edtBaleni2.Text:= '';
cbVyroba.ItemIndex:= -1;
cbNaCeste.ItemIndex:= -1;
cbObjednano.ItemIndex:= -1;
cbSklad.ItemIndex:= -1;
cbCelkem.ItemIndex:= -1;
Filtruj;
end;
end.