Files
2025-05-21 21:06:33 +02:00

227 lines
5.3 KiB
ObjectPascal

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.