⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basefactorydate.pas

📁 产品信息系统!关于产品基础信息的系统!功能强大!
💻 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 + -