ad_enter_workload.pas

来自「一个MRPII系统源代码版本」· PAS 代码 · 共 135 行

PAS
135
字号
unit Ad_Enter_WorkLoad;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Outer, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
  StdCtrls, ExtCtrls, ComCtrls, ToolWin, Menus, jpeg;

Type
  TFrm_Ad_Enter_WorkLoad = Class(TFrm_Base_Outer)
    AdoQry_MainAssetCode: TStringField;
    AdoQry_MainAssetName: TStringField;
    AdoQry_MainMonth: TStringField;
    AdoQry_MainIntending: TFloatField;
    AdoQry_MainPeriodRate: TFloatField;
    AdoQry_MainWorkLoad: TFloatField;
    AdoQry_MainDepreciation: TFloatField;
    AdoQry_MainRemArk: TStringField;
    procedure Act_ModifyExecute(Sender: TObject);
    procedure DBGridEhDblClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    function isEdit: Boolean;
    procedure SaveHistoryWorkLoad(ChgType:String);
    { Private declarations }
  public
    procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
    function  SetDeleteSql:String;Override;
    { Public declarations }
  end;

var
  Frm_Ad_Enter_WorkLoad: TFrm_Ad_Enter_WorkLoad;

implementation

uses Ad_Enter_WorkLoad_D,Sys_Global;
{$R *.DFM}

procedure TFrm_Ad_Enter_WorkLoad. InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
begin
  Application.ProcessMessages;
  inherited;
  SelectFromSQL:='select Ad_WorkLoad.AssetCode,Ad_AssetCard.AssetName,Ad_WorkLoad.YearMonth '+
                ',Ad_AssetCard.Intending,Ad_AssetCard.PCDepreciation '+
                ',Ad_WorkLoad.WorkLoad,Ad_WorkLoad.Depreciation,Ad_WorkLoad.RemArk '+
                'from Ad_WorkLoad Left Join Ad_AssetCard On Ad_WorkLoad.AssetCode=Ad_AssetCard.AssetCode ';
  Condition:='Ad_AssetCard.DepreciationWay=2 '+
             'And  Ad_WorkLoad.YearMonth=SubString(Convert(varchAr(7),GetDate(),102),1,7) ';
  OrderByFields:='AssetCode';
  AmountFields:='Depreciation,';
  FreeFields:='Intending,WorkLoad,PCDepreciation,';
  GetData;
  Frm_Sys_Detail:=TFrm_Ad_Enter_WorkLoad_D.Create(Application);
  ExecuteSql(AdoQry_tmp,'select * from Ad_Param where ParamCode=''StartUseAd'' and ParamValueN=1',0);
  if AdoQry_tmp.IsEmpty then
  begin
    TlBtn_New.Visible:=False;
    TlBtn_Delete.Visible:=False;
    TlBtn_Modify.Visible:=False;
  end;
end;

function TFrm_Ad_Enter_WorkLoad.SetDeleteSql:String;
begin
  SaveHistoryWorkLoad('删除');
  Result:='Delete From Ad_WorkLoad'
    +' Where AssetCode='''+AdoQry_Main.fieldbyname('AssetCode').AsString+''''
    +' And YearMonth='''+AdoQry_Main.fieldbyname('YearMonth').AsString+'''';
end;
procedure TFrm_Ad_Enter_WorkLoad.SaveHistoryWorkLoad(ChgType:String);
begin
  with AdoQry_Tmp do
  begin
    Close;
    Sql.clear;
    SQL.Text:='Insert into Ad_WordkLoadHistory(AssetCode,YearMonth,WorkLoad,Depreciation,RemArk,ChgEmployeeCode,ChgTime,ChgType)'
      +' Values('
      +' '''+AdoQry_Main.fieldbyname('AssetCode').AsString+''''
      +','''+AdoQry_Main.fieldbyname('YearMonth').AsString+''''
      +','''+AdoQry_Main.fieldbyname('WorkLoad').AsString+''''
      +','''+AdoQry_Main.fieldbyname('Depreciation').AsString+''''
      +','''+AdoQry_Main.fieldbyname('RemArk').AsString+''''
      +','''+UserCode+''''
      +',getdate()'
      +','''+ChgType+''''
      +')';
    ExecSQL;
  end;
end;
function TFrm_Ad_Enter_WorkLoad.isEdit: Boolean;
begin
  with AdoQry_Tmp do
  begin
    Close;
    Sql.clear;
    SQL.Text:='Exec Ad_SelectDepreciationMonth';
    Open;
    If Not Eof Then
    begin
      If fieldbyname('DepreciationMonth').AsString>AdoQry_Main.fieldbyname('YearMonth').AsString Then Result:=False Else Result:=True;
    end Else Result:=True;
  end;
end;

procedure TFrm_Ad_Enter_WorkLoad.Act_ModifyExecute(Sender: TObject);
begin
  If Not isEdit Then
  begin
    DispInfo('月份小于已计折旧月份,不能修改',3);
    Abort;
  end;
  inherited;

end;

procedure TFrm_Ad_Enter_WorkLoad.DBGridEhDblClick(Sender: TObject);
begin
  If Not isEdit Then
  begin
    DispInfo('月份小于已计折旧月份,不能修改',3);
    Abort;
  end;
  inherited;
end;

procedure TFrm_Ad_Enter_WorkLoad.FormDestroy(Sender: TObject);
begin
  inherited;
  Frm_Ad_Enter_WorkLoad:=nil;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?