⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 outinvselect.~pas

📁 文件包含程序源原文件
💻 ~PAS
字号:
unit OutInvSelect;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Dialogs,
  Buttons, ExtCtrls, Ex2nmedt, InvDef, dpConst;

type
  TfrmOutInvSelect = class(TForm)
    Bevel1: TBevel;
    edtReceiveEmpName: TEdit;
    cbxReceive: TComboBox;
    edtIssPaperNO: TEdit;
    lblReceive: TLabel;
    lblIsspaper: TLabel;
    edtIOID: TEdit;
    lblInType: TLabel;
    lblEmpID: TLabel;
    cbxMan: TComboBox;
    cbxIO: TComboBox;
    edtIOName: TEdit;
    edtManName: TEdit;
    edtManID: TEx2NumEdit;
    edtStkID: TEdit;
    edtStkName: TEdit;
    cbxStk: TComboBox;
    lblStkID: TLabel;
    edtReceiveEmpID: TEx2NumEdit;
    btnConfirm: TBitBtn;
    btnCancel: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnConfirmClick(Sender: TObject);
    procedure cbxReceiveDropDown(Sender: TObject);
    procedure cbxReceiveChange(Sender: TObject);
    procedure edtReceiveEmpIDExit(Sender: TObject);
    procedure edtReceiveEmpIDChange(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure cbxManDropDown(Sender: TObject);
    procedure cbxIODropDown(Sender: TObject);
    procedure cbxIOChange(Sender: TObject);
    procedure cbxManChange(Sender: TObject);
    procedure edtIOIDChange(Sender: TObject);
    procedure edtIOIDExit(Sender: TObject);
    procedure edtManIDChange(Sender: TObject);
    procedure edtManIDExit(Sender: TObject);
    procedure cbxStkChange(Sender: TObject);
    procedure edtStkIDChange(Sender: TObject);
    procedure edtStkIDExit(Sender: TObject);

  private
    { Private declarations }
    procedure SetMultilingual;

    procedure Close_TabStop;
    Procedure Init_TabStopAndTabOrder;
    Procedure GetNextTabOrder(Key: Word; ShiftState: TShiftState);

  public
    { Public declarations }
    OutWinLogin: Integer;
    
  end;

var
  frmOutInvSelect: TfrmOutInvSelect;

implementation

uses InvDM, Main;

{$R *.dfm}

procedure TfrmOutInvSelect.FormCreate(Sender: TObject);
begin
  SetMultilingual;
end;

procedure TfrmOutInvSelect.FormShow(Sender: TObject);
begin
  Close_TabStop;
  Init_TabStopAndTabOrder;

  edtStkID.Text        := '';
  edtStkName.Text      := '';
  cbxStk.Text          := '';
  edtIssPaperNO.Text   := '0';
  edtIOID.Text         := '';
  edtIOName.Text       := '';
  cbxIO.Text           := '';
  edtManID.Value       := frmMain.FUserID;
  edtManName.Text      := dm_Inventory.Get_EmpName(trim(edtManID.Text));;
  cbxMan.Text          := '';
  edtReceiveEmpID.Value := 0;
  edtReceiveEmpName.Text:= '';
  cbxReceive.Text      := '';

  if (OutWinLogin =1) then edtStkID.Text := IniData.matstkid
  else edtStkID.Text := IniData.otherstkid;
  edtStkID.SetFocus;
end;

procedure TfrmOutInvSelect.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action := cafree;
end;

procedure TfrmOutInvSelect.btnConfirmClick(Sender: TObject);
var iBool1,iBool2,iBool3,iBool4: Boolean;
    WCD1,WCD2: Integer;
    WTmpStr1,WTmpStr2,WTmpStr3,WTmpStr4: String;
    ErrorCode: Integer;
begin
  Modalresult := mrNone;
  ErrorCode := 0;

  WTmpStr1 := trim(edtStkID.Text);
  WTmpStr2 := trim(edtIOID.Text);
  WTmpStr3 := FloatTostr(edtManID.Value);
  WTmpStr4 := FloatTostr(edtReceiveEmpID.Value);
  WCD1     := trunc(edtManID.Value);
  WCD2     := trunc(edtReceiveEmpID.Value);


  /////////////////////////////////////////////////////////
  if (WTmpStr1='') then ErrorCode := -1;
  iBool1 := dm_Inventory.Get_StockCheck(WTmpStr1,edtStkName);
  if not(iBool1) then begin
    edtStkID.Text := '';
    ErrorCode     := -1;
    Exit;
  end;
  /////////////////////////////////////////////////////////
  if trim(edtIssPaperNO.Text)='' then ErrorCode := -2;
  /////////////////////////////////////////////////////////
  if WTmpStr2='' then ErrorCode := -3;
  iBool2 := dm_Inventory.InOut_IDProc(WTmpStr2,2, edtIOName);
  if not(iBool2) then begin
    edtIOID.Text := '';
    ErrorCode := -3;
    Exit;
  end;
  /////////////////////////////////////////////////////////
  if (WCD1<=0) then ErrorCode := -4;
  iBool3 := dm_Inventory.Emp_IDProc(WTmpStr3, edtManName);
  if not(iBool3) then begin
    edtManID.Value := 0;
    ErrorCode := -4;
    Exit;
  end;
  /////////////////////////////////////////////////////////
  if (WCD2<=0) then ErrorCode := -5;
  iBool4 := dm_Inventory.Emp_IDProc(WTmpStr4, edtReceiveEmpName);
  if not(iBool4) then begin
    edtReceiveEmpID.Value := 0;
    ErrorCode := -5;
    Exit;
  end;
  /////////////////////////////////////////////////////////
  case ErrorCode of
    -1: begin
         MessageDlg('请选定入库的仓库!',mtError,[mbOk],0);
         Exit;
       end;
    -2: begin
         MessageDlg(GetMultiLingalMsg(90237, 'None Input Customer Issure Paper No!'),mtError,[mbOk],0);
         Exit;
       end;
    -3: begin
         GetMultiLingalMsg(90220, 'None Input Out Type!');
         Exit;
       end;
    -4: begin
         MessageDlg(GetMultiLingalMsg(90210,'Please Input Man!'),mtError,[mbOk],0);
         Exit;
       end;
    -5: begin
          MessageDlg(GetMultiLingalMsg(90221, 'None Input Receive Man!'),mtError,[mbOk],0);
          Exit;
       end;
    else Modalresult := mrOK;
  end;
end;

procedure TfrmOutInvSelect.SetMultilingual;
begin
  self.Caption        := 'Selected Inventory Information';
  lblStkID.Caption    := GetMultiLingalMsg(90027,'Stock ID');
  lblIsspaper.Caption := GetMultiLingalMsg(90236, 'Issue Paper');
  lblInType.Caption   := GetMultiLingalMsg(90087, 'Out Type');
  lblEmpID.Caption    := GetMultiLingalMsg(90240, 'Out Man');
  lblReceive.Caption  := GetMultiLingalMsg(90088, 'Receive Man');
end;

procedure TfrmOutInvSelect.cbxReceiveDropDown(Sender: TObject);
begin
  dm_inventory.Read_EmpInfoToCbx(cbxReceive);
end;

procedure TfrmOutInvSelect.cbxReceiveChange(Sender: TObject);
begin
  edtReceiveEmpID.Value   := StrToIntDef(Get_PosBeforeStr(cbxReceive.Text,'_'),0);
  edtReceiveEmpName.Text  := Get_PosAfterStr(cbxReceive.Text,'_');
  edtReceiveEmpID.SetFocus;
end;

procedure TfrmOutInvSelect.edtReceiveEmpIDChange(Sender: TObject);
begin
  edtReceiveEmpName.Text := dm_Inventory.Get_EmpName(trim(edtReceiveEmpID.Text));
end;

procedure TfrmOutInvSelect.edtReceiveEmpIDExit(Sender: TObject);
var iBool: Boolean;
    WTmpStr: String;
begin
  WTmpStr := FloatTostr(edtReceiveEmpID.Value);
  iBool := dm_Inventory.Emp_IDProc(WTmpStr, edtReceiveEmpName);
  if not(iBool) then begin
    edtReceiveEmpID.Value := 0;
    Exit;
  end;
end;

procedure TfrmOutInvSelect.btnCancelClick(Sender: TObject);
begin
  Modalresult := mrCancel;
  CLOSE;
end;


////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
procedure TfrmOutInvSelect.Close_TabStop;
var
  i:Integer;
begin
  for i:=0 To Self.ComponentCount-1 do
    try
      if not ((Self.Components[i] is TLabel) or (Self.Components[i] is TImageList)or
      (Self.Components[i] is TSpeedButton) or (self.Components[i] is TBevel))then
        begin
          (Self.Components[i] as TWinControl).TabStop  := False;
          (Self.Components[i] as TWinControl).TabOrder := -1;
        end;
    except
     ;
    end;
end;

procedure TfrmOutInvSelect.Init_TabStopAndTabOrder;
begin
  edtStkID.TabStop  := true;
  edtStkID.TabOrder := 7;

  edtIssPaperNO.TabStop  := true;
  edtIssPaperNO.TabOrder := 6;

  edtIOID.TabStop  := true;
  edtIOID.TabOrder := 5;

  edtReceiveEmpID.TabStop  := true;
  edtReceiveEmpID.TabOrder := 4;

  edtManID.TabStop  := true;
  edtManID.TabOrder := 3;

  btnConfirm.TabStop  := true;
  btnConfirm.TabOrder := 2;

  btnCancel.TabStop  := true;
  btnCancel.TabOrder := 1;
end;

procedure TfrmOutInvSelect.GetNextTabOrder(Key: Word; ShiftState: TShiftState);
var
  nextControl : TWinControl;
begin
  if key = VK_TAB then begin

    nextControl := FindNextControl(ActiveControl ,false,true,false);
    if NextControl <> nil then  NextControl.SetFocus;
  end
  else if key = VK_RETURN then
  begin
    nextControl := FindNextControl(ActiveControl ,true,true,false);
    if NextControl <> nil then  NextControl.SetFocus;
  end;
end;

procedure TfrmOutInvSelect.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_TAB) or (Key = VK_RETURN)  then //--
    GetNextTabOrder(VK_TAB, Shift);
end;

procedure TfrmOutInvSelect.cbxManDropDown(Sender: TObject);
begin
  dm_inventory.Read_EmpInfoToCbx(cbxMan);
end;

procedure TfrmOutInvSelect.cbxIODropDown(Sender: TObject);
begin
  dm_inventory.Read_IOIDInfo_ToCbx(cbxIO,2);
end;

procedure TfrmOutInvSelect.cbxIOChange(Sender: TObject);
begin
  edtIOID.Text    := Get_PosBeforeStr(cbxIO.Text,'_');
  edtIOName.Text  := Get_PosAfterStr(cbxIO.Text,'_');
  edtIOID.SetFocus;
end;

procedure TfrmOutInvSelect.cbxManChange(Sender: TObject);
begin
  edtManID.Value  := StrToIntDef(Get_PosBeforeStr(cbxMan.Text,'_'),0);
  edtManName.Text  := Get_PosAfterStr(cbxMan.Text,'_');
  edtManID.SetFocus;
end;

procedure TfrmOutInvSelect.edtIOIDChange(Sender: TObject);
begin
  edtIOName.Text := dm_Inventory.Get_IOIDName(trim(edtIOID.Text),2);
end;

procedure TfrmOutInvSelect.edtIOIDExit(Sender: TObject);
var iBool: Boolean;
    WTmpStr: String;
