📄 frmmain.pas
字号:
unit FrmMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ToolWin, StdCtrls, ExtCtrls, Buttons, Grids,
DBGrids, DB, ADODB, DBCtrls,shellapi,GlobalUnit,departselect, ImgList;
const
WM_NID1=WM_USER+1010; //
type
TFrmmain = class(TForm)
MainMenu1: TMainMenu;
N21: TMenuItem;
N1: TMenuItem;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
GroupBox1: TGroupBox;
TreeView1: TTreeView;
DBGrid1: TDBGrid;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
GroupBox2: TGroupBox;
Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel;
Bevel4: TBevel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
Panel2: TPanel;
Label5: TLabel;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
BitBtn9: TBitBtn;
BitBtn10: TBitBtn;
StaticText1: TStaticText;
StatusBar1: TStatusBar;
BitBtn11: TBitBtn;
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
DBMemo1: TDBMemo;
ADOQuery1: TADOQuery;
StatusBar2: TStatusBar;
StatusBar4: TStatusBar;
StatusBar3: TStatusBar;
StatusBar5: TStatusBar;
AccessoryPopupMenu1: TPopupMenu;
AddAccessoryPopupMenu1: TPopupMenu;
N2: TMenuItem;
AddAccessoryOpenDialog1: TOpenDialog;
Panel3: TPanel;
ImageList1: TImageList;
PopupMenu1: TPopupMenu;
N3: TMenuItem;
N4: TMenuItem;
procedure BitBtn10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton01Click(Sender: TObject);
procedure SpeedButton02Click(Sender: TObject);
procedure SpeedButton03Click(Sender: TObject);
procedure SpeedButton04Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure ADOQuery1AfterScroll(DataSet: TDataSet);
procedure DBGrid1CellClick(Column: TColumn);
procedure FormShow(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure PopupMenuItemsClick(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure N1Click(Sender: TObject);
procedure WMNID(var msg:TMessage);message WM_NID1;
procedure N3Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);//托盘程序
procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
procedure N4Click(Sender: TObject); //拦截windows系统命令消息
private
{ Private declarations }
public
{ Public declarations }
end;
var
Fmmain: TFrmmain;
bShowed:boolean;
NotifyIcon:TNotifyIconData;//托盘数据结构
implementation
{$R *.dfm}
uses
personselect, FileCreateFrm, LoginUnit, userMan;
procedure TFrmmain.BitBtn10Click(Sender: TObject);
begin //退出系统
if MessageDlg('确认要退出文档管理系统吗?',mtConfirmation, [mbNo,mbYes],0) = mrYes then
close;
end;
procedure TFrmmain.FormCreate(Sender: TObject);
var
F : TextFile;
begin
//////////////////////////////////////////////////////
try
AssignFile(F,'filemanagersetup.txt');
Reset(F);
Readln(F, ServerName);
// Readln(F,posnum);
if Length(ServerName)=0 then
begin
MessageDlg('配置文件不正确!系统退出',mtError,[mbOk],0);
Close;
end;
except
MessageDlg('配置文件不存在!系统退出',mtError,[mbOk],0);
Close;
end;
//////////////////////////////////////////////////////
//////////////数据库连接
try
G_AdoConnection := TAdoConnection.Create(nil);
G_AdoConnection.Connected := false;
G_AdoConnection.ConnectionString := 'Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Password=88071024hzic;Data Source=filetest';
G_AdoConnection.LoginPrompt := false;
G_AdoConnection.Connected := true;
except
ShowMessage('数据库连接失败,请检查设置!程序退出。');
close;
end;
//////////////////////////////////////
g_unit_id:=1; // 分公司号 城东
g_user_id:='0001'; //用户编号
g_password:='0001'; //用户密码
/////////////////////////////////////
bShowed:=false; //窗体是否已显示
////////////////////////////////////////
/////////////////////////////////////////////////
LoginForm := TLoginForm.Create(nil);
if LoginForm.ShowModal=mrCancel then
Application.Terminate;
LoginForm.Release;
//////////////////////////////////////////////////////////
if g_level=1 then
StatusBar1.Panels[0].Text:=g_user_name+'--文档管理员'
else
StatusBar1.Panels[0].Text:=g_user_name+'--个人文档处理';
//StatusBar1
Caption:='公文管理--'+g_unit_name;
///////////////// ent_file当前记录初始化
{
unit_id:=-1; //分公司号
iindex:= -1; //文件编号
title:= ''; //文件标题
path:= ''; //文件名
creater:= ''; //文件的创建者
time:= 0; //文件的创建时间
iclass:= -1; //文件分类号
memo:= ''; //文件说明
}//////////初始化的时间太晚了
/////////////////////////////////////////////////////
SetLength(g_accessoryinfo,20); //当前附件
g_ACnt:=0; //附件个数
/////////////////////////////////////
/////////////////////////////////////////////////// 托盘设置
with NotifyIcon do
begin
cbSize:=SizeOf(TNotifyIconData);
Wnd:=Handle; //指向当前窗体Form1的句柄
uID:=1;
uFlags:=NIF_ICON or NIF_TIP or NIF_MESSAGE;
uCallBackMessage:=WM_NID1;
hIcon:=Application.Icon.Handle;
szTip:='办公自动化系统';
end; //把设置好的变量NotifyIcon加入到系统中以便处理
Shell_NotifyIcon(NIM_ADD,@NotifyIcon);
///////////////////////////////////////////////////////////////////////////////////////////////
end;
procedure TFrmmain.SpeedButton1Click(Sender: TObject);
begin
OpenFlag:=1; //会稿人
if ADOQuery1.RecordCount>0 then //如果没有记录不让点击
begin
FrmPersonSel.ShowModal;
SpeedButton01Click(nil);
end;
end;
procedure TFrmmain.SpeedButton2Click(Sender: TObject);
begin
OpenFlag:=2; //核稿人
if ADOQuery1.RecordCount>0 then //如果没有记录不让点击
begin
FrmPersonSel.ShowModal;
SpeedButton02Click(nil);
end;
end;
procedure TFrmmain.SpeedButton3Click(Sender: TObject);
begin
OpenFlag:=3; //审稿人
if ADOQuery1.RecordCount>0 then //如果没有记录不让点击
begin
FrmPersonSel.ShowModal;
SpeedButton03Click(nil);
end;
end;
procedure TFrmmain.SpeedButton4Click(Sender: TObject);
begin
OpenFlag:=4; //阅稿人
if ADOQuery1.RecordCount>0 then //如果没有记录不让点击
begin
FrmPersonSel.ShowModal;
SpeedButton04Click(nil);
end;
end;
procedure TFrmmain.SpeedButton01Click(Sender: TObject);
var
qrTemp:TAdoQuery;
i,status:integer;
strdata,strdata2:string;
struser_id:string;
begin
OpenFlag:=1; //会稿人
qrTemp:=TAdoQuery.Create(nil);
qrTemp.Connection :=G_ADOConnection;
////////////////////////////////////////
qrTemp.SQL.Clear;
qrTemp.SQL.Text:='select a.status,a.user_id,b.name from ent_operater a,ent_person b where a.iindex='+inttostr(iindex)+' and a.step='+inttostr(OpenFlag)+' and a.user_id=b.user_id and a.unit_id='+inttostr(unit_id);
// ShowMessage(qrTemp.SQL.Text);
qrTemp.Open;
if qrTemp.RecordCount>0 then
begin
qrTemp.First;
for i:=0 to qrTemp.RecordCount-1 do
begin
status:=0;
try
status:=qrTemp.fieldbyname('status').AsInteger;
if status=1 then //已操作
begin
if strdata2='' then
strdata2:=qrTemp.fieldbyname('name').AsString
else
strdata2:=strdata2+','+qrTemp.fieldbyname('name').AsString;
end
else //未操作
begin
if strdata='' then
strdata:=qrTemp.fieldbyname('name').AsString
else
strdata:=strdata+','+qrTemp.fieldbyname('name').AsString;
end;
struser_id:=qrTemp.fieldbyname('user_id').AsString;
if struser_id=g_user_id then
BitBtn6.Enabled:=true;
qrTemp.Next;
except
qrTemp.Close;//
exit;
end;
end;
end;
StatusBar2.Panels[0].Width:=20;
if length(strdata)*8>20 then
StatusBar2.Panels[0].Width:=length(strdata)*8;
StatusBar2.Panels[0].Text:=strdata;
StatusBar2.Panels[1].Text:=strdata2;
//////////////////////////////////
end;
procedure TFrmmain.SpeedButton02Click(Sender: TObject);
var
qrTemp:TAdoQuery;
i,status:integer;
strdata,strdata2:string;
struser_id:string;
begin
OpenFlag:=2; //核稿人
qrTemp:=TAdoQuery.Create(nil);
qrTemp.Connection :=G_ADOConnection;
////////////////////////////////////////
qrTemp.SQL.Clear;
qrTemp.SQL.Text:='select a.status,a.user_id,b.name from ent_operater a,ent_person b where a.iindex='+inttostr(iindex)+' and a.step='+inttostr(OpenFlag)+' and a.user_id=b.user_id and a.unit_id='+inttostr(unit_id);
// ShowMessage(qrTemp.SQL.Text);
qrTemp.Open;
if qrTemp.RecordCount>0 then
begin
qrTemp.First;
for i:=0 to qrTemp.RecordCount-1 do
begin
status:=0;
try
status:=qrTemp.fieldbyname('status').AsInteger;
if status=1 then //已操作
begin
if strdata2='' then
strdata2:=qrTemp.fieldbyname('name').AsString
else
strdata2:=strdata2+','+qrTemp.fieldbyname('name').AsString;
end
else //未操作
begin
if strdata='' then
strdata:=qrTemp.fieldbyname('name').AsString
else
strdata:=strdata+','+qrTemp.fieldbyname('name').AsString;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -