📄 systemfrm.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 + -