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

📄 mrp_enter_calendar.pas

📁 一个MRPII系统源代码版本
💻 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 + -