📄 agentstatefrm.~pas
字号:
unit AgentStateFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, ComCtrls, StdCtrls, Buttons,dbtables,systemdm, ImgList;
type
TForm_AgetState = class(TForm)
Panel2: TPanel;
LV_AgentState: TListView;
Btn_Refresh: TBitBtn;
Btn_Exit: TBitBtn;
Panel1: TPanel;
Panel3: TPanel;
LV_WorkState: TListView;
ImageList: TImageList;
procedure Btn_RefreshClick(Sender: TObject);
procedure Btn_ExitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure GetAgentState;
function GetName(Str: String): String;
function GetState(StateID: Integer): String;
public
{ Public declarations }
end;
var
Form_AgetState: TForm_AgetState;
implementation
{$R *.DFM}
{ TForm_AgetState }
procedure TForm_AgetState.GetAgentState;
var
I: Integer;
begin
with TQuery.Create(nil)do
try
Close;
DatabaseName := SysDM.DBMain.DatabaseName;
Sql.Text := Format('Select * From PhoneLine where hostname like ''%s''',['zx%']);//is not null';
Open;
LV_AgentState.Items.Clear;
for I := 0 to RecordCount - 1 do
begin
LV_AgentState.Items.Add;
LV_AgentState.Items.Item[I].Caption := FieldByName('HostName').AsString;
LV_AgentState.Items.Item[I].ImageIndex := 0;
LV_AgentState.Items.Item[I].SubItems.Add(FieldByName('WorkID').AsString);
LV_AgentState.Items.Item[I].SubItems.Add(GetName(FieldByName('WorkID').AsString));
LV_AgentState.Items.Item[I].SubItems.Add(GetState(FieldByName('Status').AsInteger));
LV_AgentState.Items.Item[I].SubItems.Add(FieldByName('IPAddress').AsString);
Next;
end;
Close;
Sql.Text := 'Select * From AgentState';
Open;
Lv_WorkState.Items.Clear;
for I := 0 to RecordCount - 1 do
begin
LV_WorkState.Items.Add;
LV_WorkState.Items.Item[I].Caption := FieldByName('HostName').AsString;
LV_WorkState.Items.Item[I].ImageIndex := 0;
LV_WorkState.Items.Item[I].SubItems.Add(FieldByName('WorkID').AsString);
LV_WorkState.Items.Item[I].SubItems.Add(GetName(FieldByName('WorkID').AsString));
if FieldByName('State').AsString = '1' then
LV_WorkState.Items.Item[I].SubItems.Add('在岗')
else
LV_WorkState.Items.Item[I].SubItems.Add('不在岗');
LV_WorkState.Items.Item[I].SubItems.Add(FormatDateTime('YYYY-MM-DD HH:NN:SS',FieldByName('OperateTime').AsDateTime));
LV_WorkState.Items.Item[I].SubItems.Add(FieldByName('IpAddress').AsString);
Next;
end;
finally
Free;
end;
end;
function TForm_AgetState.GetName(Str: String): String;
begin
with TQuery.Create(nil)do
try
Close;
DataBaseName := SysDM.DBMain.DatabaseName;
Sql.Text := Format('Select WorkName from SysLogin where WorkID = ''%s''',[Str]);
Open;
Result := FieldByName('WorkName').AsString;
finally
Free;
end;
end;
function TForm_AgetState.GetState(StateID: Integer): String;
begin
case StateID of
-1: Result := '不在系统中';
0:Result := '签出';
1:Result := '空闲';
2:Result := '示忙';
3:Result := '通话';
4:Result := '监听';
5:Result := '初始语音通道';
6:Result := '呼叫遇忙';
end;
end;
procedure TForm_AgetState.Btn_RefreshClick(Sender: TObject);
begin
GetAgentState;
end;
procedure TForm_AgetState.Btn_ExitClick(Sender: TObject);
begin
Close;
end;
procedure TForm_AgetState.FormCreate(Sender: TObject);
begin
GetAgentState;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -