ad_enter_assetcarddepreciationsubject_d.pas

来自「一个MRPII系统源代码版本」· PAS 代码 · 共 222 行

PAS
222
字号
unit Ad_Enter_AssetCardDepreciationSubject_D;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Entry_Detail, Db, AdODB, ExtCtrls, StdCtrls, Mask, ExtEdit, linkedit;

Type
  TFrm_Ad_Enter_AssetCardDepreciationSubject_D = Class(TFrm_Base_Entry_Detail)
    Label2: TLabel;
    Label11: TLabel;
    Edt_RemArk: TEdit;
    Label14: TLabel;
    Label17: TLabel;
    MEdt_LastOperationTime: TMaskEdit;
    Edt_PrepareShipQty: TEdit;
    Label15: TLabel;
    Edt_Spec: TEdit;
    Label3: TLabel;
    edt_Name: TEdit;
    edt_UomCode: TLinkEdit;
    edt_UomName: TEdit;
    Label1: TLabel;
    Label4: TLabel;
    edt_Sum: TEdit;
    edt_Amount: TEdit;
    procedure Edt_DeptCodeExit(Sender: TObject);
    procedure Edt_DeptCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edt_DeptCodeButtonClick(Sender: TObject);
    procedure edt_UomCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edt_UomCodeButtonClick(Sender: TObject);
    procedure edt_UomCodeExit(Sender: TObject);
  private
    procedure getAssignRate(tmp:TAdoQuery);
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveBodyData; Override;
    procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
    { Public declarations }
  end;

var
  Frm_Ad_Enter_AssetCardDepreciationSubject_D: TFrm_Ad_Enter_AssetCardDepreciationSubject_D;

implementation

uses Sys_Global;

{$R *.DFM}

{ TFrm_Sal_Enter_SaleOrder_D }

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.InitControls;
begin
  If (status='Add') Then
    SetFocus_Control:=Edt_Name
  Else
    SetFocus_Control:=Edt_Name;
  Inherited;
  with AdoQry_Body do
  begin
    If (Status='Add') then
    begin
      Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
    end
    else
    begin
      Edt_Name.Text:=fieldbyname('fixingName').AsString;
      Edt_Spec.Text:=fieldbyname('fixingspec').AsString;
      edt_UomCode.Text:=fieldbyname('UomCode').asstring;
      edt_UomName.Text:=fieldbyname('UomName').asstring;
      edt_Amount.Text:=fieldbyname('fixingAmount').asstring;
      edt_Sum.Text:=fieldbyname('fixingsum').asstring;
      Edt_RemArk.Text:=fieldbyname('RemArk').AsString;
    end;
  end;
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.SaveBodyData;
begin
  If Status='Add' Then
    AdoQry_Body.Append
  Else
    AdoQry_Body.Edit;
  with AdoQry_Body do
  begin
    fieldbyname('AssetCode').AsString:=fieldbyname('AssetCode').AsString;
    fieldbyname('fixingName').AsString:=Edt_Name.Text;
    fieldbyname('fixingspec').AsString:=Edt_Spec.Text;
    fieldbyname('UomCode').AsString:=edt_UomCode.Text;
    fieldbyname('UomName').AsString:=edt_UomName.Text;
    fieldbyname('fixingAmount').AsString:=edt_Amount.Text;
    fieldbyname('fixingsum').AsString:=edt_Sum.Text;
    fieldbyname('RemArk').AsString:=Edt_RemArk.Text;
    Post;
  end;
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.Edt_DeptCodeExit(
  Sender: TObject);
begin
  inherited;
  if(ActiveControl.Name='btn_Cancel')then
    Abort;
  if (Status='Add')or((Status<>'Add') and
    (TEdit(Sender).Text<>AdoQry_Body.fieldbyname('KmCode').AsString)) then
  begin
    with AdoQry_Body do
    begin
      AdoQry_Body.DisableControls;
      First;
      While Not Eof Do
      begin
        If (AdoQry_Body.fieldbyname('KmCode').AsString=TCustomEdit(Sender).Text) Then
        begin
         DispInfo('存在相同记录,请重新选择!',3);
         AdoQry_Body.EnableControls;
         Abort;
        end;
        Next;
      end;
      First;
      AdoQry_Body.EnableControls;
    end;
  end;
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.SetStatus(CurrentStatus: String;
  var EnableControls: String);
begin
  inherited;
  EnableControls:='edt_Name,Edt_Spec,edt_UomCode,edt_Amount,edt_Sum,Edt_RemArk,';
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.getAssignRate(tmp:TAdoQuery);
var
  Rate:real;
begin
  Rate:=0;
  With tmp do
  begin
    tmp.DisableControls;
    First;
    While Not Eof do
    begin
      Rate:=Rate+fieldbyname('AssignCode').AsFloat;
      Next;
    end;
    tmp.EnableControls;
  end;
//  IF (Rate+StrToFloat(EDT_AssignRate.Text)>100) Then DispInfo('分配率不能大于100%',3);
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.Edt_DeptCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
   If key=120 Then
  CommOnHint(Sender,AdoQry_Tmp,'KmName','折旧费用科目名称','KmCode',
             '折旧费用科目代码',' Gl_AccountSubject ');
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.Edt_DeptCodeButtonClick(
  Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'KmName','折旧费用科目名称','KmCode',
             '折旧费用科目代码',' Gl_AccountSubject ');
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.edt_UomCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key=120 then
  CommOnHint(Sender,AdoQry_Tmp,'UomName','单位名称','UomCode',
             '单位代码',' Uom ');
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.edt_UomCodeButtonClick(
  Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'UomName','单位名称','UomCode',
             '单位代码',' Uom ');
end;

procedure TFrm_Ad_Enter_AssetCardDepreciationSubject_D.edt_UomCodeExit(
  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 UomCode,UomName from Uom'
                        +'          where UomCode= '''+TCustomEdit(Sender).Text+''' ';
    AdoQry_Tmp.Open;
    if not AdoQry_Tmp.Eof then
    begin
      edt_UomName.Text := AdoQry_Tmp.fieldbyname('UomName').AsString;
    end
    else
    begin
      DispInfo('单位代码错误,请重新输入!',1);
      TWinControl(Sender).SetFocus;
      Abort;
    end;
  end
  else
    edt_UomName.Text:='';
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?