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

📄 sys800_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit Sys800_01;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ToolWin, ExtCtrls, Grids, Wwdbigrd, Wwdbgrid, Db, 
  ADODB, dxExEdtr, dxDBGrid, dxTL, dxDBCtrl, dxCntner, ActnList, wwfltdlg,
  wwDialog, Wwlocate, Wwintl, StdCtrls, Buttons, dxDBTL, dxDBTLCl, dxGrClms,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
  TSys800_01Form = class(TForm)
    OpenDialog1: TOpenDialog;
    dsSys800: TDataSource;
    qrySys800: TADOQuery;
    Panel2: TPanel;
    Image2: TImage;
    lblTitle: TLabel;
    Bevel1: TBevel;
    bbtnInstall: TBitBtn;
    bbtnOk: TBitBtn;
    bbtnExit: TBitBtn;
    Label1: TLabel;
    bbtnDelete: TBitBtn;
    dxDBGrid1: TdxDBGrid;
    dxDBGrid1FName: TdxDBGridColumn;
    dxDBGrid1FInstall: TdxDBGridCheckColumn;
    bbtnProxy: TBitBtn;
    qrySys800FNo: TIntegerField;
    qrySys800FCode: TWideStringField;
    qrySys800FName: TWideStringField;
    qrySys800FFile: TWideStringField;
    qrySys800FRegID: TWideStringField;
    qrySys800FTimes: TWideStringField;
    qrySys800FInstall: TBooleanField;
    qrySys800FIsSys: TBooleanField;
    qrySys800FUsers: TIntegerField;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure bbtnInstallClick(Sender: TObject);
    procedure bbtnOkClick(Sender: TObject);
    procedure bbtnExitClick(Sender: TObject);
    procedure bbtnDeleteClick(Sender: TObject);
    procedure dxDBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure dxDBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure bbtnProxyClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure qrySys800CalcFields(DataSet: TDataSet);
  private
    procedure SetInterface;
    { Private declarations }
  public
    ASetupFile:string;  //安装文件
    { Public declarations }
  end;

var
  Sys800_01Form: TSys800_01Form;

implementation

uses CommFun, SYSDATA, Sys800_02, Sys900_01;

{$R *.DFM}

procedure TSys800_01Form.SetInterface;
begin
  Font.Name:=AFontName;
  Caption:=GetDBString('SYS80001001');  //添加删除模块
  lblTitle.Caption:=GetDBString('SYS80001002');  //浩晖企业管理系统  可以添加或删除浩晖企业管理系统的功能模块
  Label1.Caption:=GetDBString('SYS80001003');   //要添加或删除某个功能模块,请单击旁边的复选框。要添加第三方的功能模块,请单击“从磁盘安装(&A)...”按钮。
  bbtnInstall.Caption:=GetDBString('SYS80001004');  //从磁盘安装(&A)...
  bbtnOk.Caption:=GetDBString('SYS80001005');  //确定(&O)
  bbtnExit.Caption:=GetDBString('SYS80001006');  //退出(&X)
  bbtnDelete.Caption:=GetDBString('SYS80001007');  //删除(&D)
  bbtnProxy.Caption:=GetDBString('SYS80001010');  //设置代理(&P)
  SetDefaultProxy;
end;

procedure TSys800_01Form.FormCreate(Sender: TObject);
begin
  SetInterface;
  qrySys800.Open;
end;

procedure TSys800_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  qrySys800.Close;
  Action:=caFree;
end;

procedure TSys800_01Form.bbtnInstallClick(Sender: TObject);
var
  AFile:string;
