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

📄 maincjfm.pas

📁 一个电力部门的催缴费用系统
💻 PAS
字号:
unit MainCjFM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  fcOutlookList, fcButton, fcImgBtn, fcShapeBtn, ExtCtrls, fcClearPanel,
  fcButtonGroup, fcOutlookBar, Menus, ComCtrls, ActnList, StdCtrls, ImgList;
const
  conStaBarWidth = 600;
type
  TFM_MainCj = class(TForm)
    stb_Main: TStatusBar;
    mm_Main: TMainMenu;
    mmi_SysSet: TMenuItem;
    mmi_SysSet_CjUser: TMenuItem;
    mmi_SysSet_TimeTable: TMenuItem;
    mmi_User: TMenuItem;
    mmi_User_Import: TMenuItem;
    mmi_User_Info: TMenuItem;
    mmi_User_Statistics: TMenuItem;
    actnlst: TActionList;
    actn_SysSet_CjUser: TAction;
    actn_SysSet_TimeTable: TAction;
    actn_User_Import: TAction;
    actn_User_Info: TAction;
    actn_User_Statistics: TAction;
    mmi_File: TMenuItem;
    actn_File_Quit: TAction;
    mmi_File_Exit: TMenuItem;
    A1: TMenuItem;
    fcOutlookBar1: TfcOutlookBar;
    fcOutlookBar1OutlookList1: TfcOutlookList;
    fcOutlookBar1fcShapeBtn1: TfcShapeBtn;
    fcOutlookBar1OutlookList2: TfcOutlookList;
    fcOutlookBar1fcShapeBtn2: TfcShapeBtn;
    pnl_Main: TPanel;
    Splitter1: TSplitter;
    pnl_Top: TPanel;
    pnl_Client: TPanel;
    lbl_Title: TLabel;
    imglst_Main: TImageList;
    tm_ImportData: TTimer;
    tm_UpdateTodayNum: TTimer;
    procedure actn_SysSet_CjUserExecute(Sender: TObject);
    procedure actn_SysSet_TimeTableExecute(Sender: TObject);
    procedure actn_User_ImportExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure actn_User_InfoExecute(Sender: TObject);
    procedure DisplayHint(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure actn_File_QuitExecute(Sender: TObject);
    procedure actn_User_StatisticsExecute(Sender: TObject);
    procedure A1Click(Sender: TObject);
    procedure tm_UpdateTodayNumTimer(Sender: TObject);
    procedure tm_ImportDataTimer(Sender: TObject);
  private
    { Private declarations }

    function CanClose:boolean;
    procedure CloseActiveForm;
    procedure LoadConfig;
  public
    { Public declarations }

    procedure ConVertErrorException(Sender: Tobject;E: Exception);
  end;

var
  FM_MainCj: TFM_MainCj;


implementation
uses CjUserListFM,CallOutTimeTableFM,CreateCJDataFM,
     CjUserInfoFM,CjStatisticsFM,AboutFM,SystemPH, systemDM,sourceph;

{$R *.DFM}

procedure TFM_MainCj.LoadConfig;
var
  iPos:integer;
  sTemp:string;
begin
{
  BAutoImport,BAutoUpdateToDayNum:Boolean; //自动导入、自动重置每日催缴
  iImportFreq:integer;   //导数据频率,1:每天 2:每月
  iImportDay:integer;    //导入日
  sImportTime,sUpdateToDayNumTime:string; //导入时间、重置催缴时间
  }
  if lowercase(SysDM.ReadIni('system','AutoImport','false'))='true' then
    BAutoImport:=true
  else
    BAutoImport:=False;
  if lowercase(SysDM.ReadIni('system','AutoUpdateTodayNum','true'))='true' then
    BAutoUpdateTodayNum:=true
  else
    BAutoUpdateTodayNum:=False;
  iImportFreq :=StrtoIntDef(SysDM.ReadIni('system','ImportFreq','1'),1);
  iImportDay  :=StrToIntDef(SysDM.ReadIni('system','ImportDay','1'),1);
  sImportTime :=SysDM.ReadIni('system','ImportTime','07:00:00');
  //将'07:00:00'字符串转换为 时、分、秒
  iPos:=Pos(':',sImportTime);
  ImportHour  :=StrToIntDef(copy(sImportTime,1,iPos-1),7);
  sTemp:=Copy(sImportTime,iPos+1,Length(sImportTime)-iPos);
  iPos:=Pos(':',sTemp);
  ImportMin   :=StrToIntDef(Copy(sTemp,1,iPos-1),0);
  ImportSec   :=StrToIntDef(Copy(sTemp,iPos+1,Length(sTemp)-iPos),0);

  sUpdateTodayNumTime :=SysDM.ReadIni('system','UpdateTodayNumTime','09:00:00');
  iPos:=Pos(':',sUpdateTodayNumTime);
  UpdTodayNumHour  :=StrToIntDef(copy(sUpdateTodayNumTime,1,iPos-1),7);
  sTemp:=Copy(sUpdateTodayNumTime,iPos+1,Length(sUpdateTodayNumTime)-iPos);
  iPos:=Pos(':',sTemp);
  UpdTodayNumMin   :=StrToIntDef(Copy(sTemp,1,iPos-1),0);
  UpdTodayNumSec   :=StrToIntDef(Copy(sTemp,iPos+1,Length(sTemp)-iPos),0);

end;
procedure TFM_MainCj.DisplayHint(Sender: TObject);
begin
  stb_Main.Panels[0].Text:= GetLongHint(Application.Hint);
end;

procedure TFM_MainCj.ConVertErrorException(Sender: Tobject;E: Exception);
begin
 showMessage(E.Message);
end;
function TFM_MainCj.CanClose:boolean;
begin
  if Application.MessageBox('是否退出催缴系统?','提示',mb_YesNo+MB_ICONQUESTION)=IdYes then
     result:=true
  else
      Result:=False;

end;

procedure TFM_MainCj.CloseActiveForm;
var
  i:integer;
  TempForm:TForm;
begin
  for i := 0 to Screen.FormCount - 1 do
  begin
    TempForm:=Screen.Forms[i];
    if TempForm.parent is TPanel then TempForm.Close;
  end;
end;
procedure TFM_MainCj.actn_SysSet_CjUserExecute(Sender: TObject);
//var
//  FM_CjUserList: TFM_CjUserList;
begin
  CloseActiveForm;
  FM_CjUserList:=TFM_CjUserList.Create(Self,pnl_Client);
  FM_CjUserList.Show;
  lbl_Title.Caption:=FM_CjUserList.Caption ;
end;

procedure TFM_MainCj.actn_SysSet_TimeTableExecute(Sender: TObject);
//var
//  FM_CallOutTimeTable: TFM_CallOutTimeTable;
begin
  CloseActiveForm;
  FM_CallOutTimeTable:=TFM_CallOutTimeTable.Create(Self,pnl_Client);
  FM_CallOutTimeTable.Show;
  lbl_Title.Caption:=FM_CallOutTimeTable.Caption ;
end;

procedure TFM_MainCj.actn_User_ImportExecute(Sender: TObject);
//var
//  FM_CreateCJData: TFM_CreateCJData;
begin
  CloseActiveForm;
  FM_CreateCJData:=TFM_CreateCJData.Create(Self,pnl_Client);
  FM_CreateCJData.Show;
  lbl_Title.Caption:=FM_CreateCJData.Caption ;
end;
procedure TFM_MainCj.FormCreate(Sender: TObject);
begin
  application.OnException:=ConVertErrorException;
  Application.OnHint:=DisplayHint;
  application.Title :=SystemConst_AppExplain;
  lbl_Title.Caption :='';
  stb_Main.Panels[0].Width:=stb_Main.Width-conStaBarWidth;
  stb_Main.Panels[1].Text:='操作员:'+sysDM.WorkName;
  stb_Main.Panels[2].Text:='登录时间:'+FormatDateTime('YYYY/MM/DD  HH:NN:SS',Date+Time);
  LoadConfig;
  tm_ImportData.Enabled :=true;
  tm_UpdateTodayNum.Enabled :=true;
end;

procedure TFM_MainCj.actn_User_InfoExecute(Sender: TObject);
//var
//  FM_CjUserInfo: TFM_CjUserInfo;
begin
  CloseActiveForm;
  FM_CjUserInfo:=TFM_CjUserInfo.Create(Self,pnl_Client);
  //FM_CjUserInfo:=TFM_CjUserInfo.Create(self);
  FM_CjUserInfo.Show;
  lbl_Title.Caption:=FM_CjUserInfo.Caption ;
end;

procedure TFM_MainCj.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if not CanClose then
    Action:=caNone;

end;

procedure TFM_MainCj.actn_File_QuitExecute(Sender: TObject);
begin
  Close;
end;

procedure TFM_MainCj.actn_User_StatisticsExecute(Sender: TObject);
//var
//  FM_CjStatistics: TFM_CjStatistics;
begin
  CloseActiveForm;
  FM_CjStatistics:=TFM_CjStatistics.Create(Self,pnl_Client);
  FM_CjStatistics.Show;
  lbl_Title.Caption:=FM_CjStatistics.Caption ;
end;

procedure TFM_MainCj.A1Click(Sender: TObject);
//var
//  FM_About: TFM_About;
begin
  FM_About:=TFM_About.create(Self);
  FM_About.ShowModal;
end;

procedure TFM_MainCj.tm_UpdateTodayNumTimer(Sender: TObject);
var
  Hour,Min,Sec,MSec:Word;
begin
  DeCodeTime(Now,Hour,Min,Sec,MSec);
  if (Hour=UpdTodayNumHour) and (Min=UpdTodayNumMin) then
  begin
    SysDM.SQL_Exec(SysDM.Qr_UpdateTodayNum,
                 'update cj_table set Today_Num=0 where Today_Num>0',
                 true);
  end;
end;

procedure TFM_MainCj.tm_ImportDataTimer(Sender: TObject);
var
  Year,Month,Day,Hour,Min,Sec,MSec:Word;
begin
  DeCodeTime(Now,Hour,Min,Sec,MSec);
  if iImportFreq = 1 then
  begin
    if (Hour=ImportHour) and (Min=ImportMin) then
    begin
      CloseActiveForm;
      FM_CreateCJData:=TFM_CreateCJData.CreateForm(Self,pnl_Client,true);
      FM_CreateCJData.Show;
      lbl_Title.Caption:=FM_CreateCJData.Caption ;
    end;
  end else
  begin
    DeCodeDate(Now,Year,Month,Day);
    if (Day = iImportDay) and (Hour=ImportHour) and (Min=ImportMin) then
    begin
      CloseActiveForm;
      FM_CreateCJData:=TFM_CreateCJData.CreateForm(Self,pnl_Client,true);
      FM_CreateCJData.Show;
      lbl_Title.Caption:=FM_CreateCJData.Caption ;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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