📄 mainform.pas
字号:
unit mainform;
interface
uses
tc08a32, Channels, windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, Grids, ExtCtrls, ComCtrls, cxControls,
cxContainer, cxEdit, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, DB, cxDBData, cxLookAndFeels, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxGridCustomView, cxGrid, Buttons, cxProgressBar;
type
TMainfrm = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
pgcControl: TPageControl;
tsControl: TTabSheet;
tsChannel: TTabSheet;
stategrid: TStringGrid;
statMain: TStatusBar;
Image1: TImage;
Label1: TLabel;
Bevel2: TBevel;
pgcDetails: TPageControl;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
telebox: TListBox;
Bevel1: TBevel;
trbVolume: TTrackBar;
Label2: TLabel;
Label3: TLabel;
Progressbar: TcxProgressBar;
btnStartdun: TBitBtn;
BitBtn1: TBitBtn;
tsDundetails: TTabSheet;
tsCalllog: TTabSheet;
dbtvDundetails: TcxGridDBTableView;
lvDundetails: TcxGridLevel;
cxgrdDundetails: TcxGrid;
cxgrdDunlog: TcxGrid;
dbtvDunlog: TcxGridDBTableView;
lvDunlog: TcxGridLevel;
dbtvDundetailsSbbh: TcxGridDBColumn;
dbtvDundetailsYhmc: TcxGridDBColumn;
dbtvDundetailsYhdz: TcxGridDBColumn;
dbtvDundetailsPhoneNumber: TcxGridDBColumn;
dbtvDundetailsCallCount: TcxGridDBColumn;
dbtvDundetailsCallDatetime: TcxGridDBColumn;
dbtvDundetailsCallStatus: TcxGridDBColumn;
dbtvDundetailsWaterfee: TcxGridDBColumn;
dbtvDundetailsSewage: TcxGridDBColumn;
dbtvDundetailsTotalsum: TcxGridDBColumn;
dbtvDundetailsCbrq: TcxGridDBColumn;
dbtvDundetailsLatedays: TcxGridDBColumn;
dbtvDunlogLogID: TcxGridDBColumn;
dbtvDunlogChannel: TcxGridDBColumn;
dbtvDunlogChannleType: TcxGridDBColumn;
dbtvDunlogAction: TcxGridDBColumn;
dbtvDunlogDescription: TcxGridDBColumn;
dbtvDunlogResult: TcxGridDBColumn;
dbtvDunlogLogDatetime: TcxGridDBColumn;
LookAndFeelController: TcxLookAndFeelController;
trbSpeed: TTrackBar;
Label4: TLabel;
Label5: TLabel;
dtpStart: TDateTimePicker;
Label6: TLabel;
dtpEnd: TDateTimePicker;
Bevel3: TBevel;
chkAutoCall: TCheckBox;
tmrAutocall: TTimer;
Label7: TLabel;
edtPrefix: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer2Timer(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure pgcDetailsChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure tmrAutocallTimer(Sender: TObject);
procedure chkAutoCallClick(Sender: TObject);
private
function GetVoiceSpeed: Integer;
function GetVoiceVolume: Integer;
function GetEnddunTime: TTime;
function GetStartdunTime: TTime;
function GetPrefixDialnum: string;
{ Private declarations }
public
property VoiceSpeed: Integer read GetVoiceSpeed default 50;
property VoiceVolume: Integer read GetVoiceVolume default 50;
property Startdun: TTime read GetStartdunTime;
property Enddun: TTime read GetEnddunTime;
property PrefixNum: string read GetPrefixDialnum;
end;
var
Mainfrm: TMainfrm;
implementation
uses CallerDM;
{$R *.DFM}
procedure TMainfrm.FormCreate(Sender: TObject);
begin
InitSystem();
end;
{-------------------------------------------------------------------------------
Procedure: TMainfrm.FormClose
Author: Xsp
DateTime: 2006.05.09
Arguments: Sender: TObject; var Action: TCloseAction
Result: None
Popose: 初始化语音卡
-------------------------------------------------------------------------------}
procedure TMainfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
relesystem();
end;
{-------------------------------------------------------------------------------
Procedure: TMainfrm.Timer2Timer
Author: Xsp
DateTime: 2006.05.09
Arguments: Sender: TObject
Result: None
Popose: 维持语音卡对语音的播放及振铃的检测
-------------------------------------------------------------------------------}
procedure TMainfrm.Timer2Timer(Sender: TObject);
begin
push_play;
feedsigfunc;
end;
{-------------------------------------------------------------------------------
Procedure: TMainfrm.Timer1Timer
Author: Xsp
DateTime: 2006.05.09
Arguments: Sender: TObject
Result: None
Popose: 语音卡业务处理流程的轮询,循环处理每个通道的请求
-------------------------------------------------------------------------------}
procedure TMainfrm.Timer1Timer(Sender: TObject);
var
channelno: integer;
begin
drawgrid;
for channelno := 0 to TTSChannel - 1 do
begin
if {(channelno mod 2 = 0) and} dmCaller.Startdunflag then
begin
DunWaterfee(channelno);
// 只有在没有播放语音时出现忙音才将号码放入队列再次催缴
if (sig_checkbusy(channelno) = 1) and not Channel[channelno].PlayingWaterfee then
begin
if channel[channelno].dtmf <> '' then
begin
AddItemtoTellist(channelno);
ResetChannel(channelno);
end
end;
end;
end
end;
{-------------------------------------------------------------------------------
Procedure: TMainfrm.pgcDetailsChange
Author: Xsp
DateTime: 2006.05.09
Arguments: Sender: TObject
Result: None
Popose: 辅助事件,用于刷新催缴资料
-------------------------------------------------------------------------------}
procedure TMainfrm.pgcDetailsChange(Sender: TObject);
begin
with dmCaller do
case pgcDetails.ActivePageIndex of
0 : RefreshDundetails;
1 : RefreshDunlog;
end;
end;
procedure TMainfrm.FormShow(Sender: TObject);
begin
pgcDetailsChange(Sender);
end;
function TMainfrm.GetVoiceSpeed: Integer;
begin
Result := trbSpeed.Position;
end;
function TMainfrm.GetVoiceVolume: Integer;
begin
Result := trbVolume.Position;
end;
//------------------------------------------------------------------------------
// 根据设定的催缴时段检查当前是否应该进行催缴欠费
//------------------------------------------------------------------------------
procedure TMainfrm.tmrAutocallTimer(Sender: TObject);
var
Anowtime: string;
begin
Anowtime := TimeToStr(Time);
if (Anowtime >= TimeToStr(Startdun)) and (Anowtime <= TimeToStr(Enddun)) then
dmCaller.Startdunflag := True
else
dmCaller.Startdunflag := False;
end;
function TMainfrm.GetEnddunTime: TTime;
begin
Result := dtpEnd.Time;
end;
function TMainfrm.GetStartdunTime: TTime;
begin
Result := dtpStart.Time;
end;
procedure TMainfrm.chkAutoCallClick(Sender: TObject);
begin
tmrAutocall.Enabled := chkAutoCall.Checked;
end;
{-------------------------------------------------------------------------------
Procedure: TMainfrm.GetPrefixDialnum
Author: Xsp
DateTime: 2006.05.09
Arguments: None
Result: string
Popose: 获取呼出号码的前缀
-------------------------------------------------------------------------------}
function TMainfrm.GetPrefixDialnum: string;
begin
if StrToIntDef(edtPrefix.Text, -1) <> -1 then
Result := Trim(edtPrefix.Text)
else
Result := '';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -