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.