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

📄 frm_c_gsjspas.pas

📁 是一个用delphi设计的考勤系统
💻 PAS
字号:
unit frm_c_gsjspas;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, ModalForm, Menus, StdCtrls, ExtCtrls, Grids, DBGrids,
   YLabelButton, ChangeImage, ComCtrls, DB, ADODB, UErrDisplay;

type
   Tfrm_c_gsjs = class(TMyModalForm)
      stb: TStatusBar;
      PageControl1: TPageControl;
      TabSheet1: TTabSheet;
      TabSheet2: TTabSheet;
      GroupBox2: TGroupBox;
      TvJglist: TTreeView;
      BtnNew: TChangeImg;
      LbtnNew: TLabelB;
      BtnEdit: TChangeImg;
      LBtnEdit: TLabelB;
      BtnRefresh: TChangeImg;
      LBtnRefresh: TLabelB;
      BtnHelp: TChangeImg;
      LBtnHelp: TLabelB;
      GroupBox1: TGroupBox;
      lvyhxx: TListView;
      BtnInport: TChangeImg;
      LBtnInport: TLabelB;
      ListView1: TListView;
      PopupMenu1: TPopupMenu;
      dfgfd1: TMenuItem;
      N1: TMenuItem;
      N2: TMenuItem;
      N3: TMenuItem;
      N4: TMenuItem;
      edtyhbh: TEdit;
      edtyhxm: TEdit;
      Label1: TLabel;
      Label2: TLabel;
      Label3: TLabel;
      Label4: TLabel;
      qry: TADOQuery;
      procedure FormCreate(Sender: TObject);
      procedure TvJglistClick(Sender: TObject);
      procedure lvyhxxClick(Sender: TObject);
      procedure lvyhxxColumnClick(Sender: TObject; Column: TListColumn);
      procedure N2Click(Sender: TObject);
      procedure dfgfd1Click(Sender: TObject);
      procedure N1Click(Sender: TObject);
      procedure BtnInportClick(Sender: TObject);
      procedure edtyhbhKeyPress(Sender: TObject; var Key: Char);
      procedure FormShow(Sender: TObject);
      procedure BtnNewClick(Sender: TObject);
      procedure BtnEditClick(Sender: TObject);
      procedure BtnRefreshClick(Sender: TObject);
      procedure BtnHelpClick(Sender: TObject);
      procedure edtyhxmKeyPress(Sender: TObject; var Key: Char);
   private
    { Private declarations }
      procedure IniForm;
      procedure showyhxx(sYhbh: string);
   public
    { Public declarations }
   end;

var
   frm_c_gsjs: Tfrm_c_gsjs;

implementation

uses DM_DataModal, UGeneralFunc, UPublicFunc, UGlobal, UTcard, UTYhxx;
var
   yhcard: Tcard;
   yhxx: Tyhxx;

{$R *.dfm}

procedure Tfrm_c_gsjs.FormCreate(Sender: TObject);
begin
   inherited;
   LoadOrganTree(WindData.AdoConn, TvJglist, 4);
   yhcard := Tcard.Create;
   yhxx := Tyhxx.create;
end;

procedure Tfrm_c_gsjs.IniForm;
begin
   edtyhbh.Text := '';
   edtyhxm.Text := '';
   lvyhxx.Items.Clear;
   stb.Panels[1].Text := '输入用户编号或姓名后按[Enter]提取用户信息,也可点击相关部门得到';
   edtyhbh.SetFocus;
   edtyhbh.SelectAll;
end;

procedure Tfrm_c_gsjs.TvJglistClick(Sender: TObject);
var
   TempNode: TTreeNode;
   sBjbh: string;
   sNodeValue: string;
   tlItem: TListItem;
   sSql: string;
