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

📄 mainfrm.pas

📁 结合读卡器使用。程序中有按迟到时间长短自动开罚单功能
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Mainfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus,ShellApi,ComCtrls,DB, Grids, DBGrids, ExtCtrls, Buttons,
  StdCtrls, RXCtrls,PublicFuncfrm, ScktComp, jpeg,KaoqinFlashfrm;

const
  APPNAME = '苏视传媒';
  IID = 100;
  MouseMsg = WM_USER+1;
  

type
  TMainForm = class(TForm)
    PopupMenu1: TPopupMenu;
    Exit: TMenuItem;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    StatusBar1: TStatusBar;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    Panel1: TPanel;
    N20: TMenuItem;
    N21: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N29: TMenuItem;
    SSShu: TServerSocket;
    N30: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    N33: TMenuItem;
    N34: TMenuItem;
    N35: TMenuItem;
    N37: TMenuItem;
    N38: TMenuItem;
    N39: TMenuItem;
    N40: TMenuItem;
    N41: TMenuItem;
    Image1: TImage;
    Label3: TLabel;
    RichEdit1: TRichEdit;
    Image2: TImage;
    N42: TMenuItem;
    N43: TMenuItem;
    N44: TMenuItem;
    N45: TMenuItem;
    N46: TMenuItem;
    N47: TMenuItem;
    N48: TMenuItem;
    TimeKaoqinFlash: TTimer;
    N49: TMenuItem;
    N36: TMenuItem;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ExitClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N25Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure N27Click(Sender: TObject);
    procedure SSShuClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure N29Click(Sender: TObject);
    procedure Label1Click(Sender: TObject);
    procedure N32Click(Sender: TObject);
    procedure N35Click(Sender: TObject);
    procedure N33Click(Sender: TObject);
    procedure N34Click(Sender: TObject);
    procedure N38Click(Sender: TObject);
    procedure N39Click(Sender: TObject);
    procedure N40Click(Sender: TObject);
    procedure N41Click(Sender: TObject);
    procedure N23Click(Sender: TObject);
    procedure N43Click(Sender: TObject);
    procedure N31Click(Sender: TObject);
    procedure N47Click(Sender: TObject);
    procedure N45Click(Sender: TObject);
    procedure N48Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure TimeKaoqinFlashTimer(Sender: TObject);
    procedure N49Click(Sender: TObject);
    procedure N36Click(Sender: TObject);
  private
    KaoqinFlashForm:TKaoqinFlashForm;
    procedure InstallIcon;
    procedure LookForAMan;
    procedure MouseMessage(var message:TMessage);message MouseMsg;
    procedure SetMenu;
    procedure ShowKaoqinFlashForm;   //一旦执行,从Kaoqin表中提取当天有罚款的员工,
                                     //并调用KaoqinFlashForm每隔3秒显示一个,
                                     //并缩小按序输出至Image1的Canvas

    { Private declarations }
  public
    procedure CreateParams(var Params:TCreateParams);override;
    { Public declarations }
  end;

var
  MainForm: TMainForm;
  nTida:TNotifyIconDataA;

implementation
uses DataModule1,GetManfrm,Loginfrm,Paramsfrm, CheckDutyfrm, DayReportfrm,
  Bbsfrm, Penaltyfrm, PenaltyFlashfrm, Shoushifrm, ShoushiRptfrm, Applyfrm,
  ApplyRptfrm,qryConditionfrm,Selectfrm,GivePrizefrm,Invoicefrm,QryGridfrm,
  Tichengfrm,Analysefrm;

{$R *.dfm}

procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
     inherited CreateParams(Params);
     Params.WinClassName:=APPNAME;
end;

procedure TMainForm.MouseMessage(var message: TMessage);
var
   Mousept:TPoint;
begin
   inherited;
   if message.LParam = wm_rbuttonup then
   begin //用鼠标右键点击图标
      getcursorpos(mousept); //获取光标位置
      popupmenu1.popup(mousept.x, mousept.y);
   end;
   if message.LParam = wm_Lbuttonup then
   begin
       Showwindow(Handle,SW_SHOW);
       ShowWindow(Application.handle, SW_SHOW);
       SetWindowLong(Application.Handle, GWL_EXSTYLE,
        not (GetWindowLong(Application.handle, GWL_EXSTYLE)
        or WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW));
   end;
   message.Result:=0;
end;

procedure TMainForm.InstallIcon;
begin
     Icon:=TIcon.Create;
     Icon.LoadFromFile('MIcon.ico');
     nTiDa.cbSize:=Sizeof(nTida);
     nTida.Wnd:=Handle;
     nTida.uID:=IID;
     nTida.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
     nTida.hIcon:=Icon.Handle;
     nTida.uCallbackMessage:=MouseMsg;
     nTida.szTip:='苏视广告';
     Shell_NotifyIcon(NIM_ADD,@nTida);
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     DM.TBWorker.Close;
     DM.TBWorker_L.Close;
     DM.TBSysParams.Close;
     Action := caNone; //不对窗体进行任何操作
     ShowWindow(Handle, SW_HIDE); //隐藏主窗体
     ShowWindow(Application.Handle, SW_HIDE);  //隐藏应用程序窗口在任务栏上的显示
     SetWindowLong(Application.Handle, GWL_EXSTYLE,
     GetWindowLong(Application.handle, GWL_EXSTYLE)
     or WS_EX_TOOLWINDOW AND NOT WS_EX_APPWINDOW); 
end;

procedure TMainForm.ExitClick(Sender: TObject);
begin
    ntida.cbSize := sizeof(tnotifyicondataa);
    ntida.wnd := handle;
    ntida.uID := iid;
    ntida.uFlags := nif_icon + nif_tip + nif_message;
    ntida.uCallbackMessage := mousemsg;
    ntida.hIcon := Application.Icon.handle;
    ntida.szTip := 'Icon';
    shell_notifyicona(NIM_DELETE, @ntida);
    Application.Terminate;//删除已有的应用程序图标
end;



procedure TMainForm.FormCreate(Sender: TObject);
begin
   CurrentLev:=101;
   InstallIcon;
   GetParams;
end;

procedure TMainForm.N4Click(Sender: TObject);
var
  I:byte;
begin
    LoginForm:=TLoginForm.Create(Application);
    try
       LoginForm.ShowModal;
       if LoginForm.ModalResult =mrOK then
       begin
          I:=DM.PasswordRight(LoginForm.ComboBox1.Text,LoginForm.Edit1.Text);
          case I of
          0:StatusBar1.Panels[0].Text :='      '+'当前操作员: '+CurrentWorker; 
          1:Messagebox(Application.Handle,'密码输入不正确!',
               '提示',MB_OK+MB_ICONERROR+MB_SYSTEMMODAL);
          2:Messagebox(Application.Handle,'查无此人',
               '提示',MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);
          end;
       end;

    finally
       LoginForm.Free;
    end;
    SetMenu;

end;

procedure TMainForm.N13Click(Sender: TObject);
begin
    CurrentAct:=0;
    GetManForm:=TGetManForm.Create(Application);
    try
      GetManForm.ShowModal;
    finally
      GetManForm.Free;
    end;
end;

procedure TMainForm.N14Click(Sender: TObject);
begin
     CurrentAct:=1;
     LookforAMan;
end;

procedure TMainForm.N18Click(Sender: TObject);
begin
     CurrentAct:=2;
     LookforAMan;
end;

procedure TMainForm.N15Click(Sender: TObject);
begin
    CurrentAct:=3;
    LookforAMan;
end;

procedure TMainForm.LookForAMan;   //不用ManinfoList
var
   Aname:String;
   CanGet:boolean;
begin
   CanGet:=False;
   Aname:=inputBox('输入信息','请输入要修改的员工姓名或卡号','');
   with DM.TBWorker do
   begin
      Open;
   if  Locate('M_Name',AName,[locaseinsensitive]) then Canget:=true;
   if  Locate('M_No',AName,[locaseinsensitive]) then Canget:=True;
   end;
   if CanGet then
   begin
      GetManForm:=TGetManForm.Create(Application);
         try
            GetManForm.ShowModal;
         finally
            GetManForm.Free;
         end;
   end
   else MessageBox(Application.Handle,'查无此人',
             '提示',MB_OK+MB_ICONERROR+MB_SYSTEMMODAL);
end;



procedure TMainForm.N16Click(Sender: TObject);
begin
   ParamsForm:=TParamsForm.Create(Application);
   try
      paramsForm.ShowModal;
   finally
      ParamsForm.Free;
   end;
end;

procedure TMainForm.N17Click(Sender: TObject);
begin
    DM.GetDataFromServer;
end;


procedure TMainForm.N19Click(Sender: TObject);
var
   yy:boolean;
begin
    with DM.qryKaoqin do
    begin
       Close;
       SQL.Clear;
       SQL.Add('Select * from Kaoqin');
       SQL.Add('Where (K_Date=:varDate) and (K_Penalty>:varPenalty)');
       params[0].AsDateTime :=Date;
       Params[1].AsInteger :=0;
       Open;
       First;
       if fieldByName('K_Check').AsString='已批复' then yy:=True else yy:=False;
    end;

    if not yy then
    begin
    if not DM.qryKaoqin.Eof then
    begin
       CheckDutyForm:=TCheckDutyForm.Create(Application);
       try
          CheckDutyForm.ShowModal;
       finally
          CheckDutyForm.Free;
       end;
    end
    else
    begin
       if Time<0.458 then
         MessageBox(Application.Handle,'考勤数据将在10:00时送达',
        '提示',MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL)
       else
         MessageBox(Application.Handle,pchar(ErrLate),
        '提示',MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);
    end;
    end
    else MessageBox(Application.Handle,'今天已经有人核查过考勤数据了',

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -