📄 frmmainimpl.pas
字号:
unit FrmMainImpl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ComCtrls, Menus, SUIMainMenu, ImgList, ActnList, DB,
ADODB, SUIButton, ExtCtrls, SUIForm, SUIPopupMenu, DBTables, MSNPopUp;
type
TFrmMain = class(TForm)
atlList: TActionList;
imlAction: TImageList;
actDeptMng: TAction;
actUserMng: TAction;
actNotice: TAction;
actExit: TAction;
actQryNotice: TAction;
actModPswd: TAction;
conMain: TADOConnection;
qryPublic: TADOQuery;
mnuMain: TsuiMainMenu;
F1: TMenuItem;
mu_System_Cxdl: TMenuItem;
N16: TMenuItem;
N18: TMenuItem;
N17: TMenuItem;
mu_Quit: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
N15: TMenuItem;
LOGO1: TMenuItem;
sfrMain: TsuiForm;
imgSt: TImage;
ToolBar1: TToolBar;
suiImageButton1: TsuiImageButton;
btnNotice: TsuiImageButton;
btnQryNotice: TsuiImageButton;
btnIdle: TsuiImageButton;
suiImageButton2: TsuiImageButton;
suiImageButton4: TsuiImageButton;
btnModifyNotice: TsuiImageButton;
actModifyNotice: TAction;
mitModifyNotice: TMenuItem;
btnAudit: TsuiImageButton;
N1: TMenuItem;
suiImageButton3: TsuiImageButton;
suiImageButton5: TsuiImageButton;
actAudit: TAction;
N2: TMenuItem;
actChgUser: TAction;
mitChgUser: TMenuItem;
tmrAudit: TTimer;
mspAudit: TMSNPopUp;
qryAudit: TQuery;
procedure actDeptMngExecute(Sender: TObject);
procedure actUserMngExecute(Sender: TObject);
procedure actNoticeExecute(Sender: TObject);
procedure actExitExecute(Sender: TObject);
procedure actQryNoticeExecute(Sender: TObject);
procedure actModPswdExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure actModifyNoticeExecute(Sender: TObject);
procedure actAuditExecute(Sender: TObject);
procedure actChgUserExecute(Sender: TObject);
procedure tmrAuditTimer(Sender: TObject);
private
procedure WMSize(var Message: TWMSize); message WM_SIZE;
public
{ Public declarations }
end;
{
function lock(Key: string; Password: string): string; stdcall;
far; external 'winprocd.dll' name 'lock';
function unlock(Key: string; Password: string): string; stdcall;
far; external 'winprocd.dll' name 'unlock';}
const
STATUS_INACTIVE = 0;
STATUS_BROWSE = 1;
STATUS_EDIT = 2;
var
UserID, UserName, DeptID: string;
IsAdmin: Boolean;
FrmMain: TFrmMain;
implementation
uses FrmDeptMngImpl, FrmUserMngImpl, FrmNoticeImpl, FrmQryNoticeImpl, FrmModPswdImpl;
{$R *.dfm}
{ TFrmMain }
procedure TFrmMain.WMSize(var Message: TWMSize);
begin
{ if (Message.SizeType = SIZEFULLSCREEN) then
begin
ClientHeight := clbMain.Top + clbMain.Height;
end;
inherited;}
end;
procedure TFrmMain.actDeptMngExecute(Sender: TObject);
var
objForm: TFrmDeptMng;
begin
objForm := TFrmDeptMng.Create(Application);
objForm.ShowModal;
FreeAndNil(objForm);
end;
procedure TFrmMain.actUserMngExecute(Sender: TObject);
var
objForm: TFrmUserMng;
begin
objForm := TFrmUserMng.Create(Application);
objForm.ShowModal;
FreeAndNil(objForm);
end;
procedure TFrmMain.actNoticeExecute(Sender: TObject);
var
objForm: TFrmNotice;
begin
objForm := TFrmNotice.Create(Application);
objForm.strCurOper := 'ADD';
objForm.ShowModal;
FreeAndNil(objForm);
end;
procedure TFrmMain.actExitExecute(Sender: TObject);
begin
Close;
end;
procedure TFrmMain.actQryNoticeExecute(Sender: TObject);
var
objForm: TFrmQryNotice;
begin
objForm := TFrmQryNotice.Create(Application);
objForm.ShowModal;
FreeAndNil(objForm);
end;
procedure TFrmMain.actModPswdExecute(Sender: TObject);
var
objForm: TFrmModPswd;
begin
objForm := TFrmModPswd.Create(Application);
objForm.ShowModal;
FreeAndNil(objForm);
end;
procedure TFrmMain.FormShow(Sender: TObject);
begin
if (not conMain.Connected) then
conMain.Open;
qryPublic.Close;
qryPublic.SQL.Clear;
qryPublic.SQL.Add('select if_admin,if_bcn,if_mdn,if_qrn from t_sys_user where user_id=' + QuotedStr(UserID));
qryPublic.Open;
if (UpperCase(qryPublic.FieldByName('if_admin').AsString) = 'T') or (UserID = 'SA') then
begin
IsAdmin := True;
actDeptMng.Enabled := True;
actUserMng.Enabled := True;
actAudit.Enabled := True;
tmrAudit.Enabled := True;
end
else begin
IsAdmin := False;
actDeptMng.Enabled := False;
actUserMng.Enabled := False;
actAudit.Enabled := False;
tmrAudit.Enabled := False;
end;
if (UserID = 'SA') then
actModPswd.Enabled := False
else
actModPswd.Enabled := True;
if (UpperCase(qryPublic.FieldByName('if_bcn').AsString) = 'T') or (UserID = 'SA') then
actNotice.Enabled := True
else
actNotice.Enabled := False;
if (UpperCase(qryPublic.FieldByName('if_mdn').AsString) = 'T') or (UserID = 'SA') then
actModifyNotice.Enabled := True
else
actModifyNotice.Enabled := False;
if (UpperCase(qryPublic.FieldByName('if_qrn').AsString) = 'T') or (UserID = 'SA') then
actQryNotice.Enabled := True
else
actQryNotice.Enabled := False;
end;
procedure TFrmMain.actModifyNoticeExecute(Sender: TObject);
var
objForm: TFrmNotice;
begin
qryPublic.Close;
qryPublic.SQL.Clear;
qryPublic.SQL.Add('SELECT * FROM T_NOTICE WHERE (STATUS=''P'' or STATUS=''A'')');
qryPublic.Open;
if (qryPublic.RecordCount > 0) then
begin
objForm := TFrmNotice.Create(Application);
objForm.strCurOper := 'MOD';
objForm.ShowModal;
FreeAndNil(objForm);
end
else begin
ShowMessage('没有要修改的通知!');
end;
end;
procedure TFrmMain.actAuditExecute(Sender: TObject);
var
objForm: TFrmNotice;
begin
qryPublic.Close;
qryPublic.SQL.Clear;
qryPublic.SQL.Add('SELECT * FROM T_NOTICE WHERE STATUS=''P'' and grade=''紧急通知'' and UNIT_ID=' + QuotedStr(DeptID));
qryPublic.Open;
if (qryPublic.RecordCount > 0) then
begin
objForm := TFrmNotice.Create(Application);
objForm.strCurOper := 'AUD';
objForm.ShowModal;
FreeAndNil(objForm);
end
else begin
ShowMessage('没有要审批的通知!');
end;
end;
procedure TFrmMain.actChgUserExecute(Sender: TObject);
begin
Close;
WinExec(PChar(Application.ExeName), SW_NORMAL);
end;
procedure TFrmMain.tmrAuditTimer(Sender: TObject);
begin
(Sender as TTimer).Enabled := False;
with qryAudit do
begin
Close;
SQL.Clear;
SQL.Add('SELECT count(*) RecordsNum FROM T_NOTICE WHERE STATUS=''P'' and grade=''紧急通知'' and UNIT_ID=' + QuotedStr(DeptID));
Open;
if (FieldByName('RecordsNum').AsInteger > 0) then
begin
mspAudit.Text := '有"' + IntToStr(FieldByName('RecordsNum').AsInteger) + '"条紧急通知,请审批!';
Beep;
mspAudit.ShowPopup;
end;
Close;
end;
(Sender as TTimer).Enabled := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -