📄 mrp_enter_calendar.pas
字号:
unit Mrp_Enter_Calendar;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Outer, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
StdCtrls, ExtCtrls, ComCtrls, ToolWin, DBCtrls,Comobj, jpeg;
Type
TFrm_Mrp_Enter_Calendar = Class(TFrm_Base_Outer)
AdoQry_MainSDate: TDateTimeField;
AdoQry_MainWorkDay: TIntegerField;
AdoQry_MainDayOfWeek: TStringField;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBText1: TDBText;
DBText2: TDBText;
Lbl_IsNo: TLabel;
procedure FormDestroy(Sender: TObject);
procedure Act_DeleteExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DataSourceDataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
{ Public declarations }
end;
var
Frm_Mrp_Enter_Calendar: TFrm_Mrp_Enter_Calendar;
implementation
uses Mrp_Enter_Calendar_D, Sys_Global;
{$R *.DFM}
procedure TFrm_Mrp_Enter_Calendar.InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
begin
Application.ProcessMessages;
Inherited;
SelectFromSql:='select * '
+' from Calendar ';
Condition:='((getdate()<=sdate) And (sdate<getdate()+360))';
OrderbyFields:='Sdate';
GetData;
Frm_Sys_Detail:=TFrm_Mrp_Enter_Calendar_D.Create(Application);
end;
procedure TFrm_Mrp_Enter_Calendar.FormDestroy(Sender: TObject);
begin
inherited;
Frm_Mrp_Enter_Calendar:=Nil;
end;
procedure TFrm_Mrp_Enter_Calendar.Act_DeleteExecute(Sender: TObject);
var
SqlText:String;
begin
If DispInfo('真的要删除这条记录吗?',2)='y' Then
begin
Try
Dbconnect.beginTrans;
If AdoQry_Main.fieldbyname('WorkDay').AsInteger=1 Then
begin
SqlText:=' update Calendar '
+' Set DayOrdinal=DayOrdinal-1'
+' Where Year(Sdate)=Year('+''''+FormatDateTime('yyyy.mm.dd',AdoQry_Main.fieldbyname('SDate').AsDateTime)+''''+')'
+' And Sdate>'+''''+FormatDateTime('yyyy.mm.dd',AdoQry_Main.fieldbyname('SDate').AsDateTime)+''''
+' And WorkDay='+''''+'1'+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.Sql.Text:=SqlText;
AdoQry_Tmp.ExecSQL;//更新天序号
SqlText:=' update Calendar '
+' Set WeekDayOrdinal=WeekDayOrdinal-1'
+' Where Year(SDate)=Year('+''''+FormatDateTime('yyyy.mm.dd',AdoQry_Main.fieldbyname('SDate').AsDateTime)+''''+')'
+' And Sdate>'+''''+FormatDateTime('yyyy.mm.dd',AdoQry_Main.fieldbyname('SDate').AsDateTime)+''''
+' And WorkDay='+''''+'1'+''''
+' And DatePArt(Week,SDate-1)=DatePArt(Week,'+''''+FormatDateTime('yyyy.mm.dd',AdoQry_Main.fieldbyname('SDate').AsDateTime-1)+''''+')';
AdoQry_Tmp.Close;
AdoQry_Tmp.Sql.Text:=SqlText;
AdoQry_Tmp.ExecSQL;//更新周天序号
end;
SqlText:=' Delete Calendar '
+' Where SDate='+''''+DateTimeToStr(AdoQry_Main.fieldbyname('SDate').AsDateTime)+'''';
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.Text:=SqlText;
AdoQry_Tmp.ExecSQL;
AdoQry_Main.Delete;//删除记录
DbConnect.CommitTrans;
Except
DbConnect.RollBackTrans;
DispInfo('删除数据过程中出错,请重试!',1);
Abort;
end;
end;
end;
procedure TFrm_Mrp_Enter_Calendar.FormCreate(Sender: TObject);
begin
inherited;
ExtendCaption:=False;
end;
procedure TFrm_Mrp_Enter_Calendar.DataSourceDataChange(Sender: TObject;
Field: TField);
begin
inherited;
Case AdoQry_Main.fieldbyname('WorkDay').AsInteger of
0: Lbl_IsNo.Caption:='否';
1: Lbl_IsNo.Caption:='是';
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -