管理系统设计最易忽略的问题点

前言随着管理系统的普及 , 大部分企业已经实现了系统信息化 。 但是每家公司的系统 , 就像万花筒一样百花齐放 , 各有各的特点 。 但无论如何 , 我们必须遵从以下几点 。

  1. 系统主界面尽量简洁简单 。 如果主界面过于复杂 , 则用户的体验差 , 培训的成本也大幅增长 。 有时候用户面对工作千头万绪 , 如果他能将自己喜欢的图片放在操作界面上 , 他会感到很愉悦 , 这样工作效率大大提高 。

管理系统设计最易忽略的问题点文章插图
将主界面弃掉复杂的流程简图 , 由用户写定义主界面
2. 设计系统的时候 , 要考虑用户可能点开两个以上的线程程序 , 以减少客户端的内存使用率 。 那如何解决这个问题呢?不同的语言有不同的方法 。 现在我给出的是Delphi的解决方法 。
首先建一个单元文件wdrunonce , 将如下代码放入 , 然后在项目处引用单元文件就行了 。
管理系统设计最易忽略的问题点文章插图
放在DELPHI引用单元就可以了
unit wdRunOnce;
{*******************************************
* brief: 让程序只运行一次
* autor: liangyan
* date: 2005-12-28
【管理系统设计最易忽略的问题点】********************************************}
interface
uses
Windows, Messages;
(* 程序是否已经运行 , 如果运行则激活它 *)
function AppHasRun(AppHandle: THANDLE): Boolean;
implementation
const
MapFileName = '{CAF49BBB-AF40-4FDE-8757-51D5AEB5CCCF}';//{CAF49BBB-AF40-4FDE-8757-51D5AEB5BBBF}'
type
//共享内存
PShareMem = ^TShareMem;
TShareMem = record
AppHandle: THandle; //保存程序的句柄
end;
var
hMapFile: THandle;
PSMem: PShareMem;
procedure CreateMapFile;
begin
hMapFile := OpenFileMapping(FILE_MAP_ALL_ACCESS, False, PChar(MapFileName));
if hMapFile = 0 then
begin
hMapFile := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0,
SizeOf(TShareMem), MapFileName);
PSMem := MapViewOfFile(hMapFile, FILE_MAP_WRITE or FILE_MAP_READ, 0, 0, 0);
if PSMem = nil then
begin
CloseHandle(hMapFile);
Exit;
end;
PSMem^.AppHandle := 0;
end
else begin
PSMem := MapViewOfFile(hMapFile, FILE_MAP_WRITE or FILE_MAP_READ, 0, 0, 0);
if PSMem = nil then
begin
CloseHandle(hMapFile);
exit;
end;
end;
end;
procedure FreeMapFile;
begin
UnMapViewOfFile(PSMem);
CloseHandle(hMapFile);
end;
function AppHasRun(AppHandle: THandle): Boolean;
var
TopWindow: HWnd;
begin
Result := False;
if PSMem <> nil then
begin
if PSMem^.AppHandle <> 0 then
begin
SendMessage(PSMem^.AppHandle, WM_SYSCOMMAND, SC_RESTORE, 0);
TopWindow := GetLastActivePopup(PSMem^.AppHandle);
if (TopWindow <> 0) and (TopWindow <> PSMem^.AppHandle) and
IsWindowVisible(TopWindow) and IsWindowEnabled(TopWindow) then
SetForegroundWindow(TopWindow);
Result := True;
end
else
PSMem^.AppHandle := AppHandle;
end;
end;
initialization
CreateMapFile;
finalization