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

📄 u_dcxml.~pas

📁 本软件用DELPHI开发
💻 ~PAS
字号:
unit U_DcXML;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, Buttons, StdCtrls, ImgList, DB, ADODB,
  Gauges, DateUtils,inifiles, CoolTrayIcon;

type
  Tfrm_DcXML = class(TForm)
    Panel1: TPanel;
    StatusBar1: TStatusBar;
    Panel2: TPanel;
    Panel3: TPanel;
    ImageList1: TImageList;
    ProgressBar1: TProgressBar;
    Gauge1: TGauge;
    RadioGroup1: TRadioGroup;
    Panel4: TPanel;
    Label7: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    RdoZDBF: TRadioButton;
    RdoSDBF: TRadioButton;
    RdoFSBF: TRadioButton;
    DtpTime: TDateTimePicker;
    CboHour: TComboBox;
    Panel5: TPanel;
    btnClose: TSpeedButton;
    btnStart: TSpeedButton;
    btnStop: TSpeedButton;
    timer_dsbf: TTimer;
    Timer_sjdbf: TTimer;
    MemDoc: TMemo;
    GroupBox1: TGroupBox;
    chk_SetZdxx: TCheckBox;
    Cmb_day: TComboBox;
    Label3: TLabel;
    Label5: TLabel;
    Memo1: TMemo;
    Splitter1: TSplitter;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SaveMemo: TSaveDialog;
    CoolTrayIcon: TCoolTrayIcon;
    Timer1: TTimer;
    ADOQuery1: TADOQuery;
    procedure btnCloseClick(Sender: TObject);
    procedure btnStartClick(Sender: TObject);
    procedure timer_dsbfTimer(Sender: TObject);
    procedure Timer_sjdbfTimer(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure RdoZDBFClick(Sender: TObject);
    procedure RdoFSBFClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure RdoSDBFClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure CoolTrayIconClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer1Timer(Sender: TObject);
    procedure ComboBox1Enter(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    AqrySjjz,AqryCtais,AqryFwsk,AqrySub,AqryCtais1,AqryCtais2:TADOQuery;
    ADOConnSjjz , ADOConnCtais , ADOConnFwsk :TADOConnection;

    function backdata: boolean;
    {
    功能:数据备份主函数
    }
    function DBConn:boolean;
    {
     功能:数据库连接
    }
  public
    { Public declarations }
  end;
var
  frm_DcXML: Tfrm_DcXML;

implementation
uses shareunit;
var
  FlagDs: Boolean;    //定时备份标志,表明是否在备份。
  StrFSDTime: string; //分时段时间信息
  row:integer;
  SKQSRQ,SKJZRQ:string;

{$R *.dfm}

procedure Tfrm_DcXML.btnCloseClick(Sender: TObject);
begin
  if btnStart.Enabled then
    close
  else
    share.HintMsgBox('请先停止运行后再退出!');    
end;

procedure Tfrm_DcXML.btnStartClick(Sender: TObject);
begin
  if RdoSDBF.Checked then
  begin
    backdata;
  end;

  if RdoZDBF.Checked then
  begin
    timer_dsbf.Enabled := true;
    FlagDs := False;
  end;

  if RdoFSBF.Checked then
  begin
    FlagDs := False;
    StrFSDTime := FormatDateTime('hhmm', now());
    Timer_sjdbf.Enabled := True;
  end;

  btnstart.Enabled := false;
  btnstop.Enabled := true;
end;

procedure Tfrm_DcXML.timer_dsbfTimer(Sender: TObject);
var
  StrDsTime: string;
  StrDsDay:String;
begin
  if FlagDs = True then exit; //判定是否已经在备份
  StrDsTime := FormatDateTime('hhmm', DtpTime.DateTime);
  StrDsDay := FormatDateTime('DD',Date());
  if (StrDsTime = FormatDateTime('hhmm', now())) AND (StrDsDay = Cmb_day.Text) then
  begin
    FlagDs := true;
    backdata;
    FlagDs := False;
  end;
end;

procedure Tfrm_DcXML.Timer_sjdbfTimer(Sender: TObject);
begin
  if FlagDs = True then exit; //判定是否已经在备份
  if FormatDateTime('hhmm', now()) = StrFSDTime then
  begin
    FlagDs := true;
    backdata;
    StrFSDTime := FormatDateTime('hhmm', inchour(now(), StrToint(CboHour.text)));
    FlagDs := False;
  end;

end;

procedure Tfrm_DcXML.btnStopClick(Sender: TObject);
begin
  timer_dsbf.Enabled := false;
  Timer_sjdbf.Enabled := false;
  btnStart.Enabled := True;
  btnStop.Enabled := false;
end;

procedure Tfrm_DcXML.RdoZDBFClick(Sender: TObject);
begin
  dtptime.Enabled := true;
  cmb_day.Enabled := true;
  cbohour.Enabled := false;
end;

procedure Tfrm_DcXML.RdoFSBFClick(Sender: TObject);
begin
  dtptime.Enabled := false;
  cmb_day.Enabled := false;
  cbohour.Enabled := true;
end;

procedure Tfrm_DcXML.RdoSDBFClick(Sender: TObject);
begin
  dtptime.Enabled := false;
  cmb_day.Enabled := false;
  cbohour.Enabled := false;
end;

procedure Tfrm_DcXML.FormCreate(Sender: TObject);
begin
end;

//数据库连接
function Tfrm_DcXML.DBConn:boolean;
var
  FileName :String;
  Sjjz_UserId,Sjjz_UserPass,Sjjz_DataSource:String;     //SJJZ连接设置
  Ctais_UserId,Ctais_UserPass,Ctais_DataSource:String;  //CTAIS连接设置
  Fwsk_UserId,Fwsk_UserPass,Fwsk_DataSource:String;     //FWSK连接设置
begin
  Result := False;
  FileName:=ExtractFilePath(application.exeName);
  if FileName[length(FileName)]<>'\' then
    FileName := Trim(FileName) +'\';
  FileName := FileName+'data.ini';
  Share.Ini_ReadString(FileName,'Data','userid',Sjjz_UserId);
  Share.Ini_ReadString(FileName,'Data','userpass',Sjjz_UserPass);
  Share.Ini_ReadString(FileName,'Data','datasource',Sjjz_DataSource);

  Share.Ini_ReadString(FileName,'ctais','userid',Ctais_UserId);
  Share.Ini_ReadString(FileName,'ctais','userpass',Ctais_UserPass);
  Share.Ini_ReadString(FileName,'ctais','datasource',Ctais_DataSource);

  Share.Ini_ReadString(FileName,'fwsk','userid',Fwsk_UserId);
  Share.Ini_ReadString(FileName,'fwsk','userpass',Fwsk_UserPass);
  Share.Ini_ReadString(FileName,'fwsk','datasource',Fwsk_DataSource);

  ADOConnSjjz := TADOConnection.Create(nil);
  ADOConnSjjz.ConnectionString := 'Provider=MSDAORA.1;Password='
      + Sjjz_UserPass +';Persist Security Info=True;User ID='
      + Sjjz_UserId +';Data Source=' + Sjjz_DataSource + ';Extended Properties=""';
  ADOConnSjjz.LoginPrompt := False;
  try
    ADOConnSjjz.Open();
  except
    MemDoc.Lines.Add('[' + FormatDateTime('YYYY-MM-DD HH-MM-SS',now())
          + ']数据集中数据库连接失败,请检查!');
    exit;
  end;

  ADOConnCtais := TADOConnection.Create(nil);
  ADOConnCtais.ConnectionString :='Provider=MSDAORA.1;Password='
      + Ctais_UserPass + ';User ID=' + Ctais_UserId + ';Data Source='
      + Ctais_DataSource + ';Persist Security Info=True;Extended Properties=""';
  ADOConnCtais.LoginPrompt := False;
  try
    ADOConnCtais.Open();
  except
    MemDoc.Lines.Add('[' + FormatDateTime('YYYY-MM-DD HH-MM-SS',now())
          + ']CTAIS数据库连接失败,请检查!');
    exit;
  end;

  ADOConnFwsk := TADOConnection.Create(nil);
  ADOConnFwsk.ConnectionString :='Provider=MSDAORA.1;Password='
      + Fwsk_UserPass + ';User ID=' + Fwsk_UserId + ';Data Source='
      + Fwsk_DataSource + ';Persist Security Info=True;Extended Properties=""';
  ADOConnFwsk.LoginPrompt := False;
  try
    ADOConnFwsk.Open();
  except
    MemDoc.Lines.Add('[' + FormatDateTime('YYYY-MM-DD HH-MM-SS',now())
          + ']防伪税控数据库连接失败,请检查!');
    exit;
  end;
  
  AqrySjjz := TADOQuery.Create(nil);
  AqryCtais := TADOQuery.Create(nil);
  AqryFwsk := TADOQuery.Create(nil);
  AqrySub := TADOQuery.Create(nil);
  AqryCtais1 := TADOQuery.Create(nil);
  AqryCtais2 := TADOQuery.Create(nil);

  AqrySjjz.Connection :=ADOConnSjjz;
  AqryCtais.Connection := ADOConnCtais;
  AqryFwsk.Connection := ADOConnFwsk;
  AqrySub.Connection :=ADOConnSjjz;
  AqryCtais1.Connection := ADOConnCtais;
  AqryCtais2.Connection := ADOConnCtais;

  Result := True;

end;
//数据处理主函数
function Tfrm_DcXML.backdata: boolean;
begin
  if not DBConn then
    exit;
  if chk_SetZdxx.Checked then
    //SetZdxx;
end;


procedure Tfrm_DcXML.SpeedButton2Click(Sender: TObject);
begin
  MemDoc.Clear;
end;

procedure Tfrm_DcXML.SpeedButton1Click(Sender: TObject);
begin
  if SaveMemo.Execute then
  begin
    SaveMemo.Filter :='文本文件 (*.TXT)|*.TXT';
    MemDoc.Lines.SaveToFile(SaveMemo.FileName+'.TXT');
    share.HintMsgBox('文件'+SaveMemo.FileName+'保存成功!');
  end;
end;

procedure Tfrm_DcXML.SpeedButton3Click(Sender: TObject);
begin
  CoolTrayIcon.HideMainForm;
end;

procedure Tfrm_DcXML.CoolTrayIconClick(Sender: TObject);
begin
  CoolTrayIcon.ShowMainForm;
end;

procedure Tfrm_DcXML.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  CoolTrayIcon.Free;
end;

procedure Tfrm_DcXML.Timer1Timer(Sender: TObject);
begin
  StatusBar1.Panels[1].Text := datetimetostr(now);
end;

procedure Tfrm_DcXML.ComboBox1Enter(Sender: TObject);
begin
  share.SelectSQL(aqrysjjz,'select * from sj_jbxx');
  while not aqrysjjz.Eof do
  begin
    aqrysjjz.Next;
  end;
end;

procedure Tfrm_DcXML.FormDestroy(Sender: TObject);
begin
  FreeAndNil(ADOConnSjjz);
  FreeAndNil(ADOConnCtais);
  FreeAndNil(ADOConnFwsk);
  FreeAndNil(AqrySjjz);
  FreeAndNil(AqryCtais);
  FreeAndNil(AqryFwsk);
  FreeAndNil(AqrySub);
  FreeAndNil(AqryCtais1);
  FreeAndNil(AqryCtais2);
end;

end.

⌨️ 快捷键说明

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