ad_enter_assetcarddepreciationsubject.pas
来自「一个MRPII系统源代码版本」· PAS 代码 · 共 218 行
PAS
218 行
unit Ad_Enter_AssetCardDepreciationSubject;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Base_Entry_Body, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
ExtCtrls, ComCtrls, ToolWin, StdCtrls, Mask, ExtEdit, linkedit,Ad_Enter_AssetCard_D,
jpeg;
Type
TFrm_Ad_Enter_AssetCardDepreciationSubject = Class(TFrm_Base_Entry_Body)
Lab_ShipAddressName: TLabel;
Lab_SaleTermName: TLabel;
Lab_CurrencyName: TLabel;
Lab_SaleDeptName: TLabel;
Lab_CustomerName: TLabel;
Lab_SaleEmployeeName: TLabel;
Label2: TLabel;
Label1: TLabel;
Edt_AssetCode: TEdit;
Label3: TLabel;
EDT_AssetName: TEdit;
Label24: TLabel;
EDT_DepositaryCode: TLinkEdit;
EDT_DepositaryName: TExtEdit;
Label15: TLabel;
MEDT_InAccountDate: TMaskEdit;
Label25: TLabel;
MEDT_StartUseDate: TMaskEdit;
Label26: TLabel;
EDT_AdChangeTypeCode: TLinkEdit;
EDT_AdChangeTypeName: TExtEdit;
Label27: TLabel;
EDT_UseStatusCode: TLinkEdit;
EDT_UseStatusName: TExtEdit;
Label18: TLabel;
EDT_FirstFAmount: TExtEdit;
Label11: TLabel;
CMBX_DepreciationWay: TComboBox;
Label19: TLabel;
EDT_IntendingPeriod: TExtEdit;
AdoQry_BodyAssetCode: TStringField;
AdoQry_BodyFixingName: TStringField;
AdoQry_BodyFixingSpec: TStringField;
AdoQry_BodyUomCode: TStringField;
AdoQry_BodyFixingAmount: TFloatField;
AdoQry_BodyFixingSum: TFloatField;
AdoQry_BodyRemArk: TStringField;
AdoQry_BodyUomName: TStringField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Act_SaveExecute(Sender: TObject);
private
AssetCard_D:TFrm_Ad_Enter_AssetCard_D;
procedure SaveBodyInfo;
{ Private declarations }
public
procedure init(Sender:TObject;AdOConnection:TAdOConnection;HeadText:Array of String;isQuery:Boolean);
{ Public declarations }
end;
var
Frm_Ad_Enter_AssetCardDepreciationSubject: TFrm_Ad_Enter_AssetCardDepreciationSubject;
implementation
uses Sys_Global, Ad_Enter_AssetCardDepreciationSubject_D;
{$R *.DFM}
{ TFrm_Ad_Enter_AssetCardUseDept }
procedure TFrm_Ad_Enter_AssetCardDepreciationSubject.init(Sender:TObject;AdOConnection:TAdOConnection;HeadText: Array of String;isQuery:Boolean);
var
i:Integer;
begin
SetDBConnect(AdOConnection);
AdoQry_Body.Connection:=AdOConnection;
AdoQry_Tmp.Connection:=AdOConnection;
Edt_AssetCode.Text:=HeadText[0];
EDT_AssetName.Text:=HeadText[1];
MEDT_InAccountDate.Text:=HeadText[2];
MEDT_StartUseDate.Text:=HeadText[3];
CMBX_DepreciationWay.ItemIndex:=StrToInt(HeadText[4]);
EDT_FirstFAmount.Text:=HeadText[5];
EDT_IntendingPeriod.Text:=HeadText[6];
EDT_DepositaryCode.Text:=HeadText[7];
EDT_DepositaryName.Text:=HeadText[8];
EDT_AdChangeTypeCode.Text:=HeadText[9];
EDT_AdChangeTypeName.Text:=HeadText[10];
EDT_UseStatusCode.Text:=HeadText[11];
EDT_UseStatusName.Text:=HeadText[12];
With AdoQry_Body Do
begin
Close;
Sql.clear;
Sql.Text:='select top 0 Ad_Pertainfixing.AssetCode '+
',Ad_Pertainfixing.fixingName,Ad_Pertainfixing.fixingspec '+
',Ad_Pertainfixing.fixingAmount,Ad_Pertainfixing.fixingsum, '+
' Ad_Pertainfixing.UomCode,Uom.UomName,Ad_Pertainfixing.RemArk '+
'from Ad_Pertainfixing Left Join Uom '+
'On Ad_Pertainfixing.UomCode=Uom.UomCode '+
'where Ad_Pertainfixing.AssetCode='''+Edt_AssetCode.Text+''' ';
Open;
end;
AssetCard_D:=TFrm_Ad_Enter_AssetCard_D(Sender);
If AssetCard_D.DeptInfo.RecordCountKm>0 Then
begin
For i:=0 to AdoQry_Body.RecordCount-1 do AdoQry_Body.Delete;
with AdoQry_Body do
begin
For i:=0 to AssetCard_D.DeptInfo.RecordCountKm-1 do
begin
AdoQry_Body.Append;
fieldbyname('AssetCode').AsString:=AssetCard_D.DeptInfo.AssetCodeKm[i];
fieldbyname('fixingName').AsString:=AssetCard_D.DeptInfo.fixingName[i];
fieldbyname('fixingspec').AsString:=AssetCard_D.DeptInfo.fixingspec[i];
fieldbyname('UomCode').AsString:=AssetCard_D.DeptInfo.UomCode[i];
fieldbyname('UomName').AsString:=AssetCard_D.DeptInfo.UomName[i];
fieldbyname('fixingAmount').Asfloat:=AssetCard_D.DeptInfo.fixingAmount[i];
fieldbyname('fixingsum').Asfloat:=AssetCard_D.DeptInfo.fixingsum[i];
fieldbyname('RemArk').AsString:=AssetCard_D.DeptInfo.RemArkKm[i];
Post;
end;
end;
end;
Frm_Entry_Detail:=TFrm_Ad_Enter_AssetCardDepreciationSubject_D.Create(Application);
If isQuery Then
begin
TlBtn_InsertLine.Visible:=False;
TlBtn_Modify.Visible:=False;
TlBtn_DeleteLine.Visible:=False;
TlBtn_InsertLine.Enabled:=False;
TlBtn_Modify.Enabled:=False;
TlBtn_DeleteLine.Enabled:=False;
ToolButton2.Enabled:=False;
ToolButton2.Visible:=False;
DBGridEh.OnDblClick:=nil;
end;
end;
procedure TFrm_Ad_Enter_AssetCardDepreciationSubject.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if(Act_Save.Enabled)then
begin
if(DispInfo('数据有改动,需要保存吗?',2)='y')then
begin
SaveBodyInfo;
Self.ModalResult:=mrOk;
end
else
begin
if(AdoQry_Body.State in [dsInsert,dsEdit])then
AdoQry_Body.Cancel;
end;
end
else
begin
Self.ModalResult:=mrOk;
end;
end;
procedure TFrm_Ad_Enter_AssetCardDepreciationSubject.SaveBodyInfo;
var
i:Integer;
Rate:Real;
begin
i:=0;
IF AssetCard_D.DeptInfo.RecordCountKm>0 Then
begin
{
For i:=0 to AssetCard_D.DeptInfo.RecordCount-1 do
begin
AssetCard_D.DeptInfo.AssetCode[i]:='';
AssetCard_D.DeptInfo.DeptCode[i]:='';
AssetCard_D.DeptInfo.DeptName[i]:='';
AssetCard_D.DeptInfo.AssignRate[i]:='0';
AssetCard_D.DeptInfo.RemArk[i]:='';
end;}
AssetCard_D.DeptInfo.RecordCountKm:=0;
// i:=0;
end;
with AdoQry_Body do
begin
First;
while not Eof do
begin
AssetCard_D.DeptInfo.AssetCodeKm[i]:=Edt_AssetCode.Text;
AssetCard_D.DeptInfo.fixingName[i]:=fieldbyname('fixingName').AsString;
AssetCard_D.DeptInfo.fixingspec[i]:=fieldbyname('fixingspec').AsString;
AssetCard_D.DeptInfo.UomCode[i]:=fieldbyname('UomCode').AsString;
AssetCard_D.DeptInfo.UomName[i]:=fieldbyname('UomName').AsString;
AssetCard_D.DeptInfo.fixingAmount[i]:=fieldbyname('fixingAmount').Asfloat;
AssetCard_D.DeptInfo.fixingsum[i]:=fieldbyname('fixingAmount').Asfloat;
AssetCard_D.DeptInfo.RemArkKm[i]:=fieldbyname('RemArk').AsString;
// Rate:=Rate+fieldbyname('AssignCode').AsFloat;
Next;
i:=i+1;
end;
{ If Rate<>100 Then
begin
DispInfo('分配率不等于100%,不能保存',3);
Abort;
end;}
AssetCard_D.DeptInfo.RecordCountKm:=i;
end;
end;
procedure TFrm_Ad_Enter_AssetCardDepreciationSubject.Act_SaveExecute(Sender: TObject);
begin
Act_Save.Enabled:=False;
SaveBodyInfo;
DispInfo('数据保存成功',3);
Self.ModalResult:=mrOk;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?