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