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

📄 insuplier.~pas

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

interface

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

type
  TfrmInSuplier = class(TForm)
    Bevel1: TBevel;
    edtSuplierCode: TEx2NumEdit;
    lblSupplierNM: TEdit;
    cbxSuplier: TComboBox;
    edtIssPaperNO: TEdit;
    lblSuplier: 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;
    btnConfirm: TBitBtn;
    btnCancel: TBitBtn;
    btnSuplierSearch: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnConfirmClick(Sender: TObject);
    procedure cbxSuplierDropDown(Sender: TObject);
    procedure cbxSuplierChange(Sender: TObject);
    procedure edtSuplierCodeChange(Sender: TObject);
    procedure edtSuplierCodeExit(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);
    procedure btnSuplierSearchClick(Sender: TObject);
  private
    { Private declarations }
    procedure SetMultilingual;

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

  public
    { Public declarations }
    InWinLogin: Integer;
    
  end;

var
  frmInSuplier: TfrmInSuplier;

implementation

uses InvDM, Main, InvSuplierSearch;

{$R *.dfm}

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

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

  edtIssPaperNO.Text   := '0';
  edtSuplierCode.Value := 0;
  lblSupplierNM.Text   := '';
  cbxSuplier.Text      := '';
  edtIOID.Text         := '';
  edtIOName.Text       := '';
  cbxIO.Text           := '';
  edtManID.Value       := frmMain.FUserID;
  edtManName.Text      := dm_Inventory.Get_EmpName(trim(edtManID.Text));
  cbxMan.Text          := '';
  edtStkID.Text        := frmMain.FDefStkID;
  edtStkName.Text      := dm_Inventory.GetStockName(frmMain.FDefStkID);
  cbxStk.Text          := '';
  if trim(edtStkID.Text)='' then edtStkID.Text := IniData.matstkid;
  edtIssPaperNO.SetFocus;
end;

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

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

  ErrorCode := 0;
  WCD1 := trunc(edtSuplierCode.Value);
  WCD2 := trunc(edtManID.Value);
  WTmpStr1 := trim(edtIOID.Text);
  WTmpStr2 := FloatTostr(edtManID.Value);
  WTmpStr3 := trim(edtStkID.Text);

  /////////////////////////////////////////////////////////
  if (WCD1<=0) then ErrorCode := -1;
  /////////////////////////////////////////////////////////
  iBool1 := dm_Inventory.MasterProc(WCD1, lblSupplierNM);
  if not(iBool1) then begin
    edtSuplierCode.Value := 0;
    ErrorCode := -1;
    Exit;
  end;
  /////////////////////////////////////////////////////////
  if trim(edtIssPaperNO.Text)='' then ErrorCode := -2;
  /////////////////////////////////////////////////////////
  if WTmpStr1='' then  ErrorCode := -3;
  iBool2 := dm_Inventory.InOut_IDProc(WTmpStr1,1, edtIOName);
  if not(iBool2) then begin
    edtIOID.Text := '';
    ErrorCode := -3;
    Exit;
  end;
  /////////////////////////////////////////////////////////
  if (WCD2<=0) then ErrorCode := -4;
  iBool3 := dm_Inventory.Emp_IDProc(WTmpStr2, edtManName);
  if not(iBool3) then begin
    edtManID.Value := 0;
    ErrorCode := -4;
    Exit;
  end;
  /////////////////////////////////////////////////////////
  if (WTmpStr3='') then ErrorCode := -5;
  iBool4 := dm_Inventory.Get_StockCheck(WTmpStr3,edtStkName);
  if not(iBool4) then begin
    edtStkID.Text := '';
    ErrorCode     := -5;
    Exit;
  end;

  /////////////////////////////////////////////////////////
  case ErrorCode of
    -1: begin
         MessageDlg(GetMultiLingalMsg(90264,'Please Selected One Suplier!'),mtError,[mbOk],0);
         Exit;
       end;
    -2: begin
         MessageDlg(GetMultiLingalMsg(90237, 'None Input Customer Issure Paper No!'),mtError,[mbOk],0);
         Exit;
       end;
    -3: begin
         GetMultiLingalMsg(90209, 'None Input IN Type!');
         Exit;
       end;
    -4: begin
         MessageDlg(GetMultiLingalMsg(90210,'Please Input Man!'),mtError,[mbOk],0);
         Exit;
       end;
    -5: begin
         MessageDlg('请选定入库的仓库!',mtError,[mbOk],0);
         Exit;
       end;
    -6: begin
         MessageDlg('请输入进仓单号!',mtError,[mbOk],0);
         Exit;
        end;
    else Modalresult := mrOK;
  end;
