?? 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;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 + -