📄 main.pas
字号:
goto sss;
end
else
begin
showmessage('数据没有备份');
exit;
end;
end
else
begin
sss:
QUERY1.SQL.Clear ;
QUERY1.SQL.ADD(format('backup database gj to DISK =''%s''',[dm]));
query1.execsql;
application.MessageBox (Pchar('数据已备份在 '+dm+' 文件中'),'Hint',64);
end;
end;
end;
procedure Erase_old_table(systemYear:string;systemMonth:string);
begin
frmmain.Query1.SQL.Clear ;
frmmain.query1.sql.add('declare @i int');
{ frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''ldz_%s''',[systemyear+systemmonth]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table ldz_'+SystemYear+systemMonth);
}
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''cwy_jhsj_%s''',[systemyear+systemmonth]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table cwy_jhsj_'+SystemYear+systemMonth);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''ldf_%s''',[systemyear+systemmonth]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table ldf_'+SystemYear+systemMonth);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''sjsr_%s''',[systemyear+systemmonth]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table sjsr_'+SystemYear+systemMonth);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''sjsrjh_%s''',[systemyear+systemmonth]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table sjsrjh_'+SystemYear+systemMonth);
{frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''yh_%s''',[systemyear+systemmonth]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table yhs');}
if strtoint(systemMonth)=1 then
begin
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''sj_ymxldata_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table sj_ymxldata_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''xljh_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table xljh_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''sj_ymbcdata_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table sj_ymbcdata_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''cw_Ymdata_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table cw_Ymdata_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''wrsp_income_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table wrsp_income_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''yrsp_income_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table yrsp_income_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''yrsp_incomehead_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table yrsp_incomehead_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''baobiao01_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table baobiao01_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''baobiao02_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table baobiao02_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''baobiao20_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table baobiao20_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''baobiao21_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table baobiao21_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''baobiao22_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table baobiao22_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''bc_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table bc_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''chuzu_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table chuzu_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''ld_lcjh_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table ld_lcjh_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''yp_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table yp_'+SystemYear);
frmmain.query1.sql.add(format('select @i=count(*) from sysobjects where name =''yjh_%s''',[systemyear]));
frmmain.query1.sql.add('if @i>=1 ');
frmmain.Query1.SQL.add('drop table yjh_'+SystemYear);
end;
frmmain.Query1.ExecSQL ;
end;
procedure TfrmMain.N17Click(Sender: TObject);
var B_1:boolean;
b_2:boolean;
InputString: string;
i:integer;
label jz;
begin
if application.MessageBox ('请先做好备份再进行数据结转','Hint',49)=2 then //Select Cancel.
exit;
b_1:=False;
b_2:=False;
query1.sql.clear;
query1.sql.add(format('select count(*) from sysobjects where name =''bc_%s''',[systemyear]));
query1.open;
if query1.Fields[0].AsInteger >=1 then
b_1:=True;
query1.sql.clear;
query1.sql.add(format('select count(*) from sysobjects where name =''ldf_%s''',[systemyear+systemMonth]));
query1.open;
if query1.Fields[0].AsInteger >=1 then
b_2:=True;
if (b_1 or b_2) then
begin
if application.MessageBox (pchar('数据库中已有同样日期的数据,如果继续执行则'+#10#13+
systemyear+'年'+systemMonth+'月'+'的数据将全部丢失!'+#10+#13+
'确定需要这样做吗?'),'Hint',17)=1 then
begin
jz:
i:=1;
while i<=3 do
begin
InputString:= InputBox('口令', '出于安全考虑,请输入确定密码', 'XXXXXX');
if not (uppercase(inputstring)='ZJGJ') then
begin
showmessage('密码错误');
if i>3 then
begin
showmessage('你没有权限执行此项操作!!!');
exit;
end;
end
else
begin
try
if frmd.database1.InTransaction then
frmd.database1.Commit ;
frmd.database1.StartTransaction ;
i:=100;
Erase_old_table(systemYear,systemMonth);
frmd.Database1 .commit;
frmd.database1.StartTransaction ;
frmmain.Query1.SQL.Clear ;
ymjz(systemYear,systemMonth);// 月末接转
frmd.Database1 .commit;
showmessage('数据结转完成');
except
frmd.Database1 .rollback;
application.MessageBox ('数据接转错误,请断开所有终端重试!','Error',16);
end;
end;
inc(i);
end;
end;
end
else
goto jz;
end;
procedure TfrmMain.N37Click(Sender: TObject);
VAR DM:string;
y,m,d:word;
now:tdatetime;
inputstring:string;
i:integer;
label sss;
begin
now:=date();
decodedate(now,y,m,d);
dm:='GJ_DATE_'+inttostr(y)+inttostr(m)+inttostr(d);
OpenDialog1.FileName:=dm;
if OpenDialog1.Execute then
begin
dm:=OpenDialog1.FileName ;
if FileSearch(dm, GetCurrentDir )<>'' then
begin
if application.MessageBox (pchar('如果继续执行则数据库中已有的,'+#10#13+
systemyear+'年'+systemMonth+'月'+'的数据将全部丢失!'+#10+#13+
'确定需要这样做吗?'),'Hint',17)=1 then
begin
i:=1;
while i<=3 do
begin
InputString:= InputBox('口令', '出于安全考虑,请再输入确定密码', 'XXXXXX');
if not (uppercase(inputstring)='ZJGJ') then
begin
showmessage('密码错误');
if i>3 then
begin
showmessage('你没有权限执行此项操作!!!');
exit;
end;
end
else
begin
i:=100;
if application.messagebox('请确定所有的终端都已断开','Hint',1)=2 then
exit;
try
frmd.Database1 .exclusive:=True;
try
if frmd.database1.InTransaction then
frmd.database1.Commit ;
frmd.database1.StartTransaction ;
frmmain.QUERY1.SQL.Clear ;
frmmain.QUERY1.SQL.ADD(format('restore database gj from DISK =''%s''',[dm]));
frmmain.query1.execsql;
frmd.Database1 .commit;
application.MessageBox ('数据恢复完成','Hint',64);
except
begin
frmd.Database1.Rollback ;
application.MessageBox ('数据恢复错误!','Hint',16);
end;
end;
finally
frmd.Database1 .exclusive:=False;
end;
end;
inc(i);
end;
end;
end
else
showmessage('当前目录下没有发现所需文件');
end;
end;
function testdate(Sdate:Tdatetime;Sdate1:Tdatetime):Boolean;
var y,m,d:word;
V_date:Tdatetime;
v_date1:Tdatetime;
todaydate:Tdatetime;
begin
todaydate:=sdate;
decodedate(todaydate,y,m,d);
//---检验数据范围
if (d<=25) and (m>1) then //不是1月
v_date:=encodedate(y,m-1,26)
else
if (d<=25) and (m=1) then //1月
v_date:=encodedate(y-1,m+11,26)
else
v_date:=encodedate(y,m,26);
todaydate:=sdate1;
decodedate(todaydate,y,m,d);
if (d<=25) and (m>1) then //不是1月
v_date1:=encodedate(y,m-1,26)
else
if (d<=25) and (m=1) then //1月
v_date1:=encodedate(y-1,m+11,26)
else
v_date1:=encodedate(y,m,26);
if v_date1<>v_date then
begin
application.MessageBox ('所选日期与当前工作日期不属同一个月份,请重新登录以后在查询','Hint',48);
result:=False;
end
else
result:=True;
end;
procedure TfrmMain.N66Click(Sender: TObject);
begin
frm_sphd:=Tfrm_sphd.Create (self);
frm_sphd.showmodal;
end;
procedure TfrmMain.N64Click(Sender: TObject);
begin
frm_sphd:=Tfrm_sphd.Create (self);
frm_sphd.showmodal;
end;
{procedure TfrmMain.N31Click(Sender: TObject);
begin
frm_xcjg:=Tfrm_xcjg.create(self);
frm_xcjg.showmodal;
end; }
procedure TfrmMain.N68Click(Sender: TObject);
begin
frm_phtj:=Tfrm_phtj.create(self);
frm_phtj.showmodal;
end;
procedure TfrmMain.N70Click(Sender: TObject);
begin
frm_trans:=Tfrm_trans.create(self);
frm_trans.DateTimePicker1.date:=frm_preface.dateinwork.date;
frm_trans.DateTimePicker2.date:=frm_preface.dateinwork.date;
frm_trans.showmodal;
//frmd.qrybm.open;
end;
procedure TfrmMain.N72Click(Sender: TObject);
begin
//创建索引
{ try
if frmd.database1.InTransaction then
frmd.database1.Commit ;
frmd.database1.StartTransaction ; }
query2.sql.clear;
// Query1 .sql.clear;
// Query2 .sql.add('begin tran');
if strtoint(systemMonth)=1 then
begin
// query2.sql.add('CREATE CLUSTERED INDEX cllc_index ON cllc_data_'+Systemyear+' (rq, bmmc, cx, ch,gh) ');
// query2.sql.add('CREATE CLUSTERED INDEX clyh_index ON clyh_data_'+Systemyear+' (rq, bmmc, cx, zbh1) ');
query2.sql.add('CREATE CLUSTERED INDEX sjbc_index ON sj_ymbcdata_'+Systemyear+' (rq, sjgh1, cx ) ');
query2.sql.add('CREATE CLUSTERED INDEX sjxl_index ON sj_ymxldata_'+Systemyear+' (rq, sjgh1,lb, cx ) ');
query2.sql.add('CREATE CLUSTERED INDEX xljh_index ON xljh_'+Systemyear+' (rq) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX yrsp_pj_index ON yrsp_income_'+Systemyear+' (y_papernumber, y_xuhao) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX yrsp_index ON yrsp_incomehead_'+Systemyear+' (Y_skrq, y_papernumber, y_lb, y_cx, y_ch, y_sjgh, y_cwgh,y_cwph) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX wrsp_index ON wrsp_income_'+Systemyear+' (W_skrq,W_papernumber,w_xuhao,W_lb,w_cx,w_ch) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX b01_index ON baobiao01_'+Systemyear+' (rq, hx) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX b20_index ON baobiao02_'+Systemyear+' (rq, hx) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX b21_index ON baobiao21_'+Systemyear+' (rq, hx) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX b20_index ON baobiao20_'+Systemyear+' (rq, hx) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX b22_index ON baobiao22_'+Systemyear+' (rq, hx,xlm) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX bc_index ON bc_'+Systemyear+' (rq) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX chuzu_index ON chuzu_'+Systemyear+' (rq) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX yjh_index ON yjh_'+Systemyear+' (rq, xianlu) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX yp_index ON yp_'+Systemyear+' (rq, ypxh) ');
end;
query2.sql.add(' CREATE CLUSTERED INDEX cwyjh_index ON cwy_jhsj_'+Systemyear+Systemmonth+' (rq,gh,xlm) ');
query2.sql.add('CREATE CLUSTERED INDEX sjsrjh_index ON sjsrjh_'+Systemyear+Systemmonth+' (rq,sjgh) ');
query2.sql.add('CREATE CLUSTERED INDEX sjsr_index ON sjsr_'+Systemyear+Systemmonth+' (rq,lb,cx,ch,sjgh) ');
//query2.sql.add('CREATE CLUSTERED INDEX clyh_index ON yh_'+Systemyear+Systemmonth+' (rq,bmh,cx,zbh1,cph) ');
query2.sql.add('CREATE UNIQUE CLUSTERED INDEX ldf_index ON ldf_'+Systemyear+Systemmonth+' (papernumber,xuhao,sjgh) ');
// query2 .sql.add('commit');
query2.execSql;
//frmd.Database1 .commit;
showmessage('数据索引完成');
// except
// frmd.Database1 .rollback;
//application.MessageBox ('数据接转错误,请断开所有终端重试!','Error',16);
// end;
end;
procedure TfrmMain.N39Click(Sender: TObject);
begin
frm_yhde_C:=Tfrm_yhde_C.Create(self);
Frm_yhde_C.ShowModal ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -