ad_enter_decreaseasset.pas

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

PAS
157
字号
unit Ad_Enter_DecreaseAsset;

Interface

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

Type
  TFrm_Ad_Enter_DecreaseAsset = Class(TFrm_Base_Outer)
    AdoQry_MainAssetCode: TStringField;
    AdoQry_MainAssetName: TStringField;
    AdoQry_MainInAccountDate: TDateTimeField;
    AdoQry_MainAdChangeTypeCode: TStringField;
    AdoQry_MainFirstAmount: TFloatField;
    AdoQry_MainDepreciationValue: TFloatField;
    AdoQry_MainCreateDate: TDateTimeField;
    AdoQry_MainCreateEmployeeCode: TStringField;
    AdoQry_MainAdChangeTypeName: TStringField;
    AdoQry_MainEmployeeName: TStringField;
    Label3: TLabel;
    DBText2: TDBText;
    AdoQry_MainUomCode: TStringField;
    AdoQry_MainstArtstopusedate: TDateTimeField;
    AdoQry_MainUomName: TStringField;
    AdoQry_MainStartUseDate: TDateTimeField;
    AdoQry_MainDecreaseAssettId: TAutoIncField;
    AdoQry_MainDecreaseDate: TDateTimeField;
    AdoQry_MainRemArk: TStringField;
    procedure Act_DeleteExecute(Sender: TObject);
  private
    function isQuery: Boolean;
    procedure SaveHistoryDecreaseAssett(ChgType:String);
    procedure UpDateStArtStopUseDate;
    { Private declarations }
  public
    procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
    function  SetDeleteSql:String;Override;
    { Public declarations }
  end;

var
  Frm_Ad_Enter_DecreaseAsset: TFrm_Ad_Enter_DecreaseAsset;

implementation

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

procedure TFrm_Ad_Enter_DecreaseAsset.InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);
begin
  Application.ProcessMessages;
  ExtendCaption:=False;
  inherited;
  If isQuery Then
  begin
    DispInfo('固定资产模块还没起动,不能操作此功能',3);
    Self.Close;
    Abort;
  end;
  SelectFromSQL:='select '+
          'Ad_DecreaseAssett.AssetCode            , '+
          'Ad_AssetCard.AssetName            , '+
          'Ad_AssetCard.UomCode,               '+
          'Uom.UomName ,   '+
          'Ad_AssetCard.InAccountDate        , '+
          'Ad_AssetCard.StartUseDate         , '+
          'Ad_AssetCard.stArtstopusedate,'+
          'Ad_DecreaseAssett.AdChangeTypeCode     , '+
          'Ad_AssetCard.FirstAmount          ,'+
          'Ad_AssetCard.DepreciationValue    ,'+
          'Ad_DecreaseAssett.CreateDate           ,'+
          'Ad_DecreaseAssett.CreateEmployeeCode   ,'+
          'Ad_ChangeType.AdChangeTypeName,'+
          'Employee.EmployeeName, '+
          'Ad_DecreaseAssett.DecreaseAssettId,'+
          'Ad_DecreaseAssett.DecreaseDate,'+
          'Ad_DecreaseAssett.RemArk '+
          'from Ad_DecreaseAssett '+
          'left join Ad_AssetCard on Ad_DecreaseAssett.AssetCode=Ad_AssetCard.AssetCode '+
          'left join Ad_ChangeType  on Ad_DecreaseAssett.AdChangeTypeCode=Ad_ChangeType.AdChangeTypeCode '+
          'Left Join Employee On  Ad_DecreaseAssett.CreateEmployeeCode=Employee.EmployeeCode '+
          'left join Uom on Ad_AssetCard.UomCode=Uom.UomCode ';
  OrderByFields:='DecreaseDate,AssetCode';
  AmountFields:='FirstAmount,';
  FreeFields:='DepreciationValue,';
  GetData;
  Frm_Sys_Detail:=TFrm_Ad_Enter_DecreaseAsset_D.Create(Application);
end;

function TFrm_Ad_Enter_DecreaseAsset.SetDeleteSql:String;
begin
  SaveHistoryDecreaseAssett('删除');
  UpDateStArtStopUseDate;
  Result:='Delete From Ad_DecreaseAssett'
    +' Where AssetCode='''+AdoQry_Main.fieldbyname('AssetCode').AsString+'''';
end;
procedure TFrm_Ad_Enter_DecreaseAsset.SaveHistoryDecreaseAssett(ChgType:String);
begin
  with AdoQry_Tmp do
  begin
    Close;
    Sql.clear;
    SQL.Text:='Insert into Ad_DecreaseAssettHistory(DecreaseAssettId,AssetCode,AdChangeTypeCode,DecreaseDate,'+
                                        'CreateEmployeeCode,CreateDate,RemArk,'+
                                        'ChgEmployeeCode,ChgTime,ChgType)'
      +' Values('
      +' '''+AdoQry_Main.fieldbyname('DecreaseAssettId').AsString+''''
      +','''+AdoQry_Main.fieldbyname('AssetCode').AsString+''''
      +','''+AdoQry_Main.fieldbyname('AdChangeTypeCode').AsString+''''
      +','''+AdoQry_Main.fieldbyname('DecreaseDate').asstring+''''
      +','''+AdoQry_Main.fieldbyname('CreateEmployeeCode').AsString+''''
      +','''+AdoQry_Main.fieldbyname('CreateDate').AsString+''''
      +','''+AdoQry_Main.fieldbyname('RemArk').AsString+''''
      +','''+UserCode+''''
      +',getdate()'
      +','''+ChgType+''''
      +')';
    ExecSQL;
  end;
end;
procedure TFrm_Ad_Enter_DecreaseAsset.UpDateStArtStopUseDate;
begin
  With AdoQry_Tmp Do
  begin
    Close;
    Sql.clear;
    Sql.Text:='UpDate Ad_AssetCard Set stArtstopusedate=null where AssetCode='''+AdoQry_Main.fieldbyname('AssetCode').AsString+''' ';
    ExecSql;
  end;
end;

procedure TFrm_Ad_Enter_DecreaseAsset.Act_DeleteExecute(Sender: TObject);
begin
  If Copy(AdoQry_Main.fieldbyname('DecreaseDate').asstring,6,2)<>FormatDateTime('mm',Now()) Then
  begin
    DispInfo('减少月份不等于当前月份,不能删除',3);
    Abort;
  end;
  inherited;

end;
function TFrm_Ad_Enter_DecreaseAsset.isQuery: Boolean;
begin
  with AdoQry_Tmp do
  begin
    Close;
    Sql.clear;
    SQL.Add('select ParamValueN from Ad_Param Where ParamCode=''StartUseAd''');
    Open;
    If Not Eof Then  Result:=fieldbyname('ParamValueN').AsInteger=0 Else Result:=True;
  end;
end;

end.

⌨️ 快捷键说明

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