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

📄 pfm_databack.pas

📁 POS收银系统
💻 PAS
字号:
unit pfm_databack;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons,pvar_lib, Db, DBTables, CheckLst;

type
  Tfm_databack = class(TForm)
    GroupBox1: TGroupBox;
    Memo1: TMemo;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    Table1: TTable;
    Table2: TTable;
    BatMove1: TBatchMove;
    CkLBox1: TCheckListBox;
    BBtnSelall: TBitBtn;
    BBtnNoall: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BBtnSelallClick(Sender: TObject);
    procedure BBtnNoallClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fm_databack: Tfm_databack;

implementation

{$R *.DFM}
var
stable,stabledes:TStringlist;
procedure Tfm_databack.FormCreate(Sender: TObject);
var
i:integer;
begin
    label1.Caption:='上次备份数据时间'+InitRead2('备份数据','时间','无');
        stable:=TStringlist.create;
     stabledes:=Tstringlist.create;
     stable.Add('t_bmxx');
     stabledes.Add('部门信息表');
     stable.Add('t_ckxx');
     stabledes.Add('仓库信息表');
    // stable.Add('t_datadict');
    // stabledes.Add('下拉数据表');
     stable.Add('t_fendianxx');
     stabledes.Add('分店信息表');
     stable.Add('t_gysxx');
     stabledes.Add('供应商信息表');
     stable.Add('t_gzxx');
     stabledes.Add('柜组信息表');
     stable.Add('t_khxx');
     stabledes.Add('客户信息表');
     stable.Add('t_spbmlb');
     stabledes.Add('商品编码对照表');
     stable.Add('t_spxx');
     stabledes.Add('商品信息表');
     stable.Add('t_stocksp');
     stabledes.Add('库存信息表');
     stable.Add('t_user');
     stabledes.Add('系统用户信息表');
     stable.Add('t_userright');
     stabledes.Add('用户操作权限表');
     stable.Add('t_ygxx');
     stabledes.Add('员工信息表');
     stable.Add('TAB_chinesename');
     stabledes.Add('部门信息表');
     stable.Add('tab_fdtcd');
     stabledes.Add('分店申请退仓单');
     stable.Add('tab_fdthd');
     stabledes.Add('分店申请提货单');
     stable.Add('tab_xsrz');
     stabledes.Add('销售日志表');
     stable.Add('tb_jhd');
     stabledes.Add('进货入库单');
     stable.Add('tb_jhdmx');
     stabledes.Add('进货入库明细单');
     stable.Add('tb_mdtcd');
     stabledes.Add('门店退仓单');
     stable.Add('tb_mdtcdmx');
     stabledes.Add('门店退仓明细单');
     stable.Add('tb_pfd');
     stabledes.Add('批发单');
     stable.Add('tb_pfdmx');
     stabledes.Add('批发明细单');
     stable.Add('tb_sptuihuod');
     stabledes.Add('商品退货单');
     stable.Add('tb_sptuihuodmx');
     stabledes.Add('商品退货明细单');
     stable.Add('tb_syd');
     stabledes.Add('仓库损溢单');
     stable.Add('tb_sydmx');
     stabledes.Add('仓库损溢明细单');
     stable.Add('tb_thd');
     stabledes.Add('分店提货单');
     stable.Add('tb_thdmx');
     stabledes.Add('分店提货明细单');
     stable.Add('tb_tjd');
     stabledes.Add('商品调价单');
     stable.Add('tb_tjdmx');
     stabledes.Add('商品调价明细单');
     stable.Add('tb_tuihuod');
     stabledes.Add('客户退货单');
     stable.Add('tb_tuihuodmx');
     stabledes.Add('客户退货明细单');
     stable.Add('tb_yfkcl');
     stabledes.Add('应付款处理单');
     stable.Add('tb_yfkmx');
     stabledes.Add('应付款明细单');
     stable.Add('tb_yskcl');
     stabledes.Add('应收款处理单');
     stable.Add('tb_yskmx');
     stabledes.Add('应收款明细单');
     stable.Add('tb_zengpind');
     stabledes.Add('赠品单');
     stable.Add('tb_zengpindmx');
     stabledes.Add('赠品明细单');
     stable.add('t_optrecord');
     stabledes.Add('操作日志表');
     for i:=0 to stable.count-1 do
     begin
        cklbox1.Items.Add(stabledes.strings[i]);
     end;

end;

procedure Tfm_databack.BitBtn1Click(Sender: TObject);
var
i,cnt1:integer;
begin
    if application.MessageBox(pchar('备份数据将花费较长的时间,确定要备份当前所有数据'),
        pchar('注意'),MB_OKCANCEL)<>IDOK then
    begin
        exit;
    end;
      cnt1:=0;
     table1.Databasename:='posdb';
     batmove1.mode:=batcopy;
     batmove1.Source:=table1;
     batmove1.Destination:=table2;
     for i:=0 to stable.count-1 do
     begin
        if  cklbox1.Checked[i]=true then
        begin
            memo1.lines.add('正在备份【'+stabledes.strings[i]+'】......');
            table1.tablename:=stable.Strings[i];
            table2.tablename:='backdata\'+stable.Strings[i];
            batmove1.Execute;
            cnt1:=cnt1+1;
        end;
     end;
     if cnt1=0 then exit;
    memo1.lines.add('数据库备份成功!共有'+inttostr(cnt1)+'个数据库表备份');
    Initsave2('备份数据','时间',datetimetostr(date()));
    label1.caption:='上次备份数据时间'+datetimetostr(date());
    AddOptRecord('数据库备份,共备份'+inttostr(cnt1)+'个数据库表');
end;

procedure Tfm_databack.BitBtn2Click(Sender: TObject);
var
i,cnt1:integer;
begin
    if application.MessageBox(pchar('恢复以前备份数据会将本次数据清除,确定要恢复上次备份数据?'),
        pchar('注意'),MB_OKCANCEL)<>IDOK then
    begin
        exit;
    end;
     cnt1:=0;
     table2.Databasename:='posdb';
     batmove1.mode:=batcopy;
     batmove1.Source:=table1;
     batmove1.Destination:=table2;
     for i:=0 to stable.count-1 do
     begin
        if  cklbox1.Checked[i]=true then
        begin
            memo1.lines.add('正在恢复【'+stabledes.strings[i]+'】......');
            table2.tablename:=stable.Strings[i];
            table1.tablename:='backdata\'+stable.Strings[i];
            batmove1.Execute;
            cnt1:=cnt1+1;
        end;
     end;
     if cnt1=0 then exit;
    memo1.lines.add('数据库恢复成功!共有'+inttostr(cnt1)+'个数据库表');
    //Initsave2('备份数据','时间',datetimetostr(date()));
    //label1.caption:='上次备份数据时间'+datetimetostr(date());
    AddOptRecord('数据库恢复,共有'+inttostr(cnt1)+'个数据库表');
end;

procedure Tfm_databack.BBtnSelallClick(Sender: TObject);
var
i:integer;
begin
    for i:=0 to cklbox1.items.count-1 do
    begin
        cklbox1.Checked[i]:=true;
    end;

end;

procedure Tfm_databack.BBtnNoallClick(Sender: TObject);
var
i:integer;
begin
    for i:=0 to cklbox1.items.count-1 do
    begin
        cklbox1.Checked[i]:=false;
    end;
end;

end.

⌨️ 快捷键说明

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