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