📄 ufrmmain.pas
字号:
//==============================================================================
// $修订版本号: 1.0 $
// $日期 : 2006年7月20日 星期日 11:38:52 $
// $版本号 : 1.0.0 Alpha 1 $
//
// 中山东区公安地理指挥系统的功能实现。
//
//
// $BeginLog$
// $Endlog $
// $Copyright 版权所有 (c)2005 TRANSIT 保留所有权利$
//==============================================================================
{:
中山东区公安地理指挥系统的功能实现。
}
unit ufrmMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, dxStatusBar, ExtCtrls, dxNavBar, cxControls,
cxContainer, cxEdit, cxLabel, dxDockPanel, dxDockControl, uBaseSystemNavForm,
ImgList, uBaseDBLog4SQL, IniFiles,
auHTTP, uBaseDBForm,
auAutoUpgrader, Menus, IdBaseComponent, IdAntiFreezeBase, IdAntiFreeze,
jpeg, DBClient, ufrmBaseDB_User,
ufrmBaseDBDataExport, ufrmBaseDBDataImport, ufrmBaseDBDataReport,
uBaseDBDataModule, uBaseDBUtils, ufrmBaseDBSimpleView,
ufrmBaseDBSQLLog, ufrmBaseGISMapView, ufrmBaseGISLayer, ufrmBaseDBLogon,
uITaxiServiceODMPClientLogistic, uBaseODMDefs,
uBaseODMProtocalUtils,
ufrmTaxiCall_CT_Driver,
ufrmTaxiCall_CT_Vehicle,
ufrmCaller,
ufrmBaseDBUser,
ufrmTaxiCall_CT_Customer,
ufrmTAXICALL_CT_AutoPoints,
ufrmTaxiCall_CT_TaskResponse,
ufrmTaxiCall_CT_Task, dxNavBarBase, dxNavBarCollns,
uTaxiCallUtils;
const
APP_CAPTION = '电召客户端';
type
TfrmMain = class(TBaseSystemNavForm)
dxDockSiteMain: TdxDockSite;
dxLayoutDockSite1: TdxLayoutDockSite;
dxLayoutDockSite3: TdxLayoutDockSite;
dxDockPanelWelcome: TdxDockPanel;
Image1: TImage;
lblSystemName: TcxLabel;
lblSystemName1: TcxLabel;
dxDockPnlNavi: TdxDockPanel;
dxNavBar: TdxNavBar;
dxStatusBar: TdxStatusBar;
dxDockingManager1: TdxDockingManager;
ilMain: TImageList;
AutoUpgraderPro: TauAutoUpgrader;
MainMenu1: TMainMenu;
IdAntiFreeze1: TIdAntiFreeze;
tmCaller: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tmCallerTimer(Sender: TObject);
// 座席客户端
private
password : string;
procedure doOnHint(_status_str: string);
procedure doOnConnectResult(_sender: TObject; _is_connect: Boolean);
end;
var
frmMain: TfrmMain;
implementation
uses ufrmTAXICALL_Utils;
{$R *.dfm}
//------------------------------------------------------------------------------
// 窗口事件
//------------------------------------------------------------------------------
procedure TfrmMain.FormCreate(Sender: TObject);
var
p_app_global : PBaseDBAppGlobal;
client_dataset : TClientDataSet;
logon_str : string;
GroupID : Integer;
begin
iniFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
readIni;
// 设置应用程序名称
AppName := 'ETTaxiCall';
baseDBUtilReadINI(AppName);
// 设置日志模式
BaseDBLog4SQLGlobal.UseLog4SQLOption := basedblog4sqluselogoptionAlways;
// 设置应用程序标题
Application.Title := APP_CAPTION +
baseDBUtilGetVersionFromFile(Application.ExeName);
NavBar := dxNavBar;
case gBaseDBOfficeStyle of
0:
begin
NavBar.View := 13;
end;
1:
begin
NavBar.View := 4;
end;
end;
// 填写导航窗口属性
DockPanelWelcome := dxDockPanelWelcome;
StatusBar := dxStatusBar;
WelcomeLabel := lblSystemName;
WelcomeLabel1 := lblSystemName1;
SystemCaption := APP_CAPTION;
Caption := Caption + ' ' + baseDBUtilGetVersionFromFile(Application.ExeName);
// 增加导航项目组
addNavGroup('电召业务管理', 107); //7
addNavGroup('数据统计报表', 79);
addNavGroup('数据导入导出', 102);
addNavGroup('系统权限管理', 30);
addNavGroup('地理信息管理', 19);
addNavGroup('基础数据配置', 30); //6
// 增加导航项目
// 数据报表
AddNavFunction('任务管理', 11 , 0, TfrmTaxiCall_CT_Task);
AddNavFunction('电召应答', 12 , 0, TfrmTaxiCall_CT_TaskResponse);
AddNavFunction('客人管理', 10 , 0, TfrmTaxiCall_CT_Customer);
AddNavFunction('统一制表', 13 , 1, TfrmBaseDBDataReport);
AddNavFunction('数据导入', 102, 2, TfrmBaseDBDataImport);
AddNavFunction('数据导出', 103, 2, TfrmBaseDBDataExport);
AddNavFunction('用户类型', 107 , 3, TfrmBaseDBSimpleView,
TfrmBaseDBSimpleView.GetParamPointer('BaseDB_UserGroup', '用户类型'));
AddNavFunction('用户组管理', 36, 3, TfrmBaseDBUser);
AddNavFunction('操作日志', 28 , 3, TfrmBaseDBSQLLog);
AddNavFunction('电子地图', 5 , 4, TfrmBaseGISMapView,
TfrmBaseGISMapView.GetParamPointer
);
AddNavFunction('图层管理', 108 , 4, TfrmBaseGISLayer);
AddNavFunction('客人年龄段', 107 , 5, TfrmBaseDBSimpleView,
TfrmBaseDBSimpleView.GetParamPointer('CT_AgeSegment', '客人年龄段'));
AddNavFunction('司机管理', 103, 5, TfrmTaxiCall_CT_Driver);
AddNavFunction('车辆管理', 103, 5, TfrmTaxiCall_CT_Vehicle);
AddNavFunction('座席管理', 103, 5, TfrmBaseDB_User);
AddNavFunction('自定义站点', 103, 5, TfrmTAXICALL_CT_AutoPoints);
// 进行用户身份认证
// 进行用户身份认证
if TfrmBaseDBLogon.Logon(
Self,
APP_CAPTION,
gUpgradeUrl,
Copy(baseDBUtilGetVersionFromFile(Application.ExeName), 16, 3)
) then
begin
p_app_global := BaseDBGlobal.AppGlobalByName(AppName);
g_app_global := BaseDBGlobal.AppGlobalByName(AppName);
logon_str := Format(' [%s:%s]', [
p_app_global^.UserGroupName,
p_app_global^.UserName
]);
client_dataset := TClientDataSet.Create(nil);
TBaseDBForm.QueryFromSQL(AppName, Format('Select * from BaseDB_User where ID = %d', [p_app_global^.UserID]),
// client_dataset);
// client_dataset := TBaseDBForm.OpenSelectFromDataset(AppName,
// Format('Select * from BaseDB_User where ID = %d', [p_app_global^.UserID]));
if Assigned(client_dataset) then
begin
password := client_dataset.fieldByName('Password').AsString;
GroupID := client_dataset.fieldByName('GroupID').AsInteger;
BaseDBLog4SQLGlobal.UserGroupID := GroupID;
end;
dxStatusBar.Panels[0].Text := dxStatusBar.Panels[0].Text + logon_str;
// 创建ODMP座席窗口
frmCaller := TfrmCaller.Create(nil);
frmCaller.OnHint := doOnHint;
frmCaller.OnConnectResult := doOnConnectResult;
frmCaller.InitialODMP(gODMPServerIP, gODMPServerPort);
frmCaller.ConnectODMP;
dxStatusBar.Panels.Items[0].Text := '正在连接电召服务';
tmCaller.Enabled := True;
frmCaller.userSeatName := p_app_global^.UserName;
frmCaller.iniBaseGisMapCall;
DoItem(4, 0);
// frmCaller.iniBaseGisMapCall;
dxDockPnlNavi.AutoHide := True;
// 根据用户类型设置功能界面
InitialViewByUserType(client_dataset, GroupID, AppName, NavBar, AppName);
end;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
writeIni;
iniFile.Free;
end;
//------------------------------------------------------------------------------
// 私有方法 -- ODMP触发事件
//------------------------------------------------------------------------------
{: ODMP服务端回复的指令触发事件。
@param _status_id 回复指令的状态信息
}
procedure TfrmMain.doOnHint(_status_str: string);
begin
dxStatusBar.Panels.Items[0].Text := frmCaller.userSeatName + _status_str;
end;
procedure TfrmMain.doOnConnectResult(_sender: TObject; _is_connect: Boolean);
begin
if _is_connect then
begin
dxStatusBar.Panels.Items[0].Text := '正在登录电召服务';
frmCaller.clientLogistic.AuthODMP('BCM_Seat_Logon', frmCaller.userSeatName, Trim(password), False, False, True);
tmCaller.Enabled := False;
end
else begin
dxStatusBar.Panels.Items[0].Text := '电召服务断线';
tmCaller.Enabled := True;
end;
end;
procedure TfrmMain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Shift = [ssCtrl] then
if Key = 83 then
frmCaller.DisplayPnlCaller;
end;
procedure TfrmMain.tmCallerTimer(Sender: TObject);
begin
dxStatusBar.Panels.Items[0].Text := '正在重新连接电召服务';
frmCaller.ConnectODMP;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -