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

📄 unit1.pas

📁 自动催费.能够应用在很多领域,如果需要请和我联系,
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -