unit frmKmen; 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, JvExDBGrids, JvDBGrid, ddPlugin_TLB, Vcl.ComCtrls, JvExComCtrls, JvHeaderControl, Vcl.StdCtrls, Vcl.Buttons, Vcl.Mask, RzEdit; type TformKmen = class(TForm) Panel1: TPanel; grdKmen: TJvDBGrid; grd1: TGridPanel; grd2: TGridPanel; btnClear: TBitBtn; edtRegCis: TRzEdit; edtNazev: TRzEdit; edtZaklad: TRzEdit; edtStroj: TRzEdit; procedure FormShow (Sender: TObject); procedure grdKmenDblClick (Sender: TObject); procedure FormClose (Sender: TObject; var Action: TCloseAction); procedure btnClearClick (Sender: TObject); procedure edtStrojChange (Sender: TObject); procedure edtRegCisKeyPress (Sender: TObject; var Key: Char); procedure grdKmenDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure edtRegCisChange (Sender: TObject); procedure edtNazevChange (Sender: TObject); procedure edtZakladChange (Sender: TObject); private procedure Filtruj; public Helios: IHelios; retVal: integer; idKmen: integer; idZakModif: integer; filtrKodStroj: string; end; var formKmen: TformKmen; implementation uses System.StrUtils, helUtils, datMod2; {$R *.dfm} procedure TformKmen.edtNazevChange (Sender: TObject); begin Filtruj; end; procedure TformKmen.edtRegCisChange (Sender: TObject); begin Filtruj; end; procedure TformKmen.edtRegCisKeyPress (Sender: TObject; var Key: Char); begin Filtruj; end; procedure TformKmen.edtStrojChange (Sender: TObject); begin Filtruj; end; procedure TformKmen.edtZakladChange (Sender: TObject); begin Filtruj; end; procedure TformKmen.Filtruj; var filtr: string; begin filtr:= ''; if (edtRegCis.Text<>'') then filtr:= 'UPPER(colRegCis) LIKE ''%' + edtRegCis.Text.ToUpper + '%'''; if (edtNazev.Text<>'') then filtr:= filtr + IfThen(filtr<>'', ' AND ', '') + 'UPPER(colNazev1) LIKE ''%' + edtNazev.Text.ToUpper + '%'''; if (edtZaklad.Text<>'') then filtr:= filtr + IfThen(filtr<>'', ' AND ', '') + 'UPPER(colZaklad) LIKE ''%' + edtZaklad.Text.ToUpper + '%'''; if (edtStroj.Text<>'') then filtr:= filtr + IfThen(filtr<>'', ' AND ', '') + 'UPPER(colZakModif) LIKE ''%' + edtStroj.Text.ToUpper + '%'''; grdKmen.LockDrawing; dm2.vtKmen.Filtered:= false; if (filtr<>'') then begin dm2.vtKmen.Filter:= filtr; dm2.vtKmen.Filtered:= true; end; grdKmen.UnlockDrawing; end; procedure TformKmen.btnClearClick (Sender: TObject); begin edtRegCis.Text:= ''; edtNazev.Text:= ''; edtZaklad.Text:= ''; edtStroj.Text:= ''; Filtruj; end; procedure TformKmen.FormClose (Sender: TObject; var Action: TCloseAction); begin Action:= TCloseAction.caFree; end; procedure TformKmen.FormShow (Sender: TObject); var pomHandle: THandle; filtr: string; begin retVal:= 0; pomHandle:= THandle(Helios.MainApplicationHandle); if (pomHandle<>Application.Handle) then Application.Handle:= pomHandle; pomHandle:= THandle(Helios.MainApplicationIconHandle); if (pomHandle<>Application.Icon.Handle) then Application.Icon.Handle:= pomHandle; with Application.DefaultFont do begin Name:= Helios.Font; Height:= Helios.FontHeight; Charset:= Helios.Charset; Screen.MenuFont.Charset:= Charset; Screen.MenuFont.Name:= Name; Screen.MenuFont.Height:= Height; end; self.Font:= Application.DefaultFont; if not(dm2.vtKmen.Active) then dm2.vtKmen.Open; dm2.vtKmen.EmptyDataSet; dm2.vtKmen.Filtered:= false; grdKmen.LockDrawing; filtr:= 'k.Dilec=1 AND k.MJEvidence=N''KA'''; if (filtrKodStroj<>'') then filtr:= filtr + ' AND k.ID IN (SELECT zmd.IDKmenZbozi FROM ' + tblZakazModifDilce + ' zmd INNER JOIN ' + tblZakazModif + ' zm ON (zm.ID=zmd.IDZakazModif) WHERE zm.Schvaleno=1 AND zm.Kod=N' + filtrKodStroj.QuotedString + ')'; dm2.NactiKmenZbozi (filtr); dm2.vtKmen.First; grdKmen.UnlockDrawing; helUtils.waitEnd; end; procedure TformKmen.grdKmenDblClick (Sender: TObject); var i, zm: integer; sz,rc,naz: string; begin i:= dm2.vtKmen.FieldByName('colID').AsInteger; sz:= dm2.vtKmen.FieldByName('colSZ').AsString; rc:= dm2.vtKmen.FieldByName('colRegCis').AsString; naz:= dm2.vtKmen.FieldByName('colNazev1').AsString; zm:= dm2.vtKmen.FieldByName('colIDZakModif').AsInteger; if (Helios.YesNo('Chcete vybrat ' + sz + ' ' + rc + ' ' + naz, true)) then begin idKmen:= i; idZakModif:= zm; retVal:= 10; Close; end; end; procedure TformKmen.grdKmenDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin TJvDBGrid(Sender).Canvas.Brush.Color:= $00B8C4C8; // RGB C8C4B8 - seda if (Column.FieldName='colNazev1') then TJvDBGrid(Sender).Canvas.Brush.Color:= $00C6FECF; // RGB CFFEC6 - svetle zelena if (gdSelected in State) then TJvDBGrid(Sender).Canvas.Font.Color:= clBlack; TJvDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State); end; end.