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

📄 main_unit.pas

📁 仓库管理系统 貌似是ACCESS的数据库
💻 PAS
字号:
unit Main_Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, Buttons, ToolWin, ExtCtrls, ImgList;

type
  TfrmWarehouseMain = class(TForm)
    MainMenu1: TMainMenu;
    mmLogin: TMenuItem;
    N1: TMenuItem;
    mmLogOut: TMenuItem;
    N3: TMenuItem;
    mmOperatorPwd: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    mmWarehouseIn: TMenuItem;
    mmWarehouseOut: TMenuItem;
    mmCheckInfo: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    mmWearhouseInSearch: TMenuItem;
    mmWearhouseOutSearch: TMenuItem;
    mmWearhouseSearch: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    StatusBar1: TStatusBar;
    ControlBar1: TControlBar;
    CoolBar3: TCoolBar;
    sbtnLogin: TSpeedButton;
    sbtnExit: TSpeedButton;
    Bevel3: TBevel;
    CoolBar1: TCoolBar;
    sbtnWarehouseIn: TSpeedButton;
    sbtnWarehouseOut: TSpeedButton;
    Bevel2: TBevel;
    sbtnCheckInfo: TSpeedButton;
    CoolBar2: TCoolBar;
    sbtnHelp: TSpeedButton;
    sbtnAbout: TSpeedButton;
    sbtnPWD: TSpeedButton;
    mmOperats: TMenuItem;
    mmMaterialType: TMenuItem;
    mmMaterialInfo: TMenuItem;
    N4: TMenuItem;
    mmWareInfo: TMenuItem;
    N2: TMenuItem;
    mmVendor: TMenuItem;
    mmCustomer: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    mmAbout: TMenuItem;
    N22: TMenuItem;
    ImageList1: TImageList;
    CoolBar4: TCoolBar;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    sbtnQuery: TSpeedButton;
    SpeedButton3: TSpeedButton;
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormShow(Sender: TObject);
    procedure mmLoginClick(Sender: TObject);
    procedure mmLogOutClick(Sender: TObject);
    procedure mmOperatsClick(Sender: TObject);
    procedure sbtnExitClick(Sender: TObject);
    procedure mmOperatorPwdClick(Sender: TObject);
    procedure mmMaterialTypeClick(Sender: TObject);
    procedure mmMaterialInfoClick(Sender: TObject);
    procedure mmWareInfoClick(Sender: TObject);
    procedure mmVendorClick(Sender: TObject);
    procedure mmCustomerClick(Sender: TObject);
    procedure mmWearhouseInSearchClick(Sender: TObject);
    procedure mmWearhouseSearchClick(Sender: TObject);
    procedure mmWearhouseOutSearchClick(Sender: TObject);
    procedure mmWarehouseInClick(Sender: TObject);
    procedure mmWarehouseOutClick(Sender: TObject);
    procedure mmCheckInfoClick(Sender: TObject);
    procedure mmAboutClick(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N22Click(Sender: TObject);
  private
    OperatorID:string;
    OperatorName:string;
  public
    Int_flag:integer;//0:注销1:退出标志
    procedure AssignLimit;
  end;

var
  frmWarehouseMain: TfrmWarehouseMain;

implementation

uses DM_Unit, Splash_Unit,OperatorLogin_Unit, About_Unit, Operators_Unit,
  OPwdAlter_Unit, MaterialType_Unit, MaterialInfo_Unit, WareInfo_Unit,
  Vendor_Unit, Customer_Unit, WarehouseInSearch_Unit,
  WarehouseOutSearch_Unit, WarehouseSearch_Unit, WarehouseInUnit,
  WarehouseOutUnit, CheckInfoUnit;

{$R *.dfm}

procedure TfrmWarehouseMain.AssignLimit;
var
  i: Integer;
begin
  for i := 1 to MainMenu1.Items.Count-2 do //所有功能可用
  begin
    MainMenu1.Items[i].Visible := False;
  end;
end;

procedure TfrmWarehouseMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if MessageDlg('确实要退出系统吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
   CanClose:=true
 else
   CanClose:=false;
end;

procedure TfrmWarehouseMain.FormShow(Sender: TObject);
var
  i: Integer;
begin
  Int_flag:=0;
  for i := 1 to MainMenu1.Items.Count-2 do //所有功能不可用
  begin
    MainMenu1.Items[i].Visible := True;
  end;
  StatusBar1.Panels[2].text:=' '+formatdatetime('yyyy',now)+'年'+
                             formatdatetime('mm',now)+'月'+
                             formatdatetime('dd',now)+'日'+' '+
                             formatdatetime('dddd',now);
  //StatusBar1.Panels[2].Width:=StatusBar1.Width-540;
  StatusBar1.Panels[1].text:='操作员: '+ DM.OperatorName;
  StatusBar1.Panels[0].text:='用户: '+ DM.OperatorID;
end;

procedure TfrmWarehouseMain.mmLoginClick(Sender: TObject);
var
  MR:Boolean;
  i,j:integer;
begin
  try
    if not Assigned(frmOperatorLogin) then
    Application.CreateForm(TfrmOperatorLogin, frmOperatorLogin);
    frmOperatorLogin.ShowModal;

    MR:=frmOperatorLogin.MR;
    OperatorID:=DM.OperatorID;
    OperatorName:=DM.OperatorName;
  finally
    //frmOperatorLogin.Free;
    //frmOperatorLogin := nil;
  end;
  if not MR then MR:=true else
  begin
    FormShow(self); //分配菜单
    Int_flag:=0; //0:注销1:退出标志
    mmLogOut.Caption:='注销';
    sbtnLogin.Enabled := True;
    for j:=0 to Self.ComponentCount-1 do
     begin
       if TComponent(Components[j]).Tag=10  then begin
         TSpeedButton(Components[j]).Enabled := True;
       end;
     end;
  end;
  StatusBar1.Panels[2].text:=' '+formatdatetime('yyyy',now)+'年'+
                             formatdatetime('mm',now)+'月'+
                             formatdatetime('dd',now)+'日'+' '+
                             formatdatetime('dddd',now);
  //StatusBar1.Panels[2].Width:=StatusBar1.Width-540;
  StatusBar1.Panels[1].text:='操作员: '+ OperatorName;
  StatusBar1.Panels[0].text:='用户: '+ OperatorID;

  for i:=self.MDIChildCount-1 downto 0 do
  begin
   self.MDIChildren[i].Close;
  end;
end;

procedure TfrmWarehouseMain.mmLogOutClick(Sender: TObject);
var
  i,j:integer;
begin
 if Int_flag=0 then
 begin
   if Application.MessageBox('确实要注销吗?','注销系统',MB_OKCANCEL+MB_ICONQUESTION)=IDOK   then
   begin
     for i:=self.MDIChildCount-1 downto 0 do
     begin
       self.MDIChildren[i].Close;
     end;
     AssignLimit; //关闭菜单
     Int_flag:=1;
     mmLogOut.Caption:='退出';
     sbtnLogin.Enabled := False;
     for j:=0 to Self.ComponentCount-1 do
     begin
       if TComponent(Components[j]).Tag=10  then begin
         TSpeedButton(Components[j]).Enabled := False;
       end;
     end;
     StatusBar1.Panels[1].text:='操作员: ';
     StatusBar1.Panels[0].text:='用户: ';
   end;
  end else
  if Int_flag=1 then
  begin
    if Application.MessageBox('您确实要退出吗?','退出',MB_OKCANCEL+MB_ICONQUESTION)=IDOK
     then Application.Terminate;
  end
end;

procedure TfrmWarehouseMain.mmOperatsClick(Sender: TObject);
begin
  frmOperators := TfrmOperators.Create(Application);
  try
    frmOperators.ShowModal;
  except
    frmOperators.Free;
    frmOperators := nil;
  end;
end;

procedure TfrmWarehouseMain.sbtnExitClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmWarehouseMain.mmOperatorPwdClick(Sender: TObject);
begin
  frmOPwdAlter := TfrmOPwdAlter.Create(Application);
  try
    frmOPwdAlter.ShowModal;
  except
    frmOPwdAlter.Free;
    frmOPwdAlter := nil;
  end;
end;

procedure TfrmWarehouseMain.mmMaterialTypeClick(Sender: TObject);
begin
  frmMaterialType := TfrmMaterialType.Create(Application);
  try
    frmMaterialType.ShowModal;
  except
    frmMaterialType.Free;
    frmMaterialType := nil;
  end;
end;

procedure TfrmWarehouseMain.mmMaterialInfoClick(Sender: TObject);
begin
  if not Assigned(frmMaterialInfo) then
    frmMaterialInfo := TfrmMaterialInfo.Create(Application);
  try
    frmMaterialInfo.Show;
  except
    frmMaterialInfo.Free;
    frmMaterialInfo := nil;
  end;
end;

procedure TfrmWarehouseMain.mmWareInfoClick(Sender: TObject);
begin
  if not Assigned(frmWareInfo) then
    frmWareInfo := TfrmWareInfo.Create(Application);
  try
    frmWareInfo.Show;
  except
    frmWareInfo.Free;
    frmWareInfo := nil;
  end;
end;

procedure TfrmWarehouseMain.mmVendorClick(Sender: TObject);
begin
  if not Assigned(frmVendor) then
    frmVendor := TfrmVendor.Create(Application);
  try
    frmVendor.Show;
  except
    frmVendor.Free;
    frmVendor := nil;
  end;
end;

procedure TfrmWarehouseMain.mmCustomerClick(Sender: TObject);
begin
  if not Assigned(frmCustomer) then
    frmCustomer := TfrmCustomer.Create(Application);
  try
    frmCustomer.Show;
  except
    frmCustomer.Free;
    frmCustomer := nil;
  end;
end;

procedure TfrmWarehouseMain.mmWearhouseInSearchClick(Sender: TObject);
begin
  if not Assigned(frmWarehouseInsearch) then
    frmWarehouseInsearch := TfrmWarehouseInsearch.Create(Application);
  try
    frmWarehouseInsearch.Show;
  except
    frmWarehouseInsearch.Free;
    frmWarehouseInsearch := nil;
  end;
end;

procedure TfrmWarehouseMain.mmWearhouseSearchClick(Sender: TObject);
begin
  if not Assigned(frmWarehouseSearch) then
    frmWarehouseSearch := TfrmWarehouseSearch.Create(Application);
  try
    frmWarehouseSearch.Show;
  except
    frmWarehouseSearch.Free;
    frmWarehouseSearch := nil;
  end;
end;

procedure TfrmWarehouseMain.mmWearhouseOutSearchClick(Sender: TObject);
begin
  if not Assigned(frmWarehouseOutSearch) then
    frmWarehouseOutSearch := TfrmWarehouseOutSearch.Create(Application);
  try
    frmWarehouseOutSearch.Show;
  except
    frmWarehouseOutSearch.Free;
    frmWarehouseOutSearch := nil;
  end;
end;

procedure TfrmWarehouseMain.mmWarehouseInClick(Sender: TObject);
begin
  if not Assigned(frmWarehouseIn) then
    frmWarehouseIn := TfrmWarehouseIn.Create(Application);
  try
    frmWarehouseIn.Show;
  except
    frmWarehouseIn.Free;
    frmWarehouseIn := nil;
  end;
end;

procedure TfrmWarehouseMain.mmWarehouseOutClick(Sender: TObject);
begin
  if not Assigned(frmWarehouseOut) then
    frmWarehouseOut := TfrmWarehouseOut.Create(Application);
  try
    frmWarehouseOut.Show;
  except
    frmWarehouseOut.Free;
    frmWarehouseOut := nil;
  end;
end;

procedure TfrmWarehouseMain.mmCheckInfoClick(Sender: TObject);
begin
  frmCheckInfo := TfrmCheckInfo.Create(Application);
  try
    frmCheckInfo.ShowModal;
  except
    frmCheckInfo.Free;
    frmCheckInfo := nil;
  end;
end;

procedure TfrmWarehouseMain.mmAboutClick(Sender: TObject);
begin
  frmAbout := TfrmAbout.Create(Application);
  try
    frmAbout.ShowModal;
  except
    frmAbout.Free;
    frmAbout := nil;
  end;
end;

procedure TfrmWarehouseMain.N16Click(Sender: TObject);
begin
  Cascade;
end;

procedure TfrmWarehouseMain.N17Click(Sender: TObject);
begin
  Tile;
end;

procedure TfrmWarehouseMain.N22Click(Sender: TObject);
begin
  ArrangeIcons;
end;

end.

⌨️ 快捷键说明

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