ad_enter_decreaseasset_d.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 413 行
PAS
413 行
unit Ad_Enter_DecreaseAsset_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, ExtEdit, Mask, linkedit,
Grids, DBGrids;
Type
TFrm_Ad_Enter_DecreaseAsset_D = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
EDT_AssetName: TEdit;
lbl_DeptName: TLabel;
EDT_FirstAmount: TExtEdit;
Label10: TLabel;
Label15: TLabel;
EDT_DepreciationValue: TExtEdit;
Label22: TLabel;
MEDT_InAccountDate: TMaskEdit;
Label25: TLabel;
MEDT_StartUseDate: TMaskEdit;
Label26: TLabel;
EDT_AdChangeTypeCode: TLinkEdit;
EDT_AdChangeTypeName: TExtEdit;
Label29: TLabel;
MEDT_CreateDate: TMaskEdit;
Label30: TLabel;
MEDT_DecreaseDate: TMaskEdit;
Label31: TLabel;
EDT_CreateEmployeeCode: TLinkEdit;
EDT_CreateEmployeeName: TExtEdit;
Label33: TLabel;
Edt_UomCode: TLinkEdit;
ExtEdit1: TExtEdit;
Label34: TLabel;
MEDT_StArtStopUseDate: TMaskEdit;
Label3: TLabel;
Edt_RemArk: TEdit;
Edt_AssetCode: TLinkEdit;
procedure Edt_AssetCodeExit(Sender: TObject);
procedure EDT_AdChangeTypeCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EDT_CreateEmployeeCodeExit(Sender: TObject);
procedure EDT_AdChangeTypeCodeButtonClick(Sender: TObject);
procedure EDT_AdChangeTypeCodeExit(Sender: TObject);
procedure Edt_AssetCodeButtonClick(Sender: TObject);
procedure Edt_UomCodeChange(Sender: TObject);
procedure MEDT_DecreaseDateExit(Sender: TObject);
procedure Edt_AssetCodeChange(Sender: TObject);
private
procedure SaveHistoryDecreaseAssett(ChgType,DecreaseAssettId:String);
procedure UpDateStArtStopUseDate;
Function getDecreaseAssettId(AssetCode:String):String;
{ Private declarations }
public
procedure InitControls; Override;
procedure SaveData; Override;
{ Public declarations }
end;
var
Frm_Ad_Enter_DecreaseAsset_D: TFrm_Ad_Enter_DecreaseAsset_D;
implementation
uses Sys_Global;
{$R *.DFM}
procedure TFrm_Ad_Enter_DecreaseAsset_D.Edt_AssetCodeExit(Sender: TObject);
begin
inherited;
if ActiveControl.Name='btn_Cancel' then
exit;
if (not BlankInStrCheck(Edt_AssetCode.Text,'固定资产编号')) or
(not BlankCheck(Edt_AssetCode.text,'固定资产编号')) then
begin
TWinControl(Sender).SetFocus;
abort;
end;
if (Add)or((not Add) and
(TEdit(Sender).Text<>AdoQry_Maintain.fieldbyname('AssetCode').AsString)) then
begin
with AdoQry_Tmp do
begin
Close;
SQL.clear;
SQL.Add('Select AssetCode From Ad_DecreaseAssett Where AssetCode='''+TEdit(Sender).Text+'''');
Open;
if fieldbyname('AssetCode').AsString<>'' then
begin
DispInfo(' 固定资产编号已经存在,不允许增加或修改! ',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end;
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.InitControls;
var
NowDate:String;
begin
if Add then
begin
SetFocus_Control:=Edt_AssetCode;
Edt_AssetCode.Enabled:=True;
end
else
SetFocus_Control:=EDT_AdChangeTypeCode;
inherited;
with AdoQry_Maintain do
begin
Edt_AssetCode.Text:=fieldbyname('AssetCode').AsString;
EDT_AssetName.Text:=fieldbyname('AssetName').AsString;
edt_UomCode.Text:=fieldbyname('UomCode').asstring;
Extedit1.Text:=fieldbyname('UomName').asstring;
MEDT_InAccountDate.Text:=fieldbyname('InAccountDate').AsString;
MEDT_StartUseDate.Text:=fieldbyname('StartUseDate').AsString;
MEDT_StArtstopUseDate.Text:=fieldbyname('StArtstopUseDate').AsString;
EDT_AdChangeTypeCode.Text:=fieldbyname('AdChangeTypeCode').AsString;
EDT_AdChangeTypeName.Text:=fieldbyname('AdChangeTypeName').AsString;
EDT_FirstAmount.Text:=fieldbyname('FirstAmount').AsString;
EDT_DepreciationValue.Text:=fieldbyname('DepreciationValue').AsString;
MEDT_CreateDate.Text:=fieldbyname('CreateDate').AsString;
EDT_CreateEmployeeCode.Text:=fieldbyname('CreateEmployeeCode').AsString;
MEDT_DecreaseDate.Text:=fieldbyname('DecreaseDate').AsString;
EDT_CreateEmployeeName.Text:=fieldbyname('EmployeeName').AsString;
Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
Edt_AssetCode.MaxLength:=fieldbyname('AssetCode').size;
end;
if not Add then
begin
Edt_AssetCode.Enabled:=False;
end Else
begin
NowDate:=FormatDateTime('yyyy.mm.dd',Date);
MEDT_DecreaseDate.Text:=NowDate;
MEDT_StArtStopUseDate.Text:=NowDate;
MEDT_CreateDate.Text:=NowDate;
end;
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.SaveData;
var
ChgType:String;
begin
inherited;
with AdoQry_Tmp do
begin
Close;
if(Add)then
begin
SQL.Text:='Insert into Ad_DecreaseAssett(AssetCode,AdChangeTypeCode,DecreaseDate,'+
'CreateDate,CreateEmployeeCode,RemArk)'
+' Values('
+' '''+Edt_AssetCode.Text+''''
+','''+EDT_AdChangeTypeCode.Text+''''
+','''+MEDT_DecreaseDate.Text+''''
+','''+MEDT_CreateDate.Text+''''
+','''+EDT_CreateEmployeeCode.Text+''''
+','''+Edt_RemArk.Text+''''
+')';
ChgType:='增加';
end else
begin
SQL.Text:='Update Ad_DecreaseAssett'
+' Set AdChangeTypeCode='''+EDT_AdChangeTypeCode.Text+''''
+',DecreaseDate='''+MEDT_DecreaseDate.Text+''''
+',CreateDate='''+MEDT_CreateDate.Text+''''
+',CreateEmployeeCode='''+EDT_CreateEmployeeCode.Text+''''
+',RemArk='''+Edt_RemArk.Text+''''
+' Where AssetCode='''+AdoQry_Maintain.fieldbyname('AssetCode').AsString+'''';
ChgType:='修改';
end;
ExecSQL;
end;
SaveHistoryDecreaseAssett(ChgType,getDecreaseAssettId(Edt_AssetCode.Text));
UpDateStArtStopUseDate;
with AdoQry_Maintain do
begin
fieldbyname('AssetCode').AsString:=EDT_AssetCode.Text;
fieldbyname('AssetName').AsString:=EDT_AssetName.Text;
fieldbyname('UomCode').asstring:=edt_UomCode.Text;
fieldbyname('UomName').asstring:=Extedit1.Text;
fieldbyname('InAccountDate').AsString:=MEDT_InAccountDate.Text;
fieldbyname('StartUseDate').AsString:=MEDT_StartUseDate.Text;
fieldbyname('StArtstopUseDate').AsString:=MEDT_StArtstopUseDate.Text;
fieldbyname('AdChangeTypeCode').AsString:=EDT_AdChangeTypeCode.Text;
fieldbyname('AdChangeTypeName').AsString:=EDT_AdChangeTypeName.Text;
fieldbyname('FirstAmount').AsString:=EDT_FirstAmount.Text;
fieldbyname('DepreciationValue').AsString:=EDT_DepreciationValue.Text;
fieldbyname('CreateDate').AsString:=MEDT_CreateDate.Text;
fieldbyname('CreateEmployeeCode').AsString:=EDT_CreateEmployeeCode.Text;
fieldbyname('EmployeeName').AsString:=EDT_CreateEmployeeName.Text;
fieldbyname('DecreaseDate').AsString:=MEDT_DecreaseDate.Text;
fieldbyname('RemArk').AsString:=Edt_RemArk.Text;
Post;
end;
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.SaveHistoryDecreaseAssett(ChgType,DecreaseAssettId: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('
+' '''+DecreaseAssettId+''''
+','''+EDT_AssetCode.Text+''''
+','''+EDT_AdChangeTypeCode.Text+''''
+','''+MEDT_DecreaseDate.Text+''''
+','''+EDT_CreateEmployeeCode.Text+''''
+','''+MEDT_CreateDate.Text+''''
+','''+Edt_RemArk.Text+''''
+','''+UserCode+''''
+',getdate()'
+','''+ChgType+''''
+')';
ExecSQL;
end;
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.EDT_AdChangeTypeCodeKeyDown(
Sender: TObject; var Key: Word; Shift: TShiftState);
begin
inherited;
If key=120 Then
CommOnHint(Sender,AdoQry_Tmp,'AdChangeTypeName','增减方式名称','AdChangeTypeCode',
'增减方式代码',' Ad_ChangeType ');
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.EDT_CreateEmployeeCodeExit(
Sender: TObject);
begin
inherited;
if(ActiveControl.Name='btn_Cancel')then
Abort;
if TCustomEdit(Sender).Text <>'' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select EmployeeCode,EmployeeName from Employee '
+' where EmployeeCode= '''+TCustomEdit(Sender).Text+''' ';
AdoQry_Tmp.Open;
if not AdoQry_Tmp.Eof then
begin
EDT_CreateEmployeeName.Text := AdoQry_Tmp.fieldbyname('EmployeeName').AsString;
end
else
begin
DispInfo('建档人员代码错误,请重新输入',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end
else
EDT_CreateEmployeeName.Text:='';
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.EDT_AdChangeTypeCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'AdChangeTypeName','增减方式名称','AdChangeTypeCode',
'增减方式代码',' Ad_ChangeType ');
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.EDT_AdChangeTypeCodeExit(
Sender: TObject);
begin
inherited;
if TCustomEdit(Sender).Text <>'' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select AdChangeTypeCode,AdChangeTypeName from Ad_ChangeType '
+' where AdChangeTypeCode= '''+TCustomEdit(Sender).Text+''' ';
AdoQry_Tmp.Open;
if not AdoQry_Tmp.Eof then
begin
EDT_AdChangeTypeName.Text := AdoQry_Tmp.fieldbyname('AdChangeTypeName').AsString;
end
else
begin
DispInfo('增减方式代码错误,请重新输入',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end
else
EDT_AdChangeTypeName.Text:='';
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.Edt_AssetCodeButtonClick(
Sender: TObject);
begin
inherited;
CommOnHint(Sender,AdoQry_Tmp,'AssetName','固定资产名称','AssetCode',
'固定资产编号',' Ad_AssetCard ');
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.Edt_UomCodeChange(Sender: TObject);
begin
inherited;
if TCustomEdit(Sender).Text <>'' then
begin
AdoQry_Tmp.Close;
AdoQry_Tmp.SQL.clear;
AdoQry_Tmp.SQL.Text:=' Select UomName from Uom '
+' where UomCode= '''+TCustomEdit(Sender).Text+''' ';
AdoQry_Tmp.Open;
if not AdoQry_Tmp.Eof then ExtEdit1.Text := AdoQry_Tmp.fieldbyname('UomName').AsString;
end;
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.MEDT_DecreaseDateExit(
Sender: TObject);
begin
inherited;
DateCheck(Sender);
With AdoQry_Tmp Do
begin
Close;
Sql.clear;
Sql.Text:='select * from Ad_MonthCheckout where convert(varchAr,MCKDate,102)>'''+MEDT_DecreaseDate.text+''' ';
Open;
if Not Eof then
begin
DispInfo('减少日期不能小于计提月份的日期',3);
Abort;
end;
end;
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.UpDateStArtStopUseDate;
begin
With AdoQry_Tmp Do
begin
Close;
Sql.clear;
Sql.Text:='UpDate Ad_AssetCard Set stArtstopusedate='''+MEDT_StArtStopUseDate.Text+''' where AssetCode='''+Edt_AssetCode.text+''' ';
ExecSql;
end;
end;
procedure TFrm_Ad_Enter_DecreaseAsset_D.Edt_AssetCodeChange(
Sender: TObject);
begin
inherited;
if TCustomEdit(Sender).Text <>'' then
begin
With AdoQry_Tmp Do
begin
Close;
SQL.clear;
SQL.Text:=' select AssetCode,AssetName,UomCode,InAccountDate,StartUseDate,FirstAmount,DepreciationValue from Ad_AssetCard '
+' Where AssetCode= '''+TCustomEdit(Sender).Text+''' ';
Open;
if not Eof then
begin
Edt_AssetCode.Text := fieldbyname('AssetCode').AsString;
EDT_AssetName.Text := fieldbyname('AssetName').AsString;
MEDT_InAccountDate.Text := fieldbyname('InAccountDate').AsString;
MEDT_StartUseDate.Text := fieldbyname('StartUseDate').AsString;
Edt_FirstAmount.Text := fieldbyname('FirstAmount').AsString;
Edt_DepreciationValue.Text := fieldbyname('DepreciationValue').AsString;
Edt_UomCode.Text := fieldbyname('UomCode').AsString;
end
else
begin
DispInfo('固定资产编号错误,请重新输入',1);
TWinControl(Sender).SetFocus;
Abort;
end;
end;
end else
begin
Edt_AssetCode.Text :='';
EDT_AssetName.Text := '';
Edt_UomCode.Text := '';
MEdt_InAccountDate.Text := '';
MEdt_StartUseDate.Text := '';
Edt_FirstAmount.Text := '';
Edt_DepreciationValue.Text := '';
end;
end;
function TFrm_Ad_Enter_DecreaseAsset_D.getDecreaseAssettId(
AssetCode: String): String;
begin
With AdoQry_Tmp Do
begin
Close;
Sql.clear;
Sql.Text:='select DecreaseAssettId from Ad_DecreaseAssett where AssetCode='''+Edt_AssetCode.text+''' ';
Open;
If Not Eof Then Result:=fieldbyname('DecreaseAssettId').AsString;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?