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 + -
显示快捷键?