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

197 lines
5.0 KiB
ObjectPascal

unit frmPrehledMicharna;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
ddPlugin_TLB, Vcl.ExtCtrls, Vcl.StdCtrls, Data.DB, Vcl.Grids, Vcl.DBGrids,
JvExDBGrids, JvDBGrid, Vcl.ComCtrls, RzDTP, Vcl.Mask, JvExMask, JvToolEdit,
JvMaskEdit, JvCheckedMaskEdit, JvDatePickerEdit;
type
TformPrehledMicharna = class(TForm)
GridPanel1: TGridPanel;
Button1: TButton;
GridPanel2: TGridPanel;
grdSeznamTesta: TJvDBGrid;
grdReceptura: TJvDBGrid;
Label3: TLabel;
Label1: TLabel;
edtStroj: TEdit;
edtTesto: TEdit;
edtDatVypousteni: TJvDatePickerEdit;
edtSuchaHmot: TLabeledEdit;
GridPanel3: TGridPanel;
Label2: TLabel;
Label4: TLabel;
procedure grdSeznamTestaDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure grdRecepturaDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure edtStrojChange(Sender: TObject);
procedure edtTestoChange(Sender: TObject);
procedure edtDatVypousteniChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Label2Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
procedure grdSeznamTestaCellClick(Column: TColumn);
private
function SuchaHmotnost: Extended;
procedure Filtruj;
public
Helios: IHelios;
end;
var
formPrehledMicharna: TformPrehledMicharna;
idOperStartStop, idEvidRozpracOper: integer;
implementation
uses System.StrUtils, System.DateUtils,
datMod, helUtils;
{$R *.dfm}
procedure TformPrehledMicharna.edtDatVypousteniChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformPrehledMicharna.edtStrojChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformPrehledMicharna.edtTestoChange(Sender: TObject);
begin
Filtruj;
end;
procedure TformPrehledMicharna.Filtruj;
var filtr: string;
d: TDateTime;
begin
filtr:= '';
if (edtStroj.Text<>'') then
filtr:= 'UPPER(colStroj) LIKE "%' + edtStroj.Text.Trim.ToUpper + '%"';
if (edtTesto.Text<>'') then
filtr:= IfThen(filtr='', '', filtr + ' AND ') + 'UPPER(colTesto) LIKE "%' + edtTesto.Text.Trim.ToUpper + '%"';
if not(edtDatVypousteni.IsEmpty) then
begin
d:= edtDatVypousteni.Date;
filtr:= IfThen(filtr='', '', filtr + ' AND ') + 'colKonecMichani>=''' + FormatDateTime('dd.mm.yyyy 00:00:01', d)
+ ''' AND colKonecMichani<=''' + FormatDateTime('dd.mm.yyyy 23:59:59', d) + '''';
end;
dm.vtPrehledMicharna.Filter:= filtr;
dm.vtPrehledMicharna.Filtered:= (filtr<>'');
dm.vtPrehledMicharna.First;
end;
procedure TformPrehledMicharna.FormShow(Sender: TObject);
begin
// edtDatVypousteni.Date:= 0;
dm.NactiVytvorenaTesta (self);
end;
function TformPrehledMicharna.SuchaHmotnost: Extended;
var i: integer;
begin
result:= 0;
i:= dm.vtDetailMicharna.RecNo;
dm.vtDetailMicharna.DisableControls;
dm.vtDetailMicharna.First;
while not(dm.vtDetailMicharna.Eof) do
begin
result:= result + dm.vtDetailMicharna.FieldByName('colMnozstvi').AsExtended;
dm.vtDetailMicharna.Next;
end;
dm.vtDetailMicharna.EnableControls;
dm.vtDetailMicharna.RecNo:= i;
end;
procedure TformPrehledMicharna.grdRecepturaDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (not(gdSelected in State)) then
begin
if (Odd(grdReceptura.DataSource.DataSet.RecNo)) then
TDBGrid(Sender).Canvas.Brush.Color:= clWindow
else
TDBGrid(Sender).Canvas.Brush.Color:= $00E0E0E0; // seda
end;
TDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
procedure TformPrehledMicharna.grdSeznamTestaCellClick (Column: TColumn);
begin
if (dm.vtPrehledMicharna.RecordCount>0) then
begin
idOperStartStop:= dm.vtPrehledMicharna.FieldByName('colIDOperStartStop').AsInteger;
idEvidRozpracOper:= dm.vtPrehledMicharna.FieldByName('colIDEvidRozpracOper').AsInteger;
dm.NactiDetailTesta (self, idEvidRozpracOper, idOperStartStop);
edtSuchaHmot.Text:= SuchaHmotnost.ToString;
end;
end;
procedure TformPrehledMicharna.grdSeznamTestaDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (not(gdSelected in State)) then
begin
if (Odd(grdSeznamTesta.DataSource.DataSet.RecNo)) then
TDBGrid(Sender).Canvas.Brush.Color:= clWindow
else
TDBGrid(Sender).Canvas.Brush.Color:= $00E0E0E0; // seda
end;
TDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
procedure TformPrehledMicharna.Label2Click(Sender: TObject);
begin
edtDatVypousteni.Clear;
end;
procedure TformPrehledMicharna.Label4Click(Sender: TObject);
begin
edtTesto.Text:= '';
edtStroj.Text:= '';
edtDatVypousteni.Clear;
Filtruj;
end;
end.