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

📄 systemfrm.pas

📁 仓储管理系统学习。大家共同探讨学习。大家共同进步。
💻 PAS
字号:
unit SystemFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, Grids, DBGrids, ExtCtrls, StdCtrls, DBCtrls,
  Db, ADODB, FileCtrl, Buttons;


type
  TfrmSystem = class(TForm)
    qryKc: TADOQuery;
    qryLog: TADOQuery;
    dskc: TDataSource;
    dsLog: TDataSource;
    
    dbngRk: TDBNavigator;
    grdKc: TDBGrid;
    grdLog: TDBGrid;
    dtpLog: TDateTimePicker;


    pgcMain: TPageControl;
    shtRkcssz: TTabSheet;
    shtXtrz: TTabSheet;
    shtSjbfyhf: TTabSheet;

    pnlXtrzTop: TPanel;
    pnlRkBottom: TPanel;
    pnlSjbfyhfBottom: TPanel;
    
    mmoLog: TDBMemo;
    mmoComment: TMemo;


    btnRestore: TButton;
    btnBackup: TButton;

    lblXtrj: TLabel;


    procedure btnBackupClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure dtpLogChange(Sender: TObject);
    procedure qryKcAfterPost(DataSet: TDataSet);
    procedure btnRestoreClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


implementation

{$R *.DFM}

uses
  ConstUnt;

procedure TfrmSystem.btnBackupClick(Sender: TObject);
var
  SelDir: string;
begin
  //弹出文件选择窗口,要求用户确定备份后的文件名和存放路径
  SelectDirectory(SelLocation, '', SelDir);
  //调用类LogonInf的sjbf函数备份数据库ckgl和jbda
  if LogonInf.Sjbf(SelDir) then
    MessageBox(Handle, PChar(SjbfComplete), MsgI, Msg1IBTN);
end;

procedure TfrmSystem.FormShow(Sender: TObject);
var
  PqryTemp: ^TADOQuery;
  I: Byte;
begin
  PqryTemp := @qryKc;
  //设置操作日志表中的日期字段值
  dtpLog.DateTime := Now;
  //依次设置与库存表、操作日志表相对应的查询组件的Connection属性,
  //使其连接到数据库ckgl,并返回两个表中的所有记录
  for I := 0 to 1 do
  begin
    PqryTemp^.Connection := LogonInf.dbCkgl;
    PqryTemp^.Open;
    Inc(PqryTemp);
  end;
  //设置默认前缀为grdKc、LogonInf
  with grdKc, LogonInf do
  begin
    //设置默认前缀为pgcMain
    with pgcMain do
      for I := 0 to 2 do
        Pages[I].TabVisible := FunctionLst.Strings[15 + I] = 'True';
    //依次设置grdKc网格组件中的各列的值liebiao
    Columns[0].PickList := CklbLst;
    Columns[1].PickList := HwlbLst;
    Columns[2].PickList := HwggLst;
    Columns[3].PickList := PpcdLst;
    Columns[4].PickList := JldwLst;
  end;
  //调用TfrmSystem窗体中的dtpLogChange函数来设置qryLog查询组件的Parameters属性值,使qryLog查询组件返回操作时间等于符合条件的操作记录
  dtpLogChange(dtpLog);
end;

procedure TfrmSystem.dtpLogChange(Sender: TObject);
begin
  with qryLog do
  begin
    //关闭查询
    Close;
    //设置qryLog查询组件的Parameters属性值,使qryLog查询组件
    //返回操作时间等于dtpLog组件中日期值的操作记录
    Parameters[0].Value := DateToStr(dtpLog.Date);
    //打开查询,返回符合所设条件的操作记录
    Open;
  end;
end;

procedure TfrmSystem.qryKcAfterPost(DataSet: TDataSet);
begin
  with LogonInf do
    UpdateLog(AppTitle + ' - 库存初始化操作');
end;

procedure TfrmSystem.btnRestoreClick(Sender: TObject);
begin
  //设置默认前缀TOpenDialog
  with TOpenDialog.Create(Self) do
    try
      Options := Options + [ofAllowMultiSelect];
      //设置窗口标题
      Title := '数据恢复 Ctrl + 鼠标 -- 多选';
      //设置窗口的文件过滤器
      Filter := '数据库|*.mdb|所有文件|*.*';
      if Execute then
        //调用类LogonInf的Sjhf函数恢复数据库
        if  LogonInf.Sjhf(TStringList(Files)) then
        //恢复数据库成功
        begin
          MessageBox(Handle, PChar(SjhfComplete), MsgI, Msg1IBTN);
          //终止程序运行
          Application.Terminate;
          //重新启动仓库管理系统
          WinExec('Ckgl.exe', 0);
        end;
    finally
      Free;
    end;
end;

end.

⌨️ 快捷键说明

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