end;

procedure TfrmInSuplier.SetMultilingual;
begin
  self.Caption        := GetMultiLingalMsg(90259, 'Selected Suplier Delivery');
  lblSuplier.Caption  := GetMultiLingalMsg(90057, 'Suplier');
  lblIsspaper.Caption := GetMultiLingalMsg(90236, 'Issue Paper');
  lblInType.Caption   := GetMultiLingalMsg(90059, 'In Type');
  lblEmpID.Caption    := GetMultiLingalMsg(90060, 'In Man');
  lblStkID.Caption    := GetMultiLingalMsg(90027,'Stock ID');
end;

procedure TfrmInSuplier.cbxSuplierDropDown(Sender: TObject);
begin
  dm_inventory.Read_SupplyMake_ToCbx(cbxSuplier);
end;

procedure TfrmInSuplier.cbxSuplierChange(Sender: TObject);
begin
  edtSuplierCode.Value  := StrToIntDef(Get_PosBeforeStr(cbxSuplier.Text,'_'),0);
  lblSupplierNM.Text    := Get_PosAfterStr(cbxSuplier.Text,'_');
  edtSuplierCode.SetFocus;
end;

procedure TfrmInSuplier.edtSuplierCodeChange(Sender: TObject);
begin
  lblSupplierNM.Text := dm_Inventory.GetShigenName(Trunc(edtSuplierCode.Value));
end;

procedure TfrmInSuplier.edtSuplierCodeExit(Sender: TObject);
var iBool: Boolean;
    WCD: Integer;
begin
  WCD := trunc(edtSuplierCode.Value);
  iBool := dm_Inventory.MasterProc(WCD, lblSupplierNM);
  if not(iBool) then begin
    edtSuplierCode.Value := 0;
    Exit;
  end;
end;

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


////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
procedure TfrmInSuplier.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)or
      (Self.Components[i] is TButton))then
        begin
          (Self.Components[i] as TWinControl).TabStop  := False;
          (Self.Components[i] as TWinControl).TabOrder := -1;
        end;
    except
     ;
    end;
end;

procedure TfrmInSuplier.Init_TabStopAndTabOrder;
begin
  edtIssPaperNO.TabStop  := true;
  edtIssPaperNO.TabOrder := 7;

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

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

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

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


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

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

procedure TfrmInSuplier.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 TfrmInSuplier.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_TAB) or (Key = VK_RETURN)  then //--
    GetNextTabOrder(VK_TAB, Shift);
end;

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

procedure TfrmInSuplier.cbxIODropDown(Sender: TObject);
begin
  dm_inventory.Read_IOIDInfo_ToCbx(cbxIO,1);
end;

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

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

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

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

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

procedure TfrmInSuplier.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 TfrmInSuplier.cbxStkChange(Sender: TObject);
begin
  edtStkID.Text   := Get_PosBeforeStr(cbxStk.Text,'_');
  edtStkName.Text := Get_PosAfterStr(cbxStk.Text,'_');
  edtStkID.SetFocus;
end;

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

procedure TfrmInSuplier.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;

procedure TfrmInSuplier.btnSuplierSearchClick(Sender: TObject);
var frmSupSearch: TfrmSupSearch;
    agp: PSHIGEN;
begin
  frmSupSearch := TfrmSupSearch.Create(self);
  frmSupSearch.ShowModal;
  if frmSupSearch.ModalResult = mrOK then
  begin
    agp := frmSupSearch.FSelectedSuplier;
    edtSuplierCode.Value := (agp^.SIGEN_CD);
  end;
  frmSupSearch.Release;
end;

end.

⌨️ 快捷键说明

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