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

📄 mainunit.~pas

📁 用友系统二次开发 存货管理 客户管理 订货审核 退货审核 铺货计划 调货计划
💻 ~PAS
字号:
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,  RM_Class, RM_e_main, RM_e_Xls, cxEditRepositoryItems,ADODB,
  ActnList, RzSplit, cxEdit, XPMan, RM_Dataset, RM_GridReport, ExtCtrls,
  XPMenu, ImgList,  StdActns,  Menus, RzGroupBar,  ComCtrls,  ToolWin,
  RzStatus, RzPanel, RM_Common,iniFiles, DB;

type
  TfrmMain = class(TForm)
    RzStatusBar1: TRzStatusBar;
    RzStatusPane1: TRzStatusPane;
    RzClockStatus1: TRzClockStatus;
    RzKeyStatus1: TRzKeyStatus;
    RzKeyStatus2: TRzKeyStatus;
    RzStatusPane2: TRzStatusPane;
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N1: TMenuItem;
    FileExitItem: TMenuItem;
    N48: TMenuItem;
    N49: TMenuItem;
    N50: TMenuItem;
    N51: TMenuItem;
    N52: TMenuItem;
    N53: TMenuItem;
    N54: TMenuItem;
    N55: TMenuItem;
    N56: TMenuItem;
    N57: TMenuItem;
    N58: TMenuItem;
    N59: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    W1: TMenuItem;
    C1: TMenuItem;
    N7: TMenuItem;
    N6: TMenuItem;
    N8: TMenuItem;
    Help1: TMenuItem;
    H1: TMenuItem;
    N47: TMenuItem;
    N35: TMenuItem;
    N36: TMenuItem;
    HelpAboutItem: TMenuItem;

    ActionList1: TActionList;
    WindowCascade1: TWindowCascade;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowTileVertical1: TWindowTileVertical;
    WindowMinimizeAll1: TWindowMinimizeAll;
    ImageList2: TImageList;
    ImageList1: TImageList;
    Timer1: TTimer;
    XPManifest1: TXPManifest;
    cxEditRepository1: TcxEditRepository;
    DateEdit: TcxEditRepositoryDateItem;
    TimeEdit: TcxEditRepositoryTimeItem;
    MoneyEdit: TcxEditRepositoryCurrencyItem;
    IntegerEdit: TcxEditRepositorySpinItem;
    NewProduct: TAction;
    ProdAnalysis: TAction;
    HelpAbort: TAction;
    SaleOrder: TAction;
    PrintInvoice: TAction;
    N5: TMenuItem;
    N9: TMenuItem;
    Product: TAction;
    ChangePassword: TAction;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    FileExit: TAction;
    ReturnOrder: TAction;
    PowerManagement: TAction;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    PlanManage: TAction;
    PurchaseOrder: TAction;
    XPMenu1: TXPMenu;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    ToolButton17: TToolButton;
    CustomerManage: TAction;
    OtherInput: TAction;
    OtherOut: TAction;
    Exportform: TAction;
    N14: TMenuItem;

    procedure LoadPower;
    procedure ShowWindows(ID: Integer);
    procedure NewProductExecute(Sender: TObject);
    procedure ProdAnalysisExecute(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure HelpAbortExecute(Sender: TObject);
    procedure SaleOrderExecute(Sender: TObject);
    procedure PrintInvoiceExecute(Sender: TObject);
    procedure ProductExecute(Sender: TObject);
    procedure ChangePasswordExecute(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FileExitExecute(Sender: TObject);
    procedure ReturnOrderExecute(Sender: TObject);
    procedure PowerManagementExecute(Sender: TObject);
    procedure PlanManageExecute(Sender: TObject);
    procedure PurchaseOrderExecute(Sender: TObject);
    procedure CustomerManageExecute(Sender: TObject);
    procedure OtherInputExecute(Sender: TObject);
    procedure OtherOutExecute(Sender: TObject);
    procedure ExportformExecute(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
      bLogin    :Boolean;
      //*******权限部分*****************
      power     :  Boolean;      //权限管理
      password  :  Boolean;      //密码
      print     :  Boolean;      //打印
      DataOut   :  Boolean;      //数据导出
      BackUp    :  Boolean;      //备份还原
      LogDiary  :  Boolean;      //查看日志
  end;

var
  frmMain: TfrmMain;
  IsMax     : integer=-1;
  Maxs      : Boolean=false;
//  DataSet   : TADODataSet;       //数据源
  Ini       : TiniFile;
  productList : TStringList;
  sqltext,sInvCode : string;
  i : integer;


  procedure OpenForm(FormClass: TFormClass; var fm; AOwner:TComponent);

implementation

uses
 ProdAnalysisUnit, NewProductUnit, LoginUnit, Welcome, DataUnit,
  SalesOrderUnit, PrintInvoiceUnit, ChangePasswordUnit, ProductUnit,
  ReturnOrderUnit, PowerUnit, PlanbrowerUnit, PurchaseOrderUnit,
  CustManageUnit, ExportfromUnit;

{$R *.dfm}

procedure TfrmMain.NewProductExecute(Sender: TObject);
begin
    if dm.tbPower.FieldValues['M'+inttostr(TAction(sender).Tag)] then
      ShowWindows(TAction(sender).Tag)
    else begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

procedure TfrmMain.ProdAnalysisExecute(Sender: TObject);
begin
    if dm.tbPower.FieldValues['M'+inttostr(TAction(sender).Tag)] then
      ShowWindows(TAction(sender).Tag)
    else begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;



procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   if Messagebox(handle,'您确定要退出当前系统吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then begin
      CanClose:=true;
   end
   else CanCLose:=false;

end;

procedure TfrmMain.HelpAbortExecute(Sender: TObject);
begin
   FrmWelCome.ShowModal;
end;



procedure TfrmMain.ShowWindows(ID: Integer);
begin
//分配窗口显示
  case ID of                        
     102 : frmPassword.ShowModal;//更改密码
     103 : frmPower.ShowModal;//更改密码
     201 : OpenForm(TfrmNewProduct, frmNewProduct, Self);     //新品建档
     202 : OpenForm(TfrmProdAnalysis, frmProdAnalysis, Self); //产品分析
     203 : OpenForm(TfrmProduct, frmProduct, Self); //产品分析
     204 : OpenForm(TfrmPlanbrower, frmPlanbrower, Self); //产品分析
     301 : OpenForm(TfrmPurchaseOrder, frmPurchaseOrder, Self);       //销售订货订单审核
     302 : OpenForm(TfrmSaleOrder, frmSaleOrder, Self);       //销售订货订单审核
     303 : OpenForm(TfrmReturnOrder, frmReturnOrder, Self);       //销售订货订单审核
     310 : OpenForm(TfrmExportfrom, frmExportfrom, Self);       //销售订货订单审核
     401 : OpenForm(TfrmPrintInvoice, frmPrintInvoice, Self); //出货单打印设置
     501 : OpenForm(TfrmCusManage, frmCusManage, Self); //出货单打印设置
{    54 : OpenForm(TNewProductAnalysisFrom, NewProductAnalysisFrom, Self); //显示产品信息
     55 : PowerSetForm.ShowModal; //权限管理
     57 : LogForm.ShowModal;//系统日志
     58 : EditAreaForm.ShowModal;//区域设置
     59 : BackUpForm.ShowModal;//备份数据库
     60 : OptionForm.ShowModal;//数据备份设置
     61 : CompressDataForm.ShowModal;//ACCESS数据压缩
     64 : SortSetForm.ShowModal;  //设置数据库类别
}
  end;
end;

procedure OpenForm(FormClass: TFormClass; var fm; AOwner:TComponent);
{根据传递过来的参数,打开相应的窗体}
var
  i: integer;
  Child:TForm;
begin
  for i := 0 to Screen.FormCount -1 do
      if Screen.Forms[i].ClassType=FormClass then
      begin
        {检查窗体是否已经打开,如果没有打开,打开它,
        如果已经打开,让它正常显示即可}
        Child:=Screen.Forms[i];
        if Child.WindowState=wsMinimized then
           ShowWindow(Child.handle,SW_SHOWNORMAL)
        else
           ShowWindow(Child.handle,SW_SHOWNA);
        if (not Child.Visible) then Child.Visible:=True;
        Child.BringToFront;
        Child.Setfocus;
        TForm(fm):=Child;
        exit;
      end;
  Child:=TForm(FormClass.NewInstance);
  TForm(fm):=Child;
  Child.Create(AOwner);
end;


procedure TfrmMain.FormActivate(Sender: TObject);
begin
   if (not Maxs)and(IsMax=1) then begin
      FrmMain.WindowState:=wsMaximized;
      Maxs:=true;
   end;

   if not bLogin then begin
      FrmLogin.RzEdit1.Clear;
      FrmLogin.ShowModal;
      if Not bLogin then
         Application.Terminate
      else begin
         LoadPower;        //导入权限分配
//         TestOverdueData;
      end;
   end;

   dm.tbPower.Locate('UserName',FrmLogin.LandingUser,[]);

end;

procedure TfrmMain.FormCreate(Sender: TObject);
var
   L, T, W ,H : Integer;
begin
//读取INI文件以判断窗口位置
   ini:=TiniFile.Create(ExtractFilePath(paramstr(0))+'CRM.ini');
   IsMax := ini.ReadInteger('MaxWindow','Max',-1);
   L     := ini.ReadInteger('WindowsState','Left',0);
   T     := Ini.ReadInteger('WindowsState','Top',0);
   W     := Ini.ReadInteger('WindowsState','Width',0);
   H     := Ini.ReadInteger('WindowsState','Height',0);

   if IsMax<>0 then
      FrmMain.Position:=poScreenCenter
   else begin
      Left   := L;
      Top    := T;
      Width  := W;
      Height := H;
   end;

   productList:=TStringList.Create;

   if FileExists('MainGroup.bmp') then
//      Image1.Picture.Bitmap.LoadFromFile('MainGroup.bmp');
//   RzGroup6.DoubleBuffered:=true;
   bLogin:=false;

end;

procedure TfrmMain.LoadPower;
begin
//导入权限分配
{   PowerChange.Enabled:=power;
   ChangePassword.Enabled:=Password;
   SystemLog.Enabled:=Log;
   BackUpdata.Enabled:=BackUp;
   Option.Enabled:=BackUp;
   LogReport.Enabled:=Log;
   EXCEL1.Enabled:=DataOut;
   }
end;


procedure TfrmMain.SaleOrderExecute(Sender: TObject);
begin
    if dm.tbPower.FieldValues['M'+inttostr(TAction(sender).Tag)] then
      ShowWindows(TAction(sender).Tag)
    else begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

procedure TfrmMain.PrintInvoiceExecute(Sender: TObject);
begin
    if dm.tbPower.FieldValues['M'+inttostr(TAction(sender).Tag)] then
      ShowWindows(TAction(sender).Tag)
    else begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

procedure TfrmMain.ProductExecute(Sender: TObject);
begin
    if dm.tbPower.FieldValues['M'+inttostr(TAction(sender).Tag)] then
      ShowWindows(TAction(sender).Tag)
    else begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

procedure TfrmMain.ChangePasswordExecute(Sender: TObject);
begin
       ShowWindows(TAction(sender).Tag)
end;

procedure TfrmMain.N2Click(Sender: TObject);
begin
  FrmLogin.UserExitDate;
  bLogin:=false;
  RzStatusPane2.Caption:='';
  FormActivate(sender);
end;

procedure TfrmMain.FileExitExecute(Sender: TObject);
begin
  Close;
end;

procedure TfrmMain.ReturnOrderExecute(Sender: TObject);
begin
    if dm.tbPower.FieldValues['M'+inttostr(TAction(sender).Tag)] then
      ShowWindows(TAction(sender).Tag)
    else begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

procedure TfrmMain.PowerManagementExecute(Sender: TObject);
begin
    if dm.tbPower.FieldValues['M'+inttostr(TAction(sender).Tag)] then
      ShowWindows(TAction(sender).Tag)
    else begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

procedure TfrmMain.PlanManageExecute(Sender: TObject);
begin
   ShowWindows(TAction(sender).Tag);

end;

procedure TfrmMain.PurchaseOrderExecute(Sender: TObject);
begin
      ShowWindows(TAction(sender).Tag)

end;

procedure TfrmMain.CustomerManageExecute(Sender: TObject);
begin
      ShowWindows(TAction(sender).Tag)
end;

procedure TfrmMain.OtherInputExecute(Sender: TObject);
begin
      ShowWindows(TAction(sender).Tag)

end;

procedure TfrmMain.OtherOutExecute(Sender: TObject);
begin
      ShowWindows(TAction(sender).Tag)
end;

procedure TfrmMain.ExportformExecute(Sender: TObject);
begin
    if dm.tbPower.FieldValues['M927'] then
      ShowWindows(TAction(sender).Tag)
    else begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

end.

⌨️ 快捷键说明

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