factorydateadd.pas
来自「产品信息系统!关于产品基础信息的系统!功能强大!」· PAS 代码 · 共 191 行
PAS
191 行
unit FactoryDateAdd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Base, StdCtrls, Buttons, ExtCtrls, DBCtrls, Mask, Spin, ComCtrls,
DB, ADODB, wwdblook, dxCntner, dxEditor, dxExEdtr, dxEdLib;
type
TfrmFactoryDateAdd = class(TfrmBase)
GroupBox1: TGroupBox;
rbCopy: TRadioButton;
rbAppend: TRadioButton;
QIsUnique: TADOQuery;
spCalendarEdit: TADOStoredProc;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DateBegin: TDateTimePicker;
DateEnd: TDateTimePicker;
seWorkTime: TSpinEdit;
seMaxTime: TSpinEdit;
CheckSat: TCheckBox;
CheckSun: TCheckBox;
Label4: TLabel;
Panel2: TPanel;
Label5: TLabel;
Label6: TLabel;
dxSpinEdit1: TdxSpinEdit;
rbDelete: TRadioButton;
Panel3: TPanel;
Label7: TLabel;
DelDateBegin: TDateTimePicker;
DelDateEnd: TDateTimePicker;
Label8: TLabel;
QYear: TADOQuery;
dsYear: TDataSource;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
wwDBLookupCombo1: TwwDBLookupCombo;
QYearfYear: TStringField;
procedure SpeedButton2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure rbAppendClick(Sender: TObject);
procedure rbCopyClick(Sender: TObject);
procedure DateBeginChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure rbDeleteClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmFactoryDateAdd : TfrmFactoryDateAdd;
implementation
uses BaseFactoryDate, DataModule;
{$R *.dfm}
procedure TfrmFactoryDateAdd.SpeedButton2Click(Sender: TObject);
begin
inherited;
self.Close;
end;
procedure TfrmFactoryDateAdd.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//inherited;
end;
procedure TfrmFactoryDateAdd.rbAppendClick(Sender: TObject);
begin
inherited;
Panel1.Visible := True;
Panel2.Visible := false;
Panel3.Visible := false;
end;
procedure TfrmFactoryDateAdd.rbCopyClick(Sender: TObject);
begin
inherited;
Panel2.Visible := True;
Panel1.Visible := false;
Panel3.Visible := false;
end;
procedure TfrmFactoryDateAdd.DateBeginChange(Sender: TObject);
begin
inherited;
DateEnd.Date := DateBegin.Date;
end;
procedure TfrmFactoryDateAdd.FormCreate(Sender: TObject);
begin
inherited;
if not QIsUnique.Active then QIsUnique.Open;
if not QYear.Active then QYear.Open;
end;
procedure TfrmFactoryDateAdd.rbDeleteClick(Sender: TObject);
begin
inherited;
Panel3.Visible := True;
Panel2.Visible := false;
Panel1.Visible := false;
end;
procedure TfrmFactoryDateAdd.BitBtn2Click(Sender: TObject);
begin
inherited;
with spCalendarEdit do
begin
if rbAppend.Checked then
begin
if DateEnd.Date < DateBegin.Date then
begin
Messagedlg('不能小于起始时间', mtError, [mbOk], 0);
DateEnd.Date := DateBegin.Date;
abort;
end;
if seWorkTime.value > seMaxTime.value then
raise Exception.create('标准时间不能大于最大工作时间');
with QIsUnique do
begin
Close;
SQL.Clear;
SQL.Add('Select Count(*) from tCalendar where fDay>=' + FormatDatetime('yyyy-mm-dd', DateBegin.Date));
SQL.Add(' and fDay<=' + FormatDatetime('yyyy-mm-dd', DateBegin.Date));
Open;
if Fields[0].asInteger > 0 then
if Messagedlg('此段时间已制定工厂日历,是否清除重作?', mtWarning, [mbOk, mbCancel], 0) <> mrOk then
exit;
end;
parameters.ParamValues['@intType'] := 1;
parameters.ParamValues['@datBeginDate'] := DateBegin.Date;
parameters.ParamValues['@datEndDate'] := DateEnd.Date;
parameters.ParamValues['@isSaturDay'] := CheckSat.Checked;
parameters.ParamValues['@isSunDay'] := CheckSun.Checked;
parameters.ParamValues['@numMaxTime'] := seMaxTime.value;
parameters.ParamValues['@numWorkTime'] := seWorkTime.value;
Execproc;
end
else if rbCopy.Checked then
begin
if wwDBLookupCombo1.text = '' then
raise Exception.create('请指定源年份!');
with QIsUnique do
begin
Close;
SQL.Clear;
SQL.Add('Select Count(*) from tCalendar where fYear=''' + dxSpinEdit1.text + '''');
Open;
if Fields[0].asInteger > 0 then
if Messagedlg('目标年份已制定工厂日历,是否清除重作?', mtWarning, [mbOk, mbCancel], 0) <> mrOk then
exit;
end;
parameters.ParamValues['@intType'] := 2;
parameters.ParamValues['@datBeginDate'] := EncodeDate(StrtoInt(wwDBLookupCombo1.text), 1, 1);
parameters.ParamValues['@datEndDate'] := EncodeDate(StrtoInt(dxSpinEdit1.text), 1, 1);
parameters.ParamValues['@isSaturDay'] := 0;
parameters.ParamValues['@isSunDay'] := 0;
parameters.ParamValues['@numMaxTime'] := 0;
parameters.ParamValues['@numWorkTime'] := 0;
Execproc;
end
else if rbDelete.Checked then
begin
if Messagedlg('你确定要删除这段时间的工厂日历吗?', mtWarning, [mbOk, mbCancel], 0) <> mrOk then
exit;
parameters.ParamValues['@intType'] := 3;
parameters.ParamValues['@datBeginDate'] := DelDateBegin.Date;
parameters.ParamValues['@datEndDate'] := DelDateEnd.Date;
parameters.ParamValues['@isSaturDay'] := 0;
parameters.ParamValues['@isSunDay'] := 0;
parameters.ParamValues['@numMaxTime'] := 0;
parameters.ParamValues['@numWorkTime'] := 0;
Execproc;
end;
end;
ModalResult := mrOk;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?