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

📄 main.pas

📁 这是一个信息处理系统的功能选单,包括了基础信息录入处理输出的整个过程
💻 PAS
📖 第 1 页 / 共 5 页
字号:
             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 + -