📄 ad_enter_assetcard_d.pas
字号:
unit Ad_Enter_AssetCard_D;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Detail, StdCtrls, Db, AdODB, ExtCtrls, ExtEdit, Mask, linkedit;
Type
TDeptInfo = Class
public RecordCount:Integer;
public AssetCode:Array[0..100] of String;
public DeptCode:Array[0..100] of String;
public DeptName:Array[0..100] of String;
public kmCode:Array[0..100] of string;
public kmName:Array[0..100] of string;
public AssignRate:Array[0..100] of String;
public RemArk:Array[0..100] of String;
public RecordCountKm:Integer;
public AssetCodeKm:Array[0..100] of String;
public fixingName:Array[0..100] of String;
public fixingspec:Array[0..100] of String;
public UomCode:Array[0..100] of String;
public UomName:Array[0..100] of String;
public fixingAmount:Array[0..100] of double;
public fixingsum:Array [0..100] of double;
public RemArkKm:Array[0..100] of String;
end;
Type
TFrm_Ad_Enter_AssetCard_D = Class(TFrm_Base_Detail)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edt_AssetCode: TEdit;
EDT_AssetName: TEdit;
lbl_DeptName: TLabel;
Label5: TLabel;
Label6: TLabel;
EDT_DraffRate: TExtEdit;
Label7: TLabel;
EDT_AssetTypeName: TExtEdit;
Label9: TLabel;
EDT_FirstAmount: TExtEdit;
Label10: TLabel;
Label11: TLabel;
EDT_PeriodRate: TExtEdit;
Label12: TLabel;
Label13: TLabel;
EDT_UsedPeriod: TExtEdit;
Label14: TLabel;
Label15: TLabel;
EDT_ExchangeRate: TExtEdit;
EDT_FirstFAmount: TExtEdit;
Label17: TLabel;
EDT_IntendingPeriod: TExtEdit;
Label18: TLabel;
EDT_DraffValue: TExtEdit;
Label19: TLabel;
EDT_PeriodValue: TExtEdit;
Label20: TLabel;
EDT_DepreciationValue: TExtEdit;
Label21: TLabel;
EDT_Intending: TExtEdit;
Label22: TLabel;
EDT_TaskUom: TExtEdit;
Label23: TLabel;
EDT_NetValue: TExtEdit;
EDT_AssetTypeCode: TLinkEdit;
Label24: TLabel;
EDT_DepositaryCode: TLinkEdit;
EDT_DepositaryName: TExtEdit;
MEDT_InAccountDate: TMaskEdit;
Label25: TLabel;
MEDT_StartUseDate: TMaskEdit;
Label26: TLabel;
EDT_AdChangeTypeCode: TLinkEdit;
EDT_AdChangeTypeName: TExtEdit;
Label27: TLabel;
EDT_UseStatusCode: TLinkEdit;
EDT_UseStatusName: TExtEdit;
Label8: TLabel;
EDT_CurrencyCode: TLinkEdit;
EDT_CurrencyName: TExtEdit;
Label16: TLabel;
EDT_FinishTask: TExtEdit;
Label28: TLabel;
EDT_PcDepreciation: TExtEdit;
CMBX_DepreciationWay: TComboBox;
Label29: TLabel;
MEDT_CreateDate: TMaskEdit;
Label30: TLabel;
MEDT_EditDate: TMaskEdit;
Label31: TLabel;
EDT_CreateEmployeeCode: TLinkEdit;
EDT_CreateEmployeeName: TExtEdit;
Label32: TLabel;
EDT_EdItEmployeeCode: TLinkEdit;
EDT_EdItEmployeeName: TExtEdit;
EDT_DepreciationSubjectCode: TLinkEdit;
EDT_DepreciationSubjectName: TExtEdit;
EDT_AssetSujectCode: TLinkEdit;
EDT_AssetSujectName: TExtEdit;
Button1: TButton;
Button2: TButton;
Label33: TLabel;
Edt_UomCode: TLinkEdit;
ExtEdit1: TExtEdit;
Label34: TLabel;
MEDT_StArtStopUseDate: TMaskEdit;
Label35: TLabel;
Edt_StArtDepreciationMonth: TMaskEdit;
procedure Edt_AssetCodeExit(Sender: TObject);
procedure EDT_AssetTypeCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EDT_DepositaryCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EDT_AdChangeTypeCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EDT_UseStatusCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EDT_CurrencyCodeExit(Sender: TObject);
procedure EDT_CreateEmployeeCodeExit(Sender: TObject);
procedure EDT_EdItEmployeeCodeExit(Sender: TObject);
procedure EDT_AssetTypeCodeButtonClick(Sender: TObject);
procedure EDT_DepositaryCodeButtonClick(Sender: TObject);
procedure EDT_AdChangeTypeCodeButtonClick(Sender: TObject);
procedure EDT_UseStatusCodeButtonClick(Sender: TObject);
procedure EDT_AssetTypeCodeExit(Sender: TObject);
procedure EDT_DepositaryCodeExit(Sender: TObject);
procedure EDT_AdChangeTypeCodeExit(Sender: TObject);
procedure EDT_UseStatusCodeExit(Sender: TObject);
procedure EDT_AssetSujectCodeExit(Sender: TObject);
procedure EDT_AssetSujectCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EDT_AssetSujectCodeButtonClick(Sender: TObject);
procedure EDT_DepreciationSubjectCodeExit(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure btn_okClick(Sender: TObject);
procedure Edt_UomCodeChange(Sender: TObject);
procedure MEDT_StArtStopUseDateExit(Sender: TObject);
procedure Edt_UomCodeButtonClick(Sender: TObject);
procedure Edt_UomCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edt_UomCodeExit(Sender: TObject);
procedure CMBX_DepreciationWayChange(Sender: TObject);
procedure EDT_FirstAmountExit(Sender: TObject);
procedure EDT_DepreciationValueExit(Sender: TObject);
procedure EDT_DraffRateExit(Sender: TObject);
procedure EDT_AssetSujectCodeChange(Sender: TObject);
procedure EDT_DepreciationSubjectCodeChange(Sender: TObject);
procedure EDT_CreateEmployeeCodeChange(Sender: TObject);
procedure EDT_EdItEmployeeCodeChange(Sender: TObject);
procedure EDT_FirstFAmountChange(Sender: TObject);
procedure EDT_UsedPeriodExit(Sender: TObject);
procedure EDT_IntendingPeriodExit(Sender: TObject);
private
HeadText:Array[0..12] of String;
procedure InitDeptInfo;
procedure SaveDeptInfo;
procedure SaveKmInfo;
procedure SaveHistoryAseetCArd(ChgType:String);
{ Private declarations }
public
DeptInfo:TDeptInfo;
procedure InitControls; Override;
procedure SaveData; Override;
{ Public declarations }
end;
var
Frm_Ad_Enter_AssetCard_D: TFrm_Ad_Enter_AssetCard_D;
implementation
uses Sys_Global, Ad_Enter_AssetCardUseDept,
Ad_Enter_AssetCardDepreciationSubject;
{$R *.DFM}
procedure TFrm_Ad_Enter_AssetCard_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_AssetCard 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_AssetCard_D.InitControls;
var
NowDate:String;
begin
if Add then
begin
SetFocus_Control:=Edt_AssetCode;
Edt_AssetCode.Enabled:=True;
end
else
SetFocus_Control:=EDT_AssetName;
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;
EDT_AssetSujectCode.Text:=fieldbyname('AssetSujectCode').AsString;
EDT_AssetSujectName.Text:=fieldbyname('KmName1').AsString;
EDT_DepreciationSubjectCode.Text:=fieldbyname('DepreciationSubjectCode').AsString;
EDT_DepreciationSubjectName.Text:=fieldbyname('KmName').AsString;
EDT_AssetTypeCode.Text:=fieldbyname('AssetTypeCode').AsString;
EDT_AssetTypeName.Text:=fieldbyname('AssetTypeName').AsString;
EDT_DepositaryCode.Text:=fieldbyname('DepositaryCode').AsString;
EDT_DepositaryName.Text:=fieldbyname('DepositaryName').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_UseStatusCode.Text:=fieldbyname('UseStatusCode').AsString;
EDT_UseStatusName.Text:=fieldbyname('UseStatusName').AsString;
EDT_CurrencyCode.Text:=fieldbyname('CurrencyCode').AsString;
EDT_CurrencyName.Text:=fieldbyname('CurrencyName').AsString;
EDT_ExchangeRate.Text:=fieldbyname('ExchangeRate').AsString;
EDT_FirstAmount.Text:=fieldbyname('FirstAmount').AsString;
EDT_FirstFAmount.Text:=fieldbyname('FirstFAmount').AsString;
CMBX_DepreciationWay.ItemIndex:=fieldbyname('DepreciationWay').asinteger-1;
EDT_IntendingPeriod.Text:=fieldbyname('IntendingPeriod').AsString;
EDT_DraffRate.Text:=fieldbyname('DraffRate').AsString;
EDT_DraffValue.Text:=fieldbyname('DraffValue').AsString;
EDT_PeriodRate.Text:=fieldbyname('PeriodRate').AsString;
EDT_PeriodValue.Text:=fieldbyname('PeriodValue').AsString;
EDT_UsedPeriod.Text:=fieldbyname('UsedPeriod').AsString;
EDT_DepreciationValue.Text:=fieldbyname('DepreciationValue').AsString;
EDT_NetValue.Text:=fieldbyname('NetValue').AsString;
EDT_Intending.Text:=fieldbyname('Intending').AsString;
EDT_FinishTask.Text:=fieldbyname('FinishTask').AsString;
EDT_TaskUom.Text:=fieldbyname('TaskUom').AsString;
EDT_PcDepreciation.Text:=fieldbyname('PCDepreciation').AsString;
MEDT_CreateDate.Text:=fieldbyname('CreateDate').AsString;
MEDT_EditDate.Text:=fieldbyname('EditDate').AsString;
EDT_CreateEmployeeCode.Text:=fieldbyname('CreateEmployeeCode').AsString;
EDT_CreateEmployeeName.Text:=fieldbyname('EmployeeName1').AsString;
EDT_EdItEmployeeCode.Text:=fieldbyname('EdItEmployeeCode').AsString;
EDT_EdItEmployeeName.Text:=fieldbyname('EmployeeName').AsString;
Edt_StArtDepreciationMonth.Text:=fieldbyname('StArDepreciationMonth').AsString;
Edt_AssetCode.MaxLength:=fieldbyname('AssetCode').size;
end;
if not Add then
begin
Edt_AssetCode.Enabled:=False;
InitDeptInfo;
MEDT_EditDate.Text:=FormatDateTime('yyyy.mm.dd',Date);
EDT_EdItEmployeeCode.Text:=UserCode;
end Else
begin
DeptInfo.RecordCount:=0;
DeptInfo.RecordCountKm:=0;
EDT_CurrencyCode.Text:='';
EDT_CurrencyName.Text:='';
EDT_ExchangeRate.Text:='0';
CMBX_DepreciationWay.ItemIndex:=6;
EDT_FirstAmount.Text:='0';
EDT_IntendingPeriod.Text:='0';
EDT_Intending.Text:='0';
EDT_FirstFAmount.Text:='0';
EDT_UsedPeriod.Text:='0';
EDT_FinishTask.Text:='0';
EDT_DraffRate.Text:='0';
EDT_PeriodRate.Text:='0';
EDT_TaskUom.Text:='0';
EDT_DraffValue.Text:='0';
EDT_PeriodValue.Text:='0';
EDT_PcDepreciation.Text:='0';
EDT_DepreciationValue.Text:='0';
EDT_NetValue.Text:='0';
EDT_AssetSujectCode.Text:='1501';
EDT_DepreciationSubjectCode.Text:='1502';
NowDate:=FormatDateTime('yyyy.mm.dd',Date);
MEDT_InAccountDate.Text:=NowDate;
MEDT_StartUseDate.Text:=NowDate;
MEDT_CreateDate.Text:=NowDate;
MEDT_EditDate.Text:=NowDate;
EDT_CreateEmployeeCode.Text:=UserCode;
EDT_EdItEmployeeCode.Text:=UserCode;
Edt_StArtDepreciationMonth.Text:='';
Edt_StArtDepreciationMonth.Text := Copy(MEDT_StartUseDate.Text,1,7);
end;
If Not (Status='ReadOnly') Then
begin
MEDT_StartUseDate.Enabled:=True;
EDT_FirstAmount.Enabled:=True;
EDT_FirstFAmount.Enabled:=True;
cmbx_Depreciationway.OnChange(cmbx_Depreciationway);
end;
end;
procedure TFrm_Ad_Enter_AssetCard_D.SaveData;
var
ChgType:String;
begin
inherited;
with AdoQry_Tmp do
begin
Close;
if(Add)then
begin
SQL.Text:='Insert into Ad_AssetCard(AssetCode,AssetName,UomCode,'+
'AssetSujectCode,DepreciationSubjectCode,'+
'AssetTypeCode,DepositaryCode,InAccountDate,StartUseDate,'+
'AdChangeTypeCode,UseStatusCode,CurrencyCode,ExchangeRate,'+
'FirstAmount,FirstFAmount,DepreciationWay,IntendingPeriod,'+
'DraffRate,DraffValue,PeriodRate,PeriodValue,UsedPeriod,'+
'DepreciationValue,NetValue,Intending,FinishTask,'+
'TaskUom,PCDepreciation,CreateDate,CreateEmployeeCode,'+
'EditDate,EdItEmployeeCode,StArDepreciationMonth)'
+' Values('
+' '''+EDT_AssetCode.Text+''''
+','''+EDT_AssetName.Text+''''
+','''+EDT_UomCode.Text+''''
+','''+EDT_AssetSujectCode.Text+''''
+','''+EDT_DepreciationSubjectCode.Text+''''
+','''+EDT_AssetTypeCode.Text+''''+','
+iifstring(Trim(EDT_DepositaryCode.Text)='','null',quotedstr(EDT_DepositaryCode.Text))
+','''+MEDT_InAccountDate.Text+''''
+','''+MEDT_StartUseDate.Text+''''
// +','''+MEDT_StArtstopUseDate.Text+''''
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -