⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.pas

📁 一个基于局域网的公司公文管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -