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

📄 clntmain.pas

📁 计量功能 事件记录 购电提醒 欠费报警 负荷控制 自检功能 显示功能 用户插卡错误信息显示
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit ClntMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBClient, MConnect, ComCtrls, ToolWin, StdCtrls, Buttons, Menus,
  Registry, DBTables, NetImsServer_TLB, ExtCtrls, FieldDef, ConstDef;

type
  TFrmClntMain = class(TForm)
    DCOMCntToSever: TDCOMConnection;
    ClientDataSet: TClientDataSet;
    MainMenu: TMainMenu;
    MeuCustom: TMenuItem;
    MeuICCard: TMenuItem;
    MeuOp: TMenuItem;
    MeuSysinfo: TMenuItem;
    ItmSoftInfo: TMenuItem;
    GrpBoxOpStatus: TGroupBox;
    ItmNewCust: TMenuItem;
    GrpBoxRapidBtn: TGroupBox;
    ItmChangePsw: TMenuItem;
    ItmAsk: TMenuItem;
    LabName: TLabel;
    LabMark: TLabel;
    LabClass: TLabel;
    LabCompy: TLabel;
    LabAccount: TLabel;
    ItmRefresh: TMenuItem;
    Session: TSession;
    ItmChkCardDev: TMenuItem;
    N1: TMenuItem;
    ItmCustBuy: TMenuItem;
    ItmEdtCustInfo: TMenuItem;
    N2: TMenuItem;
    ItmReadCard: TMenuItem;
    ItmPatch: TMenuItem;
    ItmUnBuy: TMenuItem;
    ItmCustClose: TMenuItem;
    GrpBoxSys: TGroupBox;
    BtnOpLog: TButton;
    BtnCloseSys: TButton;
    N3: TMenuItem;
    ItmCreateChkCard: TMenuItem;
    N4: TMenuItem;
    ItmCustChk: TMenuItem;
    ItmClearChkCard: TMenuItem;
    N5: TMenuItem;
    N7: TMenuItem;
    ImgNewCust: TImage;
    ImgChgPsw: TImage;
    ImgReadCard: TImage;
    ImgCustBuy: TImage;
    LabMsg: TLabel;
    ItmCompyIntro: TMenuItem;
    ImgSoft: TImage;
    TimActive: TTimer;
    StatusBar1: TStatusBar;
    ImgActive: TImage;

    procedure FrmCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnOpLogClick(Sender: TObject);
    procedure ItmAskClick(Sender: TObject);
    procedure ItmChangePswClick(Sender: TObject);
    procedure ItmNewCustClick(Sender: TObject);
    procedure ItmRefreshClick(Sender: TObject);
    procedure ItmChkCardDevClick(Sender: TObject);
    procedure PrdFrmClntMainIni(Sender: TObject);
    procedure PrdDCOMIni(Sender: TObject);
    procedure PrdClntDataSetIni(Sender: TObject);
    procedure PrdClntMainMenuIni(Sender: TObject; bCanUse: Boolean);
    procedure PrdClntCntResultCheck(Sender: TObject);
    Procedure PrdRemoteConnect(Sender: TObject);
    Procedure PrdRemoteLogOff(Sender: TObject);
    procedure BtnCloseSysClick(Sender: TObject);
    procedure ItmCustBuyClick(Sender: TObject);
    procedure ItmEdtCustInfoClick(Sender: TObject);
    procedure ItmPatchClick(Sender: TObject);
    procedure ItmUnBuyClick(Sender: TObject);
    procedure ItmCustCloseClick(Sender: TObject);
    procedure ItmCreateChkCardClick(Sender: TObject);
    procedure ItmCustChkClick(Sender: TObject);
    procedure ItmReadCardClick(Sender: TObject);
    procedure ItmClearChkCardClick(Sender: TObject);
    procedure ImgNewCustClick(Sender: TObject);
    procedure ImgChgPswClick(Sender: TObject);
    procedure ImgReadCardClick(Sender: TObject);
    procedure ImgCustBuyClick(Sender: TObject);
    procedure ItmSoftInfoClick(Sender: TObject);
    procedure ItmCompyIntroClick(Sender: TObject);
    procedure TimActiveTimer(Sender: TObject);
    procedure ImgActiveClick(Sender: TObject);
    procedure ImgSoftClick(Sender: TObject);
  private
    { Private declarations }
    iActive: integer;
    BmpAct: Array[1..MaxCLntSwayBmpNum] of TBitmap;
  public
    { Public declarations }
  end;

var
  FrmClntMain: TFrmClntMain;

  RecNImsInfo:RecNImsInfoType;
  bOpInUse: Boolean=False; //系统操作员是否已登记
  CntResult: CntResultType;//Remote Connect Result
  RecOpInfo: RecOpInfoType;//系统操作员信息

Procedure PrdGetNIMSInfo(var RecNImsInfo: RecNImsInfoType);
    export;far;external 'NIMSsys.dll';
Procedure PrdGetSrvHostInfo(var SrvHost: RecHostInfoType);
    export;far;external 'NIMSsys.dll';
Function bFunNImsInied: Boolean;
    export;far;external 'NIMSsys.dll';
    
implementation

uses  RWCard, OpLog, Open, Refresh, CustChk, AboutSoft, AboutCompy;

{$R *.DFM}

procedure TFrmClntMain.FrmCreate(Sender: TObject);
var
  iCount: integer;
  sParentDir,sClntDBDir,sBmpDir: string;
begin
  BorderIcons:=[biSystemMenu,biMinimize];

  bOpInUse:=False;  iActive:=0;
  FrmRWCard:=TFrmRWCard.Create(Self);//生成写卡器操作模块

  sParentDir:=ExtractFileDir(GetCurrentDir);
  sClntDBDir:=sParentDir+DefClntDirKey+'\Data';
  try
    if Session.IsAlias(DefClntAlias) then
       Session.DeleteAlias(DefClntAlias);
  finally
    if not Session.IsAlias(DefClntAlias) then
       Session.AddStandardAlias(DefClntAlias,sClntDBDir,'PARADOX');
   end;
  sBmpDir:=sParentDir+DefClntDirKey+'\Pic';
  for iCount:=1 to MaxCLntSwayBmpNum do begin
    BmpAct[iCount]:=TBitmap.Create;
    BmpAct[iCount].LoadFromFile(sBmpDir+'\Torch'+inttostr(iCount)+'.bmp');
   end;
end;

procedure TFrmClntMain.FormClose(Sender: TObject;
  var Action: TCloseAction);
var
  iCount: integer;
begin
  if bOpInUse then BtnOpLogClick(Sender)//退出时系统操作员注销
  else FrmRWCard.bFunCardDevExit; //关闭写卡器
  FrmRWCard.Free; //释放写卡器操作模块

  for iCount:=1 to MaxCLntSwayBmpNum do
     BmpAct[iCount].Free;
  if Session.IsAlias(DefClntAlias) then
     Session.DeleteAlias(DefClntAlias);
end;

procedure TFrmClntMain.FormShow(Sender: TObject);
begin
  bOpInUse:=False;
  PrdFrmClntMainIni(Sender); //初始化窗体

  PrdGetNImsInfo(RecNImsInfo);//取得Client软件信息
  PrdRemoteConnect(Sender); //登录到服务器确认软件合法性
end;

procedure TFrmClntMain.PrdFrmClntMainIni(Sender: TObject);
var
  sClassStr: String;
begin
  if bOpInUse=True then begin
    {$ifndef Def_Test}
      TimActive.Enabled:=True;
      TimActive.Interval:=400; //动画放慢
    {$endif}
   {更新系统操作界面开始}
    BtnOpLog.Caption:='操作员退出<<';
    PrdClntMainMenuIni(Sender,bOpInUse);
   {更新系统操作界面结束}
   end
   else begin
    {$ifndef Def_Test}
      TimActive.Enabled:=True;
      TimActive.Interval:=200; //动画正常
    {$endif}
    {初始化系统操作界面开始}
       CntResult:=CntNone;
       with RecOpInfo do begin
         sAccount:='';  sOpPsw:='';
         sOpName:='';   cOpClass:=DefSysNullChar;
         sOpMark:='...';
        end;
       BtnOpLog.Caption:='操作员登录>>';
       PrdDCOMIni(Sender);
       PrdClntDataSetIni(Sender);
       PrdClntMainMenuIni(Sender,bOpInUse);
    {初始化系统操作界面结束}
   end;
   LabCompy.Caption:=RecNImsInfo.sCompy;{初始化操作状态}
   LabAccount.Caption:='登录帐号: '+RecOpInfo.sAccount;
   LabName.Caption:=   '姓    名: '+RecOpInfo.sOpName;
   LabMark.Caption:=   '  ['+RecOpInfo.sOpMark+']';
   if RecOpInfo.cOpClass=DefSysOpChar then sClassStr:=DefSysOpClass
   else sClassStr:='';
   LabClass.Caption:=  '操作级别: '+sClassStr;
end;

procedure TFrmClntMain.PrdDCOMIni(Sender: TObject);
begin
  PrdGetSrvHostInfo(RecNImsInfo.SrvHost);
  with DCOMCntToSever do begin
    ComputerName:=RecNImsInfo.SrvHost.sHostName;
    Connected:=False;  LoginPrompt:=False;
    //接口名:NetImsServer.NImsSrv
    ServerGUID:=DefSrvGUID;
   end;
end;

procedure TFrmClntMain.PrdClntDataSetIni(Sender: TObject);
begin
  with FrmClntMain.ClientDataSet do begin
    Active:=False; AutoCalcFields:=False;
   end;
end;

procedure TFrmClntMain.PrdClntMainMenuIni(Sender: TObject; bCanUse: Boolean);
var
  iCount,iItemNum: integer;
begin
  iItemNum:=MainMenu.Items.Count;
  if bCanUse=True then begin
    GrpBoxRapidBtn.Caption:='快捷操作';
    LabMsg.Visible:=False;
    ImgChgPsw.Enabled:=True; // 快捷方式
    ImgChgPsw.Visible:=True;
    ImgNewCust.Enabled:=True;ImgNewCust.Visible:=True;
    ImgCustBuy.Enabled:=True;ImgCustBuy.Visible:=True;
    ImgReadCard.Enabled:=True;ImgReadCard.Visible:=True;
    ImgSoft.Enabled:=True;ImgSoft.Visible:=True;
    for iCount:=0 to iItemNum-2 do begin
      MainMenu.Items[iCount].Enabled:=True;
      MainMenu.Items[iCount].Visible:=True;
     end; //end for
    end
  else begin
    GrpBoxRapidBtn.Caption:='系统提示';
    LabMsg.Visible:=True;
    LabMsg.Caption:=
         '    "预付费管理系统"由西清智能表业有限公司开发,'+#13
        +'适用于西清智能表业有限公司生产的预付费电度表。'+#13
        +'    本系统可以根据用户实际使用情况为用户添加或'+#13
        +'删除软件中的某些功能。'+#13
        +'    用户在使用本系统过程中若有改进意见,请您与'+#13
        +'西清智能表业有限公司联系。我们将根据您的意见改'+#13
        +'进本系统,增强系统的安全性和可靠性,使用户使用'+#13
        +'本系统更加快捷、方便!'+#13#13
        +'            西清智能表业有限公司NIms软件开发组';
    ImgChgPsw.Enabled:=False; // 快捷方式
    ImgChgPsw.Visible:=False;
    ImgNewCust.Enabled:=False;ImgNewCust.Visible:=False;
    ImgCustBuy.Enabled:=False;ImgCustBuy.Visible:=False;
    ImgReadCard.Enabled:=False;ImgReadCard.Visible:=False;
    ImgSoft.Enabled:=False;ImgSoft.Visible:=False;
    for iCount:=0 to iItemNum-2 do begin
      MainMenu.Items[iCount].Enabled:=False;
      MainMenu.Items[iCount].Visible:=False;
     end; //end for
   end;//end if
end;

Procedure TFrmClntMain.PrdRemoteConnect(Sender: TObject);
begin //远程鉴别
  if not bFunNImsInied then CntResult:=UnRegNetIms
  else begin
    try
      with RecNImsInfo do begin
        with DCOMCntToSever do begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -