BSOne.SFC/eCrmHE/EXE_eCrmHomeEdition/Messages/DAfterReport.pas

164 lines
3.9 KiB
Plaintext

unit DAfterReport;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.pngimage,
Vcl.StdCtrls, System.ImageList, Vcl.ImgList, PngImageList, Tocsg.Win32;
type
TDlgAfterReport = class(TForm)
imgMain: TImage;
imgOk: TImage;
imgBtnList: TPngImageList;
Label1: TLabel;
Label2: TLabel;
tInit: TTimer;
mmReport: TMemo;
lbInfo: TLabel;
imgBsoneTop: TImage;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure tInitTimer(Sender: TObject);
procedure imgMainMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure imgOkMouseEnter(Sender: TObject);
procedure imgOkMouseLeave(Sender: TObject);
procedure imgOkClick(Sender: TObject);
private
{ Private declarations }
Mutex_: TTgMutex;
procedure SetImgBtn(nImgIdx: Integer);
public
{ Public declarations }
Constructor Create(aOwner: TComponent); override;
procedure CreateParams(var Params: TCreateParams); override;
Destructor Destroy; override;
procedure SetInfo(sUserName: String; dtAfterRpt: TDateTime);
procedure process_WM_SYSCOMMAND(var msg: TWMSysCommand); Message WM_SYSCOMMAND;
end;
var
DlgAfterReport: TDlgAfterReport;
implementation
uses
{$IFDEF _HE_}
ManagerService,
{$ENDIF}
Tocsg.Exception, superobject, Define, GlobalDefine, DefineHelper,
ProcessParam, Condition;
resourcestring
RS_InputConnReason = '접속 사유를 입력해 주십시오.';
{$R *.dfm}
Constructor TDlgAfterReport.Create(aOwner: TComponent);
begin
Inherited Create(aOwner);
Mutex_ := TTgMutex.Create(MUTEX_AFTERREPORT);
SetImgBtn(0);
{$IFDEF _HE_}
lbInfo.Caption := Format('%s :: %s', [gMgSvc.HandleConfig.UserName,
FormatDateTime('yyyy-mm-dd hh:nn:ss', gMgSvc.AgentModel.AfterRptDT)]);
{$ENDIF}
imgBsoneTop.Visible := IsBS1Display;
tInit.Enabled := true;
end;
procedure TDlgAfterReport.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
{$IFDEF _HE_}
Params.ExStyle := WS_EX_APPWINDOW;
{$ENDIF}
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
Destructor TDlgAfterReport.Destroy;
begin
FreeAndNil(Mutex_);
Inherited;
end;
procedure TDlgAfterReport.SetInfo(sUserName: String; dtAfterRpt: TDateTime);
begin
lbInfo.Caption := Format('%s :: %s', [sUserName,
FormatDateTime('yyyy-mm-dd hh:nn:ss', dtAfterRpt)]);
Application.ProcessMessages;
end;
procedure TDlgAfterReport.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TDlgAfterReport.imgMainMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
procedure TDlgAfterReport.imgOkClick(Sender: TObject);
begin
mmReport.Text := Trim(mmReport.Text);
if mmReport.Text = '' then
begin
MessageBox(Handle, PChar(RS_InputConnReason), PChar(APP_TITLE), MB_ICONWARNING or MB_OK);
exit;
end;
{$IFDEF _HE_}
gMgSvc.AgentModel.AfterRptDT := 0;
gMgSvc.AgentModel.Save;
gMgSvc.SendEventLog(URI_USER_ACTION, SYSEVT_WORKREPORT, mmReport.Text);
{$ELSE}
gParam.SendData(HPCMD_SEND_AFTER_REPORT, mmReport.Text);
{$ENDIF}
Close;
end;
procedure TDlgAfterReport.imgOkMouseEnter(Sender: TObject);
begin
SetImgBtn(1);
end;
procedure TDlgAfterReport.imgOkMouseLeave(Sender: TObject);
begin
SetImgBtn(0);
end;
procedure TDlgAfterReport.SetImgBtn(nImgIdx: Integer);
begin
imgBtnList.GetIcon(nImgIdx, imgOk.Picture.Icon);
imgOk.Repaint
end;
procedure TDlgAfterReport.tInitTimer(Sender: TObject);
begin
tInit.Enabled := false;
if MuTex_.MutexState <> msCreateOk then
Close;
FormStyle := fsNormal;
end;
procedure TDlgAfterReport.process_WM_SYSCOMMAND(var msg: TWMSysCommand);
begin
if msg.CmdType = SC_CLOSE then
exit;
Inherited;
end;
end.