ad_enter_changetype_d.pas

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

PAS
244
字号
unit Ad_Enter_ChangeType_D;

Interface

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

Type
  TFrm_Ad_Enter_ChangeType_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edt_EmployeeCode: TEdit;
    Edt_EmployeeName: TEdit;
    lbl_DeptName: TLabel;
    ExtEdt_DeptCode: TExtEdit;
    Label5: TLabel;
    Edt_AdChangeTypeMode: TComboBox;
    Label6: TLabel;
    Edt_KmCode: TLinkEdit;
    Edt_KmName: TEdit;
    procedure Edt_EmployeeCodeExit(Sender: TObject);
    procedure Edt_EmployeeNameExit(Sender: TObject);
    procedure Edt_KmCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edt_KmCodeButtonClick(Sender: TObject);
    procedure Edt_KmCodeExit(Sender: TObject);
  private
    procedure SaveHistoryChangeType(ChgType:String);
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveData; Override;
    { Public declarations }
  end;

var
  Frm_Ad_Enter_ChangeType_D: TFrm_Ad_Enter_ChangeType_D;

implementation

uses Sys_Global;

{$R *.DFM}

procedure TFrm_Ad_Enter_ChangeType_D.Edt_EmployeeCodeExit(Sender: TObject);
begin
  inherited;
  if ActiveControl.Name='btn_Cancel' then
    exit;
  if (not BlankInStrCheck(Edt_EmployeeCode.Text,'增减方式代码')) or
   (not BlankCheck(Edt_EmployeeCode.text,'增减方式代码')) then
  begin
    TWinControl(Sender).SetFocus;
    abort;
  end;

  if (Add)or((not Add) and
    (TEdit(Sender).Text<>AdoQry_Maintain.fieldbyname('AdChangeTypeCode').AsString)) then
  begin
    with AdoQry_Tmp do
    begin
      Close;
      SQL.clear;
      SQL.Add('Select AdChangeTypeCode From Ad_ChangeType Where AdChangeTypeCode='''+TEdit(Sender).Text+'''');
      Open;
      if fieldbyname('AdChangeTypeCode').AsString<>'' then
      begin
        DispInfo('  增减方式代码已经存在,不允许增加或修改!  ',1);
        TWinControl(Sender).SetFocus;
        Abort;
      end;
    end;
  end;
end;

procedure TFrm_Ad_Enter_ChangeType_D.InitControls;
begin
  if Add then
  begin
    SetFocus_Control:=Edt_AdChangeTypeMode;
    Edt_EmployeeCode.Enabled:=True;
  end
  else
    SetFocus_Control:=Edt_AdChangeTypeMode;
  inherited;
  with AdoQry_Maintain do
  begin
    Edt_AdChangeTypeMode.ItemIndex:=fieldbyname('AdChangeTypeMode').asinteger-1;
    Edt_EmployeeCode.Text:=fieldbyname('AdChangeTypeCode').AsString;
    Edt_EmployeeName.Text:=fieldbyname('AdChangeTypeName').AsString;
    ExtEdt_DeptCode.Text:=fieldbyname('RemArk').AsString;
    Edt_EmployeeCode.MaxLength:=fieldbyname('AdChangeTypeCode').size;
    Edt_KmCode.Text := fieldbyname('KmCode').AsString;
    Edt_KmName.Text := fieldbyname('KmName').AsString;
  end;
  if not Add then
    Edt_EmployeeCode.Enabled:=False;
end;

procedure TFrm_Ad_Enter_ChangeType_D.SaveData;
var
   ChgType:String;
begin
  inherited;
  with AdoQry_Tmp do
  begin
    Close;
    if(Add)then
    begin
      SQL.Text:='Insert into Ad_ChangeType(AdChangeTypeMode,AdChangeTypeCode,AdChangeTypeName,KmCode,RemArk)'
        +' Values('
        +' '''+inttostr(Edt_AdChangeTypeMode.ItemIndex+1)+''''
        +','''+Edt_EmployeeCode.Text+''''
        +','''+Edt_EmployeeName.Text+''''+','
        +iifstring(Trim(edt_KmCode.Text)='','null',Trim(edt_kmCode.Text))
        +','''+ExtEdt_DeptCode.Text+''''
        +')';
      ChgType:='增加';
    end else
    begin
      SQL.Text:='Update Ad_ChangeType'
        +' Set AdChangeTypeName='''+Edt_EmployeeName.Text+''''
        +',AdChangeTypeMode='''+inttostr(Edt_AdChangeTypeMode.ItemIndex+1)+''''
        +',KmCode='+iifstring(Trim(edt_KmCode.Text)='','null',Trim(edt_kmCode.Text))
        +',RemArk='''+ExtEdt_DeptCode.Text+''''
        +' Where AdChangeTypeCode='''+AdoQry_Maintain.fieldbyname('AdChangeTypeCode').AsString+'''';
      ChgType:='修改';
    end;
    ExecSQL;
  end;
  SaveHistoryChangeType(ChgType);
  with AdoQry_Maintain do
  begin
    fieldbyname('AdChangeTypeMode').Asinteger:=Edt_AdChangeTypeMode.Itemindex+1;
    fieldbyname('AdChangeTypeCode').AsString:=Edt_EmployeeCode.Text;
    fieldbyname('AdChangeTypeName').AsString:=Edt_EmployeeName.Text;
    fieldbyname('KmCode').AsString := Trim(Edt_KmCode.Text);
    fieldbyname('KmName').AsString := Trim(Edt_KmName.Text);
    fieldbyname('RemArk').AsString:=ExtEdt_DeptCode.Text;
    Post;
  end;
end;

procedure TFrm_Ad_Enter_ChangeType_D.Edt_EmployeeNameExit(Sender: TObject);
begin
  inherited;
  if ActiveControl.Name='btn_Cancel' then
    exit;
  if (not BlankInStrCheck(Edt_EmployeeName.Text,'增减方式名称')) or
   (not BlankCheck(Edt_EmployeeName.text,'增减方式名称')) then
  begin
    TWinControl(Sender).SetFocus;
    abort;
  end;

  if (Add)or((not Add) and
    (TEdit(Sender).Text<>AdoQry_Maintain.fieldbyname('AdChangeTypeName').AsString)) then
  begin
    with AdoQry_Tmp do
    begin
      Close;
      SQL.clear;
      SQL.Add('Select AdChangeTypeName From Ad_ChangeType Where AdChangeTypeName='''+TEdit(Sender).Text+''' and AdChangeTypeMode='''+inttostr(Edt_AdChangeTypeMode.ItemIndex+1)+''' ');
      Open;
      if fieldbyname('AdChangeTypeName').AsString<>'' then
      begin
        DispInfo('  增减类型与增减方式名称已经存在,不允许增加或修改!  ',1);
        TWinControl(Sender).SetFocus;
        Abort;
      end;
    end;
  end;

end;

procedure TFrm_Ad_Enter_ChangeType_D.SaveHistoryChangeType(ChgType:String);
begin
  with AdoQry_Tmp do
  begin
    Close;
    Sql.clear;
    SQL.Text:='Insert into Ad_ChangeTypeHistory(AdChangeTypeMode,AdChangeTypeCode,AdChangeTypeName,KmCode,RemArk,ChgEmployeeCode,ChgTime,ChgType)'
      +' Values('
      +' '''+inttostr(Edt_AdChangeTypeMode.ItemIndex+1)+''''
      +','''+Edt_EmployeeCode.Text+''''
      +','''+Edt_EmployeeName.Text+''''
      +','+iifstring(Trim(edt_KmCode.Text)='','null',Trim(edt_kmCode.Text))
      +','''+ExtEdt_DeptCode.Text+''''
      +','''+UserCode+''''
      +',getdate()'
      +','''+ChgType+''''
      +')';
    ExecSQL;
  end;
end;

procedure TFrm_Ad_Enter_ChangeType_D.Edt_KmCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
   If key=120 Then
  CommOnHint(Sender,AdoQry_Tmp,'KmName','科目名称','KmCode',
             '科目代码',' Gl_AccountSubject ',' endKm=1');

end;

procedure TFrm_Ad_Enter_ChangeType_D.Edt_KmCodeButtonClick(
  Sender: TObject);
begin
  inherited;
  CommOnHint(Sender,AdoQry_Tmp,'KmName','科目名称','KmCode',
             '科目代码',' Gl_AccountSubject ',' endKm=1');

end;

procedure TFrm_Ad_Enter_ChangeType_D.Edt_KmCodeExit(Sender: TObject);
begin
  inherited;
  if ActiveControl.Name ='btn_Cancel' then exit;
  if Trim(edt_kmCode.TExt)='' then 
  begin
    Edt_KmName.Text := '';
    exit;
  end;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.clear;
  AdoQry_Tmp.SQL.text := 'Select KmName from Gl_AccountSubject Where endKm=1 and KmCode='''+Edt_KmCode.Text +'''';
  AdoQry_Tmp.Open;
  if AdoQry_Tmp.Eof then
  begin
    DispInfo('科目代码输入错误!',1);
    Edt_KmCode.SetFocus;
    Abort;
  end
  else
    Edt_KmName.Text := AdoQry_Tmp.fieldbyname('KmName').AsString;

end;

end.

⌨️ 快捷键说明

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