begin
//从磁盘安装(&A)...
  OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
  OpenDialog1.Filter:=GetDBString('SYS80001008');  //'安装文件(*.hwp)|*.hwp'
  OpenDialog1.Title:=GetDBString('SYS80001009');  //程序安装
  if OpenDialog1.Execute then
  begin
    AFile:=ExtractFileName(OpenDialog1.FileName);
    if AFile='CommPackage.bpl' then
    begin
      ShowMsg('UMS10000131');  //无效的模块文件
      Abort;
    end;
    if qrySys800.Locate('FName',AFile,[]) then
    begin
      ShowMsg('UMS10000132');  //选择的模块文件已存在
      Abort;
    end;
    qrySys800.Append;
    qrySys800.FieldByName('FCode').AsString:=Copy(ExtractFileName(OpenDialog1.FileName),1,3);  //模块编号
    qrySys800.FieldByName('FName').AsString:=GetPackageDescription(PChar(ExtractFileName(OpenDialog1.FileName)));  //模块名称
    qrySys800.FieldByName('FFile').AsString:=ExtractFileName(OpenDialog1.FileName);  //文件名称
    qrySys800.FieldByName('FRegID').AsString:='';  //注册码
    qrySys800.FieldByName('FTimes').AsString:='k[';  //运行次数
    qrySys800.FieldByName('FInstall').AsBoolean:=True;  //已安装否
    qrySys800.FieldByName('FIsSys').AsBoolean:=False;  //系统模块
    qrySys800.FieldByName('FUsers').AsInteger:=0;  //用户数量
    qrySys800.Post;

    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('update SYS500D set S500D_006'+GetBoolean(True)+' where S500D_002 like '+''''+qrySys800.FieldByName('FCode').AsString+'%'+'''');
    SYSDM.qryQuery.ExecSQL;
  end;
end;

procedure SetSys800(AFlag:Boolean;AModule:string);
begin
  if not Sys800_01Form.qrySys800.Active then Exit;
  if Sys800_01Form.qrySys800.IsEmpty then Exit;
  Sys800_01Form.qrySys800.Edit;
  Sys800_01Form.qrySys800.FieldByName('FInstall').AsBoolean:=AFlag;
  Sys800_01Form.qrySys800.Post;
  SetupProgram(AFlag,AModule);
end;

//从网上安装
procedure SetupFromInternet(AFile:string);
var
  AFlag:Boolean;
  AModule:string;
begin
  //安装失败,安装所需的文件没有找到,是否要直接从网上下载安装
  if ShowDialog(AFile+': '+GetDBString('UMS10000134'),1)=IDYES then
  begin
    if not GetOnlineStatus then
    begin
      ShowMsg('UMS10000194');  //计算机没有连接到因特网,请检查是否已上网或网线是否通畅
      Sys800_01Form.qrySys800.Edit;
      Sys800_01Form.qrySys800.FieldByName('FInstall').AsBoolean:=False;
      Sys800_01Form.qrySys800.Post;
      AFlag:=Sys800_01Form.qrySys800.FieldByName('FInstall').AsBoolean;
      AModule:=Sys800_01Form.qrySys800.FieldByName('FCode').AsString;
      SetSys800(AFlag,AModule);
      Abort;
    end; 
    Sys800_01Form.ASetupFile:=Sys800_01Form.qrySys800.FieldByName('FFile').Value;
    Sys800_02Form:=TSys800_02Form.Create(Application);
    Sys800_02Form.Show;
    if not Sys800_02Form.GetDownloadFile then
    begin
      Sys800_02Form.Close;
      Sys800_02Form.Update;
      ShowMsg(GetDBString('UMS10000195')+Sys800_01Form.ASetupFile,1);  //没有存在所需的文件:
      Sys800_01Form.qrySys800.Edit;
      Sys800_01Form.qrySys800.FieldByName('FInstall').AsBoolean:=False;
      Sys800_01Form.qrySys800.Post;
      AFlag:=Sys800_01Form.qrySys800.FieldByName('FInstall').AsBoolean;
      AModule:=Sys800_01Form.qrySys800.FieldByName('FCode').AsString;
      SetSys800(AFlag,AModule);
    end else
    begin
      Sys800_02Form.Close;
      Sys800_02Form.Update;
    end;
  end else  //不从网上安装
  begin
    AFlag:=Sys800_01Form.qrySys800.FieldByName('FInstall').AsBoolean;
    AModule:=Sys800_01Form.qrySys800.FieldByName('FCode').AsString;
    SetSys800(AFlag,AModule);
  end;
end;

procedure TSys800_01Form.bbtnOkClick(Sender: TObject);
var
  AFlag:Boolean;
  AModule,AName,AFile:string;
begin
//确定(&O)
  Screen.Cursor:=crHourGlass;
  qrySys800.First;
  while not qrySys800.Eof do
  begin
    AName:=qrySys800.FieldByName('FName').Value;    //模块名称
    AFile:=qrySys800.FieldByName('FFile').Value;    //文件名称
    if qrySys800.FieldByName('FInstall').AsBoolean then     //选择安装
    begin
      if not LoadPack(AFile) then
      begin
        AFile:=qrySys800.FieldByName('FFile').AsString;
        ShowMsg(AFile+': '+GetDBString('UMS10000629'),1);  //安装失败,安装所需的文件没有找到
        Abort;
      end;
    end;
    //修改安装程序标识
    AFlag:=qrySys800.FieldByName('FInstall').AsBoolean;
    AModule:=qrySys800.FieldByName('FCode').AsString;
    SetupProgram(AFlag,AModule);

    qrySys800.Next;
  end;
  qrySys800.UpdateBatch;

  ShowMsg('UMS10000139');  //添加删除模块成功,请重新登录系统!
  ModalResult:=1;
  Screen.Cursor:=crDefault;
end;

procedure TSys800_01Form.bbtnExitClick(Sender: TObject);
begin
//退出(&X)
  Close;
end;

procedure TSys800_01Form.bbtnDeleteClick(Sender: TObject);
begin
//删除(&D)
  if qrySys800.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;

  if qrySys800.FieldByName('FIsSys').AsBoolean then
  begin
    ShowMsg('UMS10000130');  //该模块为系统模块,不能删除
    Abort;
  end;

  if ShowDialog('UMS10000117')=IDYES then  //确定要卸载该模块
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('update SYS500D set S500D_006=0 where S500D_002 like '+''''+qrySys800.FieldByName('FCode').AsString+'%'+'''');
    SYSDM.qryQuery.ExecSQL;
    qrySys800.Delete;
  end;
end;

procedure TSys800_01Form.dxDBGrid1MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if dxDBGrid1.GetColumnAt(X,Y)=nil then Exit;
  if dxDBGrid1.GetColumnAt(X,Y).Field.FieldName='FInstall' then
  begin
    if qrySys800.IsEmpty then Exit;
    qrySys800.Edit;
    qrySys800.FieldByName('FInstall').AsBoolean:=not qrySys800.FieldByName('FInstall').AsBoolean;
    qrySys800.Post;
  end;
end;

procedure TSys800_01Form.dxDBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key=#32 then  //vk_space
  begin
    if qrySys800.IsEmpty then Exit;
    qrySys800.Edit;
    qrySys800.FieldByName('FInstall').AsBoolean:=not qrySys800.FieldByName('FInstall').AsBoolean;
    qrySys800.Post;
  end;
end;

procedure TSys800_01Form.bbtnProxyClick(Sender: TObject);
begin
//代理(&P)
  Sys900_01Form:=TSys900_01Form.Create(Application);
  Sys900_01Form.ShowModal;
end;

procedure TSys800_01Form.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=VK_F1 then
    HtmlHelp(Application.Handle, AHelpFile+'::/'+AProgramID+'.htm', $0000, nil);
end;

procedure TSys800_01Form.qrySys800CalcFields(DataSet: TDataSet);
begin
  qrySys800FName.Value:=GetDBString(qrySys800FCode.Value);
end;

initialization
  RegisterClass(TSys800_01Form);

finalization
  UnRegisterClass(TSys800_01Form);

end.

⌨️ 快捷键说明

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