begin
   inherited;
   if TvJgList.Selected = nil then exit;
   TempNode := TvJgList.Selected;
   if TempNode.Level = 3 then
   begin
      sNodeValue := ptTreeNode(TVJglist.selected.data)^.NodeValue;
      if copy(sNodeValue, 1, 1) = 'd' then
      begin
         Lvyhxx.Clear;
         sBjbh := copy(sNodeValue, 2, length(sNodeValue) - 1);
         with WindData.PublicQuery do
         begin
            close;
            sql.Clear;
            sSql := 'select * from vzx_s_yhxx where bjbh=''' + sBjbh + ''' and sybz<>6 order by yhbh';
            sql.Add(sSql);
            open;
            last;
            if RecordCount > 0 then
            begin
               stb.Panels[1].Text := '点击[挂失]或[解挂]进行批量操作,或按鼠标右键进行单用操作';
               Stb.Panels[3].Text := inttostr(RecordCount);
               Stb.Panels[5].Text := '0';
               first;
               while not eof do
               begin
                  tlItem := LvYhxx.Items.Add;
                  tlItem.Caption := fieldbyname('sybz').asstring;
                  tlItem.SubItems.Add(fieldbyname('yhbh').asstring);
                  tlItem.SubItems.Add(fieldbyname('yhxm').asstring);
                  tlItem.SubItems.Add(fieldbyname('Cardsn').asstring);
                  tlItem.SubItems.Add(trim(format('%12.2f', [fieldbyname('cardye').asfloat])));
                  tlItem.SubItems.Add(fieldbyname('gxcs').asstring);
                  tlItem.SubItems.Add(fieldbyname('bjmc').asstring);
                  tLitem.Checked := True;
                  next;
               end;
               close;
            end
            else
            begin
               stb.Panels[1].Text := '无符合条件的记录';
               ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
               Stb.Panels[3].Text := '0';
               Stb.Panels[5].Text := '0';
            end;
        //lvYhxxClick(application);
         end;
      end;
   end;
end;

procedure Tfrm_c_gsjs.lvyhxxClick(Sender: TObject);
var
   i, iCount: integer;
begin
   inherited;
   iCount := 0;
   for i := 0 to lvyhxx.Items.Count - 1 do
   begin
      if lvyhxx.Items[i].Checked then
         inc(iCount);
   end;
   stb.Panels[3].Text := inttostr(iCount);
   stb.Panels[5].Text := '0';
end;

procedure Tfrm_c_gsjs.lvyhxxColumnClick(Sender: TObject;
   Column: TListColumn);
var
   i: integer;
begin
   inherited;
   if Column.Index = 0 then
   begin
      for i := 0 to lvyhxx.Items.Count - 1 do
         lvyhxx.Items[i].Checked := not lvyhxx.Items[i].Checked;
      lvYhxxClick(application);
   end;
end;

procedure Tfrm_c_gsjs.N2Click(Sender: TObject);
begin
   inherited;
   if lvyhxx.Selected <> nil then
      lvyhxx.Selected.Delete;
end;

procedure Tfrm_c_gsjs.dfgfd1Click(Sender: TObject);
begin
   inherited;
   if lvyhxx.Selected <> nil then
   begin
      yhxx.GetYhxx(lvyhxx.Selected.SubItems[0]);
      if yhxx.YhGs('中心挂失') then lvyhxx.Selected.Caption := inttostr(yhxx.Sybz);
      stb.Panels[1].Text := '[' + inttostr(yhxx.retval) + ']' + yhxx.RetMsg;
      ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
   end;
end;

procedure Tfrm_c_gsjs.N1Click(Sender: TObject);
begin
   inherited;
   if lvyhxx.Selected <> nil then
   begin
      yhxx.GetYhxx(lvyhxx.Selected.SubItems[0]);
      if yhxx.yhjg('中心解挂') then lvyhxx.Selected.Caption := inttostr(yhxx.Sybz);
      stb.Panels[1].Text := '[' + inttostr(yhxx.retval) + ']' + yhxx.RetMsg;
      ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
   end;
end;

procedure Tfrm_c_gsjs.BtnInportClick(Sender: TObject);
var
   sShowStr: string;
begin
   inherited;
   yhcard.yhdk(False);
   stb.Panels[1].Text := '[' + inttostr(yhcard.RetVal) + ']' + yhcard.RetMsg;
   ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
   yhxx.GetYhxx(yhcard.Yhbh);
   if yhxx.RetVal = 0 then
   begin
      if yhxx.Sybz = 6 then
      begin
         stb.Panels[1].Text := '用户[' + yhxx.Yhxm + ']已注销';
         ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
         exit;
      end;
      sShowStr := '  卡序列号:' + inttostr(yhcard.CardSN) + #10#13 +
         '  用户编号:' + yhxx.Yhbh + #10#13 +
         '  用户姓名:' + yhxx.Yhxm + #10#13 +
         '  所属单位:' + yhxx.Bjmc + #10#13 +
         '  银行帐号:' + yhxx.Track1 + #13#10 +
         '  卡内余额:' + trim(format('%12.2f', [yhxx.cardye])) + #13#10 +
         '  是否要解挂请确认';
      if application.MessageBox(pchar(sShowStr), '用户注销', mb_OkCancel + mb_iconquestion) = id_ok then
      begin
         yhcard.cardjg;
         showyhxx(yhcard.Yhbh);
         stb.Panels[1].Text := '[' + inttostr(yhcard.RetVal) + ']' + yhcard.RetMsg;
      end;
   end
   else
      stb.Panels[1].Text := '[' + inttostr(yhxx.RetVal) + ']' + yhxx.RetMsg;
   ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
end;

procedure Tfrm_c_gsjs.edtyhbhKeyPress(Sender: TObject; var Key: Char);
begin
   inherited;
   if (key = #13) and (trim(edtyhbh.Text) <> '') then
      showyhxx(trim(edtyhbh.Text));
end;

procedure Tfrm_c_gsjs.FormShow(Sender: TObject);
begin
   inherited;
   IniForm;
end;

procedure Tfrm_c_gsjs.showyhxx(sYhbh: string);
var
   tlItem: TListItem;
begin
   inherited;
   if yhxx.GetYhxx(sYhbh) then
   begin
      lvyhxx.Items.Clear;
      tlItem := LvYhxx.Items.Add;
      tlItem.Caption := inttostr(yhxx.Sybz);
      tlItem.SubItems.Add(yhxx.yhbh);
      tlItem.SubItems.Add(yhxx.Yhxm);
      tlItem.SubItems.Add(inttostr(yhxx.Cardsn));
      tlItem.SubItems.Add(trim(format('%12.2f', [yhxx.cardye])));
      tlItem.SubItems.Add(inttostr(yhxx.Gxcs));
      tlItem.SubItems.Add(yhxx.Bjmc);
      tLitem.Checked := True;
      stb.Panels[1].Text := '点击[挂失]或[解挂]进行批量操作,或按鼠标右键进行单用操作';
      exit;
   end;
   stb.Panels[1].Text := '[' + inttostr(yhxx.RetVal) + ']' + yhxx.RetMsg;
   ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
end;

procedure Tfrm_c_gsjs.BtnNewClick(Sender: TObject);
var
   i: integer;
begin
   inherited;
   for i := 0 to lvyhxx.Items.Count - 1 do
   begin
      if lvyhxx.Items[i].Checked then
      begin
         if yhxx.GetYhxx(lvyhxx.Items[i].SubItems[0]) then
         begin
            if yhxx.YhGs('中心挂失') then
            begin
               lvyhxx.Items[i].Caption := '2';
               if trim(stb.Panels[5].Text) = '' then stb.Panels[5].Text := '0';
               stb.Panels[5].Text := inttostr(strtoint(stb.Panels[5].Text) + 1);
            end;
         end;
         stb.Panels[1].Text := '[' + inttostr(yhxx.RetVal) + ']' + yhxx.RetMsg;
         ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
      end;
   end;
end;

procedure Tfrm_c_gsjs.BtnEditClick(Sender: TObject);
var
   i: integer;
begin
   inherited;
   for i := 0 to lvyhxx.Items.Count - 1 do
   begin
      if lvyhxx.Items[i].Checked then
      begin
         if yhxx.GetYhxx(lvyhxx.Items[i].SubItems[0]) then
         begin
            if yhxx.YhJg('中心挂失') then
            begin
               lvyhxx.Items[i].Caption := '1';
               if trim(stb.Panels[5].Text) = '' then stb.Panels[5].Text := '0';
               stb.Panels[5].Text := inttostr(strtoint(stb.Panels[5].Text) + 1);
            end;
         end;
         stb.Panels[1].Text := '[' + inttostr(yhxx.RetVal) + ']' + yhxx.RetMsg;
         ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
      end;
   end;
end;

procedure Tfrm_c_gsjs.BtnRefreshClick(Sender: TObject);
begin
   inherited;
   IniForm;
end;

procedure Tfrm_c_gsjs.BtnHelpClick(Sender: TObject);
begin
   inherited;
   HtmlHelp(Handle, gtSyscs.sHelpFileName, $0001, DWORD(PChar('Introduction.htm')));
end;

procedure Tfrm_c_gsjs.edtyhxmKeyPress(Sender: TObject; var Key: Char);
var
   tlItem: TListItem;
begin
   inherited;
   if (key = #13) and (trim(edtyhxm.Text) <> '') then
   begin
      with qry do
      begin
         sql.Clear;
         sql.Add('select * from zx_s_yhxx where yhxm like ''%' + edtyhxm.Text + '%''');
         open;
         lvyhxx.Items.Clear;
         if RecordCount <= 0 then
         begin
            stb.Panels[1].Text := '无符合条件的计录';
            ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
            exit;
         end;
         while not eof do
         begin
            if yhxx.GetYhxx(fieldbyname('Yhbh').asstring) then
            begin
               tlItem := LvYhxx.Items.Add;
               tlItem.Caption := inttostr(yhxx.Sybz);
               tlItem.SubItems.Add(yhxx.yhbh);
               tlItem.SubItems.Add(yhxx.Yhxm);
               tlItem.SubItems.Add(inttostr(yhxx.Cardsn));
               tlItem.SubItems.Add(trim(format('%12.2f', [yhxx.cardye])));
               tlItem.SubItems.Add(inttostr(yhxx.Gxcs));
               tlItem.SubItems.Add(yhxx.Bjmc);
               tLitem.Checked := True;
            end;
            next;
         end;
         stb.Panels[1].Text := '点击[挂失]或[解挂]进行批量操作,或按鼠标右键进行单用操作';
      end;
   end
end;

end.

⌨️ 快捷键说明

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