📄 xw_main.pas
字号:
unit xw_main;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
ActnList, ImgList,login,Db, Toolwin,
ADODB, DBTables, Grids, DBGrids,comobj,prefs,registry,DBMain,
//
frmpwd, ColourLabel, cmpTrayIcon,utils,yk, OleCtrls,
ShockwaveFlashObjects_TLB,unit1;
const
TYPE_PRJ=0;
TYPE_ROLE=1;
TYPE_DOC=2;
EN_PRJ=0;
EN_ROLE=1;
EN_DOC=2;
EN_TEMP=3;
type
TxwfdForm = class(TForm)
OpenDialog: TOpenDialog;
StatusBar: TStatusBar;
ImgMenu: TImageList;
Panel1: TPanel;
Panel2: TPanel;
Image2: TImage;
spSet: TSpeedButton;
spMm: TSpeedButton;
spExit: TSpeedButton;
SpeedButton4: TSpeedButton;
ImageList3: TImageList;
sbcw: TSpeedButton;
Image1: TImage;
sbck: TSpeedButton;
sbyk: TSpeedButton;
sbgz: TSpeedButton;
sbrs: TSpeedButton;
sbtz: TSpeedButton;
sbbwl: TSpeedButton;
sbxh: TSpeedButton;
sbxt: TSpeedButton;
sbjd: TSpeedButton;
TrayIcon21: TTrayIcon2;
pmxwfd: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
SpeedButton1: TSpeedButton;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
Ncw: TMenuItem;
Nck: TMenuItem;
Nyk: TMenuItem;
Ngz: TMenuItem;
Nrs: TMenuItem;
Njd: TMenuItem;
Nbwl: TMenuItem;
Ntz: TMenuItem;
Nxh: TMenuItem;
Nxt: TMenuItem;
mLogout: TSpeedButton;
Timer1: TTimer;
ibp: TImage;
Timer2: TTimer;
Image3: TImage;
labYh: TLabel;
f1: TShockwaveFlash;
Timer3: TTimer;
procedure HelpAbout1Execute(Sender: TObject);
procedure Preference1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure spExitClick(Sender: TObject);
procedure sbcwClick(Sender: TObject);
procedure spSetClick(Sender: TObject);
procedure sbckClick(Sender: TObject);
procedure RunExefile(path:string);
procedure sbgzClick(Sender: TObject);
procedure sbrsClick(Sender: TObject);
procedure sbbwlClick(Sender: TObject);
procedure sbtzClick(Sender: TObject);
procedure sbykClick(Sender: TObject);
procedure sbjdClick(Sender: TObject);
procedure sbxhClick(Sender: TObject);
procedure sbxtClick(Sender: TObject);
procedure laboutClick(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure mLogoutClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Bp;
procedure spMmClick(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer3Timer(Sender: TObject);
private
{ Private declarations }
function CheckLogin:boolean;
public
{ Public declarations }
end;
var
xwfdForm: TxwfdForm;
bAdmin:Boolean;
sUser:widestring;
ex:boolean;
e:boolean;
implementation
{$R *.DFM}
uses dlgAbt, Main;
procedure TxwfdForm.HelpAbout1Execute(Sender: TObject);
var
dlgAbout: TdlgAbout;
begin
dlgAbout:=TdlgAbout.Create(self);
dlgAbout.ShowModal;
end;
procedure TxwfdForm.Preference1Click(Sender: TObject);
var
dlgPreferences:TdlgPreferences;
begin
Application.CreateForm(TdlgPreferences, dlgPreferences);
dlgPreferences.ShowModal;
end;
procedure TxwfdForm.FormShow(Sender: TObject);
begin
if not ex then close;
labYh.Width:=217;
labYh.Caption:='你好!'+sup.PS_Username+'. 欢迎进入管理系统!';
Trayicon21.Enabled:=false;
AutoSize:=FALSE;
Timer1.Interval:=6000;
f1.movie:=ExtractFilePath(Application.ExeName)+'1.swf';
end;
// Check Login user
function TxwfdForm.CheckLogin:boolean;
var
Reg: TRegistry;
r:integer;
dlgLogin: TdlgLogin;
begin
e:=false;
// Init
Result:=True;
// Login dialog
dlgLogin:=nil;
dlgLogin:=TdlgLogin.Create(self);
r:=dlgLogin.ShowModal;
If r<>mrOK then begin
//sup.PS_Logout;
Result:=false;
Exit;
end;
sbcw.Enabled:=false;
sbck.Enabled:=false;
sbyk.Enabled:=false;
sbgz.Enabled:=false;
sbrs.Enabled:=false;
sbjd.Enabled:=false;
sbbwl.Enabled:=false;
sbtz.Enabled:=false;
sbxh.Enabled:=false;
sbxt.Enabled:=false;
//
Nxt.Enabled:=false;
Ncw.Enabled:=false;
Nck.Enabled:=false;
Nyk.Enabled:=false;
Ngz.Enabled:=false;
Nrs.Enabled:=false;
Njd.Enabled:=false;
Nbwl.Enabled:=false;
Ntz.Enabled:=false;
NXH.Enabled:=false;
// Login
while not sup.PS_Login(dlgLogin.eUser.Text,dlgLogin.ePassword.Text) do begin
MessageDlg(sup.PS_LastError,mtError,[mbOk], 0);
dlgLogin.eUser.text:='';
dlgLogin.ePassword.text:='';
// Login dialog
if dlgLogin=nil then
dlgLogin:=TdlgLogin.Create(self);
r:=dlgLogin.ShowModal;
If r<>mrOK then begin
//sup.PS_Logout;
dlgLogin.free;
Result:=false;
Exit;
end;
//sup.PS_Logout;
end;
if sup.PS_WillExpire then Showmessage(sup.PS_LastError);
e:=true;
// Is Administrator?
if sup.PS_Is_Admin then begin
bAdmin:=true;
sbxt.Enabled:=true;
Nxt.Enabled:=true;
sbcw.Enabled:=true;
sbck.Enabled:=true;
sbyk.Enabled:=true;
sbgz.Enabled:=true;
sbrs.Enabled:=true;
sbjd.Enabled:=true;
sbbwl.Enabled:=true;
sbtz.Enabled:=true;
sbxh.Enabled:=true;
//
Ncw.Enabled:=true;
Nck.Enabled:=true;
Nyk.Enabled:=true;
Ngz.Enabled:=true;
Nrs.Enabled:=true;
Njd.Enabled:=true;
Nbwl.Enabled:=true;
Ntz.Enabled:=true;
Nxh.Enabled:=true;
end else begin
bAdmin:=false;
sbxt.Enabled:=false;
Nxt.Enabled:=false;
if sup.PS_CheckUserRights(sup.PS_Username,'财务管理') then begin
sbcw.Enabled:=true;
Ncw.Enabled:=true;
end;
if sup.PS_CheckUserRights(sup.PS_Username,'仓库管理') then begin
end;
if sup.PS_CheckUserRights(sup.PS_Username,'用款申请') then begin
sbyk.Enabled:=true;
Nyk.Enabled:=true;
end;
if sup.PS_CheckUserRights(sup.PS_Username,'工资管理') then begin
sbgz.Enabled:=true;
Ngz.Enabled:=true;
end;
if sup.PS_CheckUserRights(sup.PS_Username,'人事管理') then begin
sbrs.Enabled:=true;
Nrs.Enabled:=true;
end;
if sup.PS_CheckUserRights(sup.PS_Username,'酒店管理') then begin
sbjd.Enabled:=true;
Njd.Enabled:=true;
end;
if sup.PS_CheckUserRights(sup.PS_Username,'备忘录') then begin
sbbwl.Enabled:=true;
Nbwl.Enabled:=true;
end;
if sup.PS_CheckUserRights(sup.PS_Username,'通知') then begin
sbtz.Enabled:=true;
Ntz.Enabled:=true;
end;
if sup.PS_CheckUserRights(sup.PS_Username,'网上寻呼') then begin
sbxh.Enabled:=true;
Nxh.Enabled:=true;
end;
end;
sUser:=dlgLogin.eUser.Text;
// Record user name
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\xwfd\Settings', True)
then begin
Reg.WriteString('username',dlgLogin.eUser.Text);
end;
finally
Reg.CloseKey;
Reg.Free;
inherited;
end;
dlgLogin.free;
end;
procedure TxwfdForm.spExitClick(Sender: TObject);
begin
close;
end;
procedure TxwfdForm.sbcwClick(Sender: TObject);
begin
RunExeFile(g_Prefs.PREFS_CW);
end;
procedure TxwfdForm.RunExefile(path:string);
var str:string;
r:integer;
ps:Pchar;
begin
if path='' then begin
Application.MessageBox('对不起,请先到用户设置中设置.', PChar('信息'), mb_OK)
end;
Str:=path;
ps:=PChar(path);
if g_Prefs.PREFS_HIDE then Hide;
try
//r:=WinExecAndWait32(str, SW_SHOWDEFAULT);
r:=WinExec32(ps,SW_SHOWDEFAULT);
if r<>0 then begin
Application.MessageBox('主程序未找到,不能运行.', PChar(str), mb_OK)
end;
except
MessageDlg('运行失败!',mtWarning,[mbOK],0);
end;
end;
procedure TxwfdForm.spSetClick(Sender: TObject);
var
dlgPreferences:TdlgPreferences;
begin
Application.CreateForm(TdlgPreferences, dlgPreferences);
dlgPreferences.ShowModal;
end;
procedure TxwfdForm.sbckClick(Sender: TObject);
begin
RunExeFile(g_Prefs.PREFS_CK);
end;
procedure TxwfdForm.sbgzClick(Sender: TObject);
begin
RunExeFile(g_Prefs.PREFS_GZ);
end;
procedure TxwfdForm.sbrsClick(Sender: TObject);
begin
RunExeFile(g_Prefs.PREFS_RS);
end;
procedure TxwfdForm.sbbwlClick(Sender: TObject);
begin
RunExeFile(g_Prefs.PREFS_DO);
end;
procedure TxwfdForm.sbtzClick(Sender: TObject);
begin
RunExeFile(g_Prefs.PREFS_TZ);
end;
procedure TxwfdForm.sbykClick(Sender: TObject);
var frmYK: TfrmYK;
begin
frmYK:=TfrmYK.Create(self);
if g_Prefs.PREFS_HIDE then Hide;
frmYK.ShowModal;
if g_Prefs.PREFS_HIDE then Show;
end;
procedure TxwfdForm.sbjdClick(Sender: TObject);
begin
//
end;
procedure TxwfdForm.sbxhClick(Sender: TObject);
var form1:Tform1;
begin
Application.CreateForm(TForm1, Form1);
form1.show;
end;
procedure TxwfdForm.sbxtClick(Sender: TObject);
var MainForm: TMainForm;
begin
mainForm:=TMainForm.Create(self);
//mainForm.ShowModal;
mainForm.Show;
if g_Prefs.PREFS_HIDE then Hide;
end;
procedure TxwfdForm.laboutClick(Sender: TObject);
var
dlgAbout: TdlgAbout;
begin
dlgAbout:=TdlgAbout.Create(self);
dlgAbout.ShowModal;
end;
procedure TxwfdForm.N2Click(Sender: TObject);
begin
xwfdForm.Show;
end;
procedure TxwfdForm.FormCreate(Sender: TObject);
begin
Trayicon21.Enabled:=false;
LoadSettings;
ex:=CheckLogin;
end;
procedure TxwfdForm.FormHide(Sender: TObject);
begin
Trayicon21.Enabled:=true;
end;
procedure TxwfdForm.SpeedButton1Click(Sender: TObject);
begin
Hide;
end;
procedure TxwfdForm.mLogoutClick(Sender: TObject);
begin
if mLogout.Caption='(&L)登陆出' then begin
sup.PS_Logout;
mLogout.Caption:='(&L)登陆入';
labYh.Width:=217;
Timer1.Interval:=0;
n7.Enabled:=false;
labYh.Caption:='你好!' + ' ' + ' 欢迎进入管理系统!';
Panel1.enabled:=false;//Visible:=false;
end else begin
if not CheckLogin then exit;
labYh.Width:=217;
labYh.Caption:='你好!'+sup.PS_Username+'. 欢迎进入管理系统!';
mLogout.Caption:='(&L)登陆出';
//Panel1.Visible:=true;
Panel1.enabled:=true;
Timer1.Interval:=6000;
n7.Enabled:=true;
end;
end;
procedure TxwfdForm.Timer1Timer(Sender: TObject);
var sqlstr,sql1:string;
uid,gid:string;
rows:variant;
str:TStrings;
bm:string;
bmzg:string;
begin
timer2.Interval:=0;
ibp.Visible:=false;
sqlstr:=' where C_USER_NAME='+''''+sup.PS_Username+'''';
sql1:=' where C_GRP_ZG='+''''+sup.PS_Username+'''';
uid:=sup.PS_valStrToStr('CSI_SECU_USER','C_USER_NAME','C_USER_ID',sup.PS_Username);
//showmessage(sup.ps_username);
//showmessage('gid:'+uid);
gid:=sup.PS_valStrToStr('CSI_SECU_USER_GRP','C_USER_ID','C_GRP_ID',uid);
if gid='' then begin
//Showmessage('对不起,你不属于一个部门。';
// exit;
end;
bm:=sup.PS_valStrToStr('CSI_SECU_GRP','C_GRP_ID','C_GRP_NAME',gid);
//showmessage(bm);
bmzg:=sup.PS_valStrToStr('csi_secu_GRP','C_Grp_id','C_GRP_Zg',gid);
//showmessage(bmzg);
//
if sup.PS_Username = bmzg then begin
if sup.PS_CheckExists2Val('csi_report','c_from','c_status','',bm,'N','') then begin
//if (sup.PS_CheckExistStrVar('csi_report','c_status','N') then begin
bp;
end ;//else showmessage('false');
end;
if sup.PB_GetValFromTab('CSI_SECU_USER','C_USER_ZW',sqlstr)='财务经理' then begin
if sup.PS_CheckExistStrVar('csi_report','c_status','B') then begin
bp;
end;
end;
if sup.PB_GetValFromTab('CSI_SECU_USER','C_USER_ZW',sqlstr)='副总经理' then begin
if sup.PS_CheckExistStrVar('csi_report','c_status','C') then begin
bp;
end;
end;
if sup.PB_GetValFromTab('CSI_SECU_USER','C_USER_ZW',sqlstr)='总经理' then begin
if sup.PS_CheckExistStrVar('csi_report','c_status','F') then begin
bp;
end;
end;
end;
procedure TxwfdForm.Bp;
var i:integer;
begin
// for i:=0 to 6 do begin
timer2.Interval:=700;
// if ibp.Visible then ibp.Visible:=false
// else ibp.Visible:=true;
end;
procedure TxwfdForm.spMmClick(Sender: TObject);
var
PasswordDlg: TPasswordDlg;
begin
PasswordDlg:=TPasswordDlg.Create(self);
if PasswordDlg.ShowModal=mrOK then begin
if sup.PS_ChangePwd(sup.PS_Username,passworddlg.eOldPwd.text,PasswordDlg.Password.text)<0 then begin
Showmessage(sup.PS_LastError);
end else begin
application.MessageBox('密码已成功修改!', PChar('信息'), mb_OK );
end;
end;
end;
procedure TxwfdForm.Timer2Timer(Sender: TObject);
var i:integer;
begin
// for i:=0 to 6 do begin
if ibp.Visible then ibp.Visible:=false
else ibp.Visible:=true;
beep;
end;
procedure TxwfdForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if e then sup.PS_Logout;
end;
procedure TxwfdForm.Timer3Timer(Sender: TObject);
var from,id,str:widestring;
begin
str:='select * from csi_mes where c_to='+''''+sup.ps_username+''''+' and c_flag='+''''+'N'+'''';
str:=sup.PS_Get_Mes_ext(str,from,id);
if str<>'' then begin
showmessage('消息来自于'+from+':'+#13+str);
if id<>'' then
sup.PS_MOD_Mes(id);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -