254 lines
6.6 KiB
ObjectPascal
254 lines
6.6 KiB
ObjectPascal
unit frmSpravaVzorku;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
|
|
ddPlugin_TLB, Data.DB, Vcl.ExtCtrls, Vcl.Grids, Vcl.DBGrids, JvExDBGrids,
|
|
JvDBGrid, Vcl.StdCtrls, Vcl.DBCtrls, JvDBCheckBox;
|
|
|
|
{$I iConsts.inc}
|
|
|
|
type
|
|
TformSpravaVzorku = class(TForm)
|
|
grdSpravaVzorku: TJvDBGrid;
|
|
GridPanel1: TGridPanel;
|
|
GridPanel2: TGridPanel;
|
|
GridPanel3: TGridPanel;
|
|
btnTiskKartonu: TButton;
|
|
btnTiskSeznamVzorku: TButton;
|
|
btnVyraditVzorek: TButton;
|
|
btnUkoncitKarton: TButton;
|
|
GridPanel4: TGridPanel;
|
|
Label1: TLabel;
|
|
edtSZ: TEdit;
|
|
edtRegCis: TEdit;
|
|
edtNazev1: TEdit;
|
|
edtStroj: TEdit;
|
|
Label9: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
dbCb1: TJvDBCheckBox;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure grdSpravaVzorkuDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
|
|
procedure edtSZChange(Sender: TObject);
|
|
procedure edtRegCisChange(Sender: TObject);
|
|
procedure edtNazev1Change(Sender: TObject);
|
|
procedure edtStrojChange(Sender: TObject);
|
|
procedure Label1Click(Sender: TObject);
|
|
procedure grdSpravaVzorkuColExit(Sender: TObject);
|
|
procedure grdSpravaVzorkuMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
procedure grdSpravaVzorkuDblClick(Sender: TObject);
|
|
procedure grdSpravaVzorkuColEnter(Sender: TObject);
|
|
private
|
|
procedure Filtruj;
|
|
public
|
|
Helios: IHelios;
|
|
end;
|
|
|
|
var
|
|
formSpravaVzorku: TformSpravaVzorku;
|
|
grdSpravaVzorkuAktRow, grdSpravaVzorkuAktCol: integer;
|
|
Pt: TPoint;
|
|
Cell: TGridCoord;
|
|
TitleOffset: Byte;
|
|
|
|
|
|
implementation
|
|
uses System.StrUtils, System.DateUtils,
|
|
datMod, helUtils;
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.edtNazev1Change (Sender: TObject);
|
|
begin
|
|
Filtruj;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.edtRegCisChange (Sender: TObject);
|
|
begin
|
|
Filtruj;
|
|
end;
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.edtStrojChange (Sender: TObject);
|
|
begin
|
|
Filtruj;
|
|
end;
|
|
|
|
|
|
procedure TformSpravaVzorku.edtSZChange (Sender: TObject);
|
|
begin
|
|
Filtruj;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.Filtruj;
|
|
var filtr: string;
|
|
begin
|
|
filtr:= '';
|
|
if (edtSZ.Text<>'') then
|
|
filtr:= 'UPPER(colSZ) LIKE ''%' + edtSZ.Text.Trim.ToUpper + '%''';
|
|
|
|
if (edtRegCis.Text<>'') then
|
|
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'UPPER(colRC) LIKE ''%' + edtRegCis.Text.Trim.ToUpper + '%''';
|
|
|
|
if (edtNazev1.Text<>'') then
|
|
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'UPPER(colNazev1) LIKE ''%' + edtNazev1.Text.Trim.ToUpper + '%''';
|
|
|
|
if (edtStroj.Text<>'') then
|
|
filtr:= filtr + IfThen(filtr='', '', ' AND ') + 'UPPER(colStroj) LIKE ''%' + edtStroj.Text.Trim.ToUpper + '%''';
|
|
|
|
|
|
dm.vtSpravaVzorku.Filter:= filtr;
|
|
dm.vtSpravaVzorku.Filtered:= (filtr<>'');
|
|
|
|
grdSpravaVzorku.Invalidate;
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.FormShow (Sender: TObject);
|
|
begin
|
|
dm.NactiVzorky (self);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.grdSpravaVzorkuColEnter(Sender: TObject);
|
|
begin
|
|
if (grdSpravaVzorku.SelectedField.DataType = ftBoolean) then
|
|
grdSpravaVzorku.Options:= grdSpravaVzorku.Options - [dgEditing];
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.grdSpravaVzorkuColExit(Sender: TObject);
|
|
begin
|
|
if (grdSpravaVzorku.SelectedField.FieldName = dbCb1.DataField) then
|
|
dbCb1.Visible:= False
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.grdSpravaVzorkuDblClick (Sender: TObject);
|
|
var id: integer;
|
|
begin
|
|
if (Sender is TJvDBGrid) then
|
|
begin
|
|
if (grdSpravaVzorkuAktCol-1=datMod.GetDBGridIndexByFieldName (grdSpravaVzorku, 'colArchiv', false)) then
|
|
if (Helios.YesNo('Vzorek je v archivu ' + #1 + dm.vtSpravaVzorku.FieldByName('colArchiv').AsString + #1 + '.' + CRLF + 'Chceje jej vyřadit ?' , false)) then
|
|
begin
|
|
dm.vtSpravaVzorku.Edit;
|
|
id:= dm.vtSpravaVzorku.FieldByName('colID').AsInteger;
|
|
try
|
|
Helios.ExecSQL('UPDATE ' + tblVzorky + ' SET Vyrazeno=1 WHERE ID=' + id.ToString);
|
|
dm.vtSpravaVzorku.FieldByName('colVyrazeno').AsBoolean:= true;
|
|
finally
|
|
end;
|
|
dm.vtSpravaVzorku.Post;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.grdSpravaVzorkuDrawColumnCell (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
|
|
const IsChecked : array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
|
|
var DrawState: Integer;
|
|
DrawRect: TRect;
|
|
begin
|
|
|
|
if (gdFocused in State) then
|
|
begin
|
|
if (Column.Field.FieldName = dbCb1.DataField) then
|
|
begin
|
|
dbCb1.Left:= Rect.Left + grdSpravaVzorku.Left + 2;
|
|
dbCb1.Top:= Rect.Top + grdSpravaVzorku.top + 2;
|
|
dbCb1.Width:= Rect.Right - Rect.Left;
|
|
dbCb1.Height:= Rect.Bottom - Rect.Top;
|
|
dbCb1.Visible:= True;
|
|
end
|
|
end
|
|
else
|
|
begin
|
|
if (Column.Field.FieldName = dbCb1.DataField) then
|
|
begin
|
|
DrawRect:=Rect;
|
|
InflateRect (DrawRect,-1,-1);
|
|
DrawState:= ISChecked[Column.Field.AsBoolean];
|
|
grdSpravaVzorku.Canvas.FillRect (Rect);
|
|
DrawFrameControl (grdSpravaVzorku.Canvas.Handle, DrawRect, DFC_BUTTON, DrawState);
|
|
end;
|
|
end;
|
|
|
|
{
|
|
if (gdFocused in State) and (Column.FieldName='colKArchivaci') then
|
|
begin
|
|
if (Column.Field.Value=1) then
|
|
SetBounds (Left + grdSpravaVzorku.Left + 1, Rect.Top + grdSpravaVzorku.Top + 1, Rect.Right - Rect.Left + 1, Rect.Bottom - Rect.Top + 1);
|
|
end;
|
|
}
|
|
|
|
if (not(gdSelected in State)) then
|
|
begin
|
|
if (Odd(grdSpravaVzorku.DataSource.DataSet.RecNo)) then
|
|
TJvDBGrid(Sender).Canvas.Brush.Color:= clWindow
|
|
else
|
|
TJvDBGrid(Sender).Canvas.Brush.Color:= $00E0E0E0;
|
|
end;
|
|
|
|
if (Column.FieldName='colNazev1') or (Column.FieldName='colArchiv') then
|
|
begin
|
|
if (gdSelected in State) then
|
|
TDBGrid(Sender).Canvas.Font.Color:= clBlack;
|
|
TDBGrid(Sender).Canvas.Brush.Color:= $00D0FEC6;
|
|
end;
|
|
|
|
|
|
TDBGrid(Sender).DefaultDrawColumnCell (Rect, DataCol, Column, State);
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.grdSpravaVzorkuMouseUp (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
|
begin
|
|
grdSpravaVzorkuAktRow:= TDBGrid(Sender).MouseCoord(X, Y).Y;
|
|
grdSpravaVzorkuAktCol:= TDBGrid(Sender).MouseCoord(X, Y).X;
|
|
|
|
// TitleOffset := Ord(dgTitles in grdRozpracovane.Options);
|
|
Pt:= grdSpravaVzorku.ScreenToClient (Mouse.CursorPos);
|
|
Cell:= grdSpravaVzorku.MouseCoord (Pt.X, Pt.Y);
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
procedure TformSpravaVzorku.Label1Click (Sender: TObject);
|
|
begin
|
|
edtSZ.Text:= '';
|
|
edtRegCis.Text:= '';
|
|
edtNazev1.Text:= '';
|
|
edtStroj.Text:= '';
|
|
Filtruj;
|
|
end;
|
|
|
|
end.
|