📄 u_dcxml.~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 + -