📄 basefactorydate.pas
字号:
unit BaseFactoryDate;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseInfoBase, Mask, DBCtrls, StdCtrls, wwdbdatetimepicker, DB,
ExtCtrls, Grids, DBGrids, wwDialog, wwidlg, ADODB, ActnList, ComCtrls,
ToolWin, wwdblook, Buttons, DateUtils;
type
TfrmBaseFactoryDate = class(TfrmBaseInfoBase)
DBGrid1: TDBGrid;
Splitter1: TSplitter;
Panel1: TPanel;
Panel2: TPanel;
QBaseInfofDay: TDateTimeField;
QBaseInfofYear: TStringField;
QBaseInfofMonth: TStringField;
QBaseInfofMaxTime: TBCDField;
QBaseInfofWorkTime: TBCDField;
QBaseInfofUnit: TStringField;
QBaseInfofActYear: TStringField;
QBaseInfofActMonth: TStringField;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
wwDBDateTimePicker1: TwwDBDateTimePicker;
wwDBLookupCombo1: TwwDBLookupCombo;
QUnits: TADOQuery;
dsUnits: TDataSource;
acBatchAdd: TAction;
BitBtn1: TBitBtn;
QBaseInfosWeek: TStringField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure acNewExecute(Sender: TObject);
procedure wwDBDateTimePicker1Change(Sender: TObject);
procedure QBaseInfofDayValidate(Sender: TField);
procedure acBatchAddExecute(Sender: TObject);
procedure dsBaseInfoStateChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure QBaseInfoBeforePost(DataSet: TDataSet);
procedure QBaseInfoCalcFields(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmBaseFactoryDate: TfrmBaseFactoryDate;
implementation
uses FactoryDateAdd, Global;
{$R *.dfm}
procedure TfrmBaseFactoryDate.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
frmBaseFactoryDate := nil;
frmFactoryDateAdd := nil;
end;
procedure TfrmBaseFactoryDate.acNewExecute(Sender: TObject);
begin
inherited;
wwDBDateTimePicker1.SetFocus;
end;
procedure TfrmBaseFactoryDate.wwDBDateTimePicker1Change(Sender: TObject);
var
adatetime : tdatetime;
Year, Month, Day : word;
begin
inherited;
adatetime := Now;
DecodeDate(adatetime, Year, Month, Day);
DBEdit1.text := InttoStr(Year);
DBEdit2.text := InttoStr(Month);
DBEdit3.text := InttoStr(Year);
DBEdit4.text := InttoStr(Month);
end;
procedure TfrmBaseFactoryDate.QBaseInfofDayValidate(Sender: TField);
var
sYear, sMonth : string;
begin
inherited;
if not IsUnique('Code', Sender.asString) then
begin
showmessage('工厂日历重复,请重新输入');
abort;
end;
sYear := FormatDatetime('yyyy', Sender.asDatetime);
sMonth := FormatDatetime('mm', Sender.asDatetime);
with QBaseInfo do
begin
FieldbyName('fyear').asString := sYear;
FieldbyName('fMonth').asString := sMonth;
FieldbyName('fActyear').asString := sYear;
FieldbyName('fActMonth').asString := sMonth;
FieldbyName('fMaxTime').AsFloat := 24;
FieldbyName('fWorkTime').AsFloat := 8;
end;
end;
procedure TfrmBaseFactoryDate.acBatchAddExecute(Sender: TObject);
begin
inherited;
if frmFactoryDateAdd.ShowModal = mrOk then
if QBaseInfo.Active then
QBaseInfo.Requery
else
QBaseInfo.Open;
end;
procedure TfrmBaseFactoryDate.dsBaseInfoStateChange(Sender: TObject);
begin
inherited;
acBatchAdd.Enabled := bCanNew or bCanModify or bCanDelete;
end;
procedure TfrmBaseFactoryDate.FormCreate(Sender: TObject);
begin
inherited;
if not QUnits.Active then QUnits.Open;
if not Assigned(frmFactoryDateAdd) then
frmFactoryDateAdd := TfrmFactoryDateAdd.create(self);
end;
procedure TfrmBaseFactoryDate.QBaseInfoBeforePost(DataSet: TDataSet);
begin
inherited;
if QBaseInfo.FieldbyName('fWorkTime').AsFloat > QBaseInfo.FieldbyName('fMaxTime').AsFloat then
raise Exception.create('标准工作时间不能大于最大工作时间');
end;
procedure TfrmBaseFactoryDate.QBaseInfoCalcFields(DataSet: TDataSet);
begin
inherited;
with QBaseInfo do
FieldbyName('sWeek').asString := sWeek[DayofWeek(FieldbyName('fDay').asDatetime)];
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -