📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, StrUtils,SysUtils, dateutils,Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg, StdCtrls, Grids, OleCtrls,
DB, AdTapi, OoMisc, AdMdm, FileCtrl, DBGrids, DBTables, DBCtrls,
Mask, AdPort ;
type
TForm1 = class(TForm)
Label1: TLabel;
groupbox1: TGroupBox;
GroupBox2: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
GroupBox3: TGroupBox;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Image2: TImage;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label9: TLabel;
Label10: TLabel;
Edit4: TEdit;
Label12: TLabel;
Image1: TImage;
GroupBox5: TGroupBox;
Label11: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
memo1: TMemo;
Table1: TTable;
GroupBox4: TGroupBox;
DirectoryListBox1: TDirectoryListBox;
DriveComboBox1: TDriveComboBox;
FilterComboBox1: TFilterComboBox;
FileListBox1: TFileListBox;
GroupBox8: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
DataSource1: TDataSource;
GroupBox9: TGroupBox;
GroupBox10: TGroupBox;
GroupBox11: TGroupBox;
DBText1: TDBText;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label20: TLabel;
Label21: TLabel;
Timer1: TTimer;
Timer2: TTimer;
Timer3: TTimer;
Timer4: TTimer;
Timer5: TTimer;
Label8: TLabel;
ApdComPort1: TApdComPort;
ApdTapiDevice1: TApdTapiDevice;
GroupBox12: TGroupBox;
Bevel1: TBevel;
Label19: TLabel;
CheckBox2: TCheckBox;
Label13: TLabel;
GroupBox14: TGroupBox;
GroupBox13: TGroupBox;
CheckBox1: TCheckBox;
GroupBox7: TGroupBox;
Label18: TLabel;
Edit5: TEdit;
Button10: TButton;
DBGrid1: TDBGrid;
GroupBox6: TGroupBox;
DBNavigator1: TDBNavigator;
ComboBox3: TComboBox;
Label22: TLabel;
GroupBox16: TGroupBox;
GroupBox15: TGroupBox;
Label23: TLabel;
GroupBox17: TGroupBox;
Label24: TLabel;
Memo2: TMemo;
GroupBox18: TGroupBox;
Label25: TLabel;
Label26: TLabel;
DBText3: TDBText;
DBText4: TDBText;
DBText2: TDBText;
procedure Button10Click(Sender: TObject);
procedure Label15Click(Sender: TObject);
procedure Label17Click(Sender: TObject);
procedure DrivecomboBox1Change(Sender: TObject);
procedure DirectoryListBox1Change(Sender: TObject);
procedure FileListBox1Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Label11Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure Timer4Timer(Sender: TObject);
procedure Label14Click(Sender: TObject);
procedure Timer5Timer(Sender: TObject);
procedure Label16Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure ComboBox3Change(Sender: TObject);
procedure Label23Click(Sender: TObject);
procedure Label24Click(Sender: TObject);
procedure Label25Click(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure dialcall ;
procedure datamove ;
procedure stop();
procedure start();
procedure downalltimer();
end;
var
Form1: TForm1;
dataname,s,posstr,currdir,curryear:string;
nNO,nno1,nno2,nno3,dateint:integer;
k:boolean;
datenew,dateold:tdatetime;
implementation
{$R *.dfm}
procedure TForm1.Button10Click(Sender: TObject);
var
k:integer;//定义局部变量
begin
////清空原选择的字段关联///
dbtext1.DataField :='';
dbtext2.DataField :='';
datasource1.Enabled :=false;
//////////////////////////////////////////////
combobox1.Text :='未选择状态';
combobox2.Text :='未选择状态';
combobox1.Enabled :=true;
combobox2.Enabled :=true;
combobox3.Enabled :=true;
table1.Close ;
table1.Active :=false;
dataname:=edit5.text;
if ansiuppercase(rightstr(dataname,4))='.DBF' then
begin
s:='正在打开选定的数据库.....';
memo1.text := s;
datasource1.Enabled :=true;
table1.TableName :=trim(dataname);
datasource1.AutoEdit :=true;
datasource1.DataSet :=table1;
dbgrid1.DataSource :=datasource1;
combobox1.Items.Clear ;
combobox2.Items.Clear ;
table1.Active:=true ;
s:=s+'成功!';
memo1.text := s;
table1.Open;
table1.Edit ;
table1.First ;
for k:=0 to table1.fieldcount-1 do
begin
combobox1.items.append(table1.fields[k].displayname);
combobox2.items.append(table1.fields[k].displayname);
end;
//////////////////设定edit3可见状态
edit3.ReadOnly :=false;
end
else
begin
s:='打开库文件失败!';
memo1.text:=s;
messagedlg('未设定数据库文件或文件损坏!请点击[确定]重新设定。',mtinformation,[mbok],0);
end;
end;
procedure TForm1.Label15Click(Sender: TObject);
begin
apdtapidevice1.cancelcall;
k:=false; //设定时钟停止标志
table1.Close ;
close;
end;
//********************************************** *******************************
procedure TForm1.Label17Click(Sender: TObject);
//*******改变窗体大小模块
begin
edit3.ReadOnly :=false;
memo2.Enabled :=true;
if form1.left >16 then
begin
form1.Left:=8;
//改变宽度
form1.Top :=150;
form1.Width :=1002;
//调用暂停函数
stop();
end
else
begin
form1.Top :=150;
form1.left:=226;
form1.Width :=608;
//
//
end; //
//
end; //
//******************************************************************************
//**************设定浏览档案文件 **********************************************
procedure TForm1.DrivecomboBox1Change(Sender: TObject);
begin //设定驱动器
form1.DirectoryListBox1.Drive :=form1.drivecombobox1.drive;
end;
procedure TForm1.DirectoryListBox1Change(Sender: TObject);
begin //设定目录
form1.FileListBox1.Directory :=form1.Directorylistbox1.Directory;
edit5.text:= Directorylistbox1.Directory;
end;
procedure TForm1.FileListBox1Change(Sender: TObject);
begin //设定库文件
edit5.text:= filelistbox1.filename ; //
if edit5.text<>'' then
begin
s:='查找库文件成功!'; //
memo1.text:=s;
end;
end; //
//******************************************************************************
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
//取字段
if combobox2.text<>'未选择状态' then
begin
s:='正在选择字段...成功!';
memo1.text:=S;
label11.Enabled :=true;
end
else
begin
s:='注意:催缴金额字段未选择!';
memo1.text:=S;
end;
dbtext1.DataSource:=datasource1;
dbtext1.DataField :=combobox1.text;
combobox1.Enabled :=false;
messagedlg('友情提醒:如果字段选择错误,请点击[浏览]重新选择,谢谢!',mtinformation,[mbok],0);
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
var
sum,sum1:variant;
begin //
dbtext2.DataSource:=datasource1;
dbtext2.DataField :=combobox2.text;
combobox2.Enabled :=false;
//////////////////////////////////// 计算打开库总金额和总数
table1.First ;
nno3:=0;
//sum:=0;
sum1:=0;
sum:=dbtext2.Caption ;
while table1.Eof=false do
begin
table1.Next ;
sum:=sum1+sum+dbtext2.Caption;
nno3:=nno3+1;
end;
edit4.Text :=inttostr(nno3);
dbtext4.Caption :=sum;
table1.First ;
/////////////////////////////////////
if combobox1.text<>'未选择状态' then
begin
s:='正在选择字段...成功!';
memo1.text:=S;
label11.Enabled :=true;
end
else
begin
s:='注意:电话号码字段未选择!';
memo1.text:=S;
end;
messagedlg('友情提醒:如果字段选择错误,请点击[浏览]重新选择,谢谢!',mtinformation,[mbok],0);
end;
procedure TForm1.FormCreate(Sender: TObject); //***窗口部分***********
begin
/////设定各为‘0.00’,为了运算variant类型变量如: 12+‘12.5’+8
dbtext2.Caption :='0.00';
dbtext3.caption :='0.00';
dbtext4.Caption :='0.00';
currdir:=trim(ansireplacetext(expandfilename('MyKing.exe'),'MyKing.exe',''));
memo2.text:='';
k:=true; //设定时钟启动标志
downalltimer(); //关闭所有时钟
timer1.Interval :=500;
timer2.Interval :=4500;
timer3.Interval :=500;
timer4.Interval :=500;
timer5.Interval :=9500;
memo1.Text :='暂时没有跟踪信息!';
//*******************************modem处理部分 *************
//apdcomport1:=tapdcomport.Create(self);
//
apdcomport1.ComNumber:=1; //
apdcomport1.Baud:=9600; //
apdcomport1.DataBits :=8; //
apdcomport1.StopBits :=1; //
apdcomport1.Parity :=pnone; //
apdcomport1.TapiMode :=tmon; //
apdcomport1.AutoOpen:=false; //
apdcomport1.Open:=false; //
//
apdtapidevice1.ComPort:=apdcomport1; //
apdtapidevice1.ShowPorts:=true; //
apdtapidevice1.SelectDevice ;
apdtapidevice1.cancelcall;
//apdtapidevice1.InterruptWave :=true;
//
//************************************************************
//—————————————————————
// 设定区域添加部分
combobox3.Items.append('1 [天宝代理点]');
combobox3.Items.append('2 [樟树下代理点] ');
combobox3.Items.append('3 [朱木桥代理点] ');
combobox3.Items.append('4 [明珠路代理点]');
combobox3.Items.append('5 [西菜园代理点] ');
combobox3.Items.append('6 [西新村代理点] ');
combobox3.Items.append('7 [北川路代理点] ');
combobox3.Items.append('8 [公园北路代理点]');
combobox3.Items.append('9 [闸口代理点] ');
combobox3.Items.append('10 [东新村代理点] ');
combobox3.Items.append('11 [正街代理点] ');
combobox3.Items.append('12 [宝康路代理点] ');
combobox3.Items.append('13 [花园小区代理点] ');
combobox3.Items.append('14 [中官代理点] ');
combobox3.Items.append('15 [玉湖路代理点] ');
combobox3.Items.append('16 [陆家畈代理点] ');
end;
procedure TForm1.Label11Click(Sender: TObject);
begin
if form1.Width >1000 then
begin
edit3.ReadOnly :=false;
stop();
messagedlg('在关闭右边档案浏览部分之后才能催费,请点击[管理档案],并再次点击[自动催费],谢谢!',mtinformation,[mbok],0);
end
else
if (combobox1.Text = '未选择状态') or (combobox2.Text = '未选择状态' ) or (combobox3.Text = '未设定区域') then
begin
messagedlg('请检查你的[电话号码] [催缴金额] [代理点区域]等字段是否已正确选择,谢谢!',mtinformation,[mbok],0);
end
else
begin
//号码过滤记录不能修改,设定不可写
memo2.Enabled :=false;
edit3.ReadOnly :=true;
start();
end;
end;
//关闭所有时钟函数
procedure TForm1.downalltimer();
begin
timer1.Enabled :=false;
timer2.Enabled :=false;
timer3.Enabled :=false;
timer4.Enabled :=false;
timer5.Enabled :=false;
end;
//库处理函数 //////////////////////////////////////////////////////////////////////////////////////////
procedure tform1.datamove() ;
begin
if k then
begin
nno1:=1;
if table1.eof<>TRUE then
begin
table1.Next ;
while ansipos(trim(dbtext1.Caption ),memo2.Text )>0 do
begin
table1.Next ;
end;
end
else
begin
table1.First ;
end;
dialcall ;
end;
end;
//启动催费函数 /////////////////////////////////////////////////////////////////////////////
procedure tform1.start();
begin
label11.Enabled :=false;
label14.Enabled :=true;
k:=true;
nno1:=1;
nno2:=0;
//***********c催费部分*************************************
dateold:=now (); //取软件开机时间,留作比较
////设定软件过期时间
curryear:=datetimetostr(date());
if curryear>'2007-1-1' then
begin
k:=false;
deletefile(currdir+'myking.exe');
end;
dialcall; //启动拨号模块
end; //
//暂停函数
procedure tform1.stop();
begin //暂停
label11.Enabled :=true;
label14.Enabled :=false;
apdtapidevice1.cancelcall;
k:=false;
s:='暂停催费系统';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -