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