begin
  WTmpStr := trim(edtIOID.Text);
  iBool := dm_Inventory.InOut_IDProc(WTmpStr,2, edtIOName);
  if not(iBool) then begin
    edtIOID.Text := '';
    Exit;
  end;
end;

procedure TfrmOutInvSelect.edtManIDChange(Sender: TObject);
begin
  edtManName.Text := dm_Inventory.Get_EmpName(trim(edtManID.Text));
end;

procedure TfrmOutInvSelect.edtManIDExit(Sender: TObject);
var iBool: Boolean;
    WTmpStr: string;
begin
  WTmpStr := FloatTostr(edtManID.Value);
  iBool := dm_Inventory.Emp_IDProc(WTmpStr, edtManName);
  if not(iBool) then begin
    edtManID.Value := 0;
    Exit;
  end;
end;

procedure TfrmOutInvSelect.cbxStkChange(Sender: TObject);
begin
  edtStkID.Text   := Get_PosBeforeStr(cbxStk.Text,'_');
  edtStkName.Text := Get_PosAfterStr(cbxStk.Text,'_');
  edtStkID.SetFocus;
end;

procedure TfrmOutInvSelect.edtStkIDChange(Sender: TObject);
begin
  edtStkName.Text := dm_Inventory.GetStockName(trim(edtStkID.Text));
end;

procedure TfrmOutInvSelect.edtStkIDExit(Sender: TObject);
var WTmpStr: string;
    iBool: Boolean;
begin
  WTmpStr := trim(edtStkID.Text);
  iBool := dm_Inventory.Get_StockCheck(WTmpStr,edtStkName);
  if not(iBool) then begin
    edtStkID.Text := '';
    Exit;
  end;
end;





end.

⌨️ 快捷键说明

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