frm_r_cqhzpas.pas

来自「是一个用delphi设计的考勤系统」· PAS 代码 · 共 505 行

PAS
505
字号
unit Frm_R_CqhzPas;

interface

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

type
  TFrm_R_Cqhz = class(TMyModalForm)
    Panel4: TPanel;
    TV: TTreeView;
    DataSource1: TDataSource;
    Panel1: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    rgp: TRadioGroup;
    ksrq: TDateTimePicker;
    jsrq: TDateTimePicker;
    edtbmmc: TEdit;
    edtyhbh: TEdit;
    edtyhxm: TEdit;
    rbn1: TRadioButton;
    rbn2: TRadioButton;
    rbn3: TRadioButton;
    ProgressBar1: TProgressBar;
    dbg: TDBGrid;
    StatusBar1: TStatusBar;
    ChangeImg1: TChangeImg;
    LabelB1: TLabelB;
    ChangeImg2: TChangeImg;
    LabelB2: TLabelB;
    LBtnFind: TLabelB;
    BtnPrint: TChangeImg;
    LBtnPrint: TLabelB;
    ChangeImg4: TChangeImg;
    LabelB5: TLabelB;
    BtnBrowse: TChangeImg;
    BtnFind: TChangeImg;
    Pkq_M_kqqkhz: TADOStoredProc;
    Qcqhz: TADOQuery;
    QuickRep2: TQuickRep;
    DetailBand2: TQRBand;
    QRDBText2: TQRDBText;
    QRDBText5: TQRDBText;
    QRDBText6: TQRDBText;
    QRDBText8: TQRDBText;
    QRDBText9: TQRDBText;
    QRShape11: TQRShape;
    QRShape12: TQRShape;
    QRShape14: TQRShape;
    QRShape15: TQRShape;
    QRShape16: TQRShape;
    QRShape17: TQRShape;
    QRShape39: TQRShape;
    QRDBText11: TQRDBText;
    QRShape18: TQRShape;
    QRShape19: TQRShape;
    QRDBText3: TQRDBText;
    QRDBText4: TQRDBText;
    QRShape10: TQRShape;
    QRShape22: TQRShape;
    QRShape21: TQRShape;
    QRDBText10: TQRDBText;
    QRDBText12: TQRDBText;
    QRDBText13: TQRDBText;
    QRDBText14: TQRDBText;
    QRDBText15: TQRDBText;
    QRDBText16: TQRDBText;
    QRShape27: TQRShape;
    QRShape28: TQRShape;
    QRShape29: TQRShape;
    QRShape30: TQRShape;
    QRDBText7: TQRDBText;
    QRGroup1: TQRGroup;
    QRLabel1: TQRLabel;
    QRDBText1: TQRDBText;
    QRShape1: TQRShape;
    QRLabel26: TQRLabel;
    QRLabel27: TQRLabel;
    QRLabel29: TQRLabel;
    QRLabel30: TQRLabel;
    QRShape3: TQRShape;
    QRShape4: TQRShape;
    QRShape6: TQRShape;
    QRShape7: TQRShape;
    QRShape8: TQRShape;
    QRShape38: TQRShape;
    QRLabel36: TQRLabel;
    QRShape2: TQRShape;
    QRShape5: TQRShape;
    QRShape13: TQRShape;
    qlabqj2: TQRLabel;
    qlabqj7: TQRLabel;
    QRShape20: TQRShape;
    QRLabel2: TQRLabel;
    qlabqj3: TQRLabel;
    QRShape23: TQRShape;
    qlabqj4: TQRLabel;
    QRShape24: TQRShape;
    qlabqj5: TQRLabel;
    QRShape25: TQRShape;
    qlabqj6: TQRLabel;
    QRShape26: TQRShape;
    qlabqj1: TQRLabel;
    QRBand1: TQRBand;
    QRLabel16: TQRLabel;
    QRLabel35: TQRLabel;
    QRExpr2: TQRExpr;
    QRLabel5: TQRLabel;
    QRExpr4: TQRExpr;
    QRExpr1: TQRExpr;
    QRLabel3: TQRLabel;
    QRExpr3: TQRExpr;
    QRBand2: TQRBand;
    QRShape32: TQRShape;
    QRLblzbbm: TQRLabel;
    QRlbldwmc: TQRLabel;
    QRLabel40: TQRLabel;
    QRSysData1: TQRSysData;
    QRSysData2: TQRSysData;
    QRLabel6: TQRLabel;
    qlabksrq: TQRLabel;
    qlabjsrq: TQRLabel;
    QRLabel7: TQRLabel;
    PageFooterBand1: TQRBand;
    QRShape33: TQRShape;
    QRLabel4: TQRLabel;
    QRLabel8: TQRLabel;
    QRlblzd: TQRLabel;
    qlabqj8: TQRLabel;
    qlabqj444: TQRLabel;
    qlabqj9: TQRLabel;
    qlabqj10: TQRLabel;
    qlabqj11: TQRLabel;
    qlabqj12: TQRLabel;
    qlabqj13: TQRLabel;
    qlabqj14: TQRLabel;
    QRShape34: TQRShape;
    QRShape35: TQRShape;
    QRShape36: TQRShape;
    QRShape37: TQRShape;
    QRShape40: TQRShape;
    QRShape41: TQRShape;
    QRShape42: TQRShape;
    QRShape43: TQRShape;
    QRShape44: TQRShape;
    QRShape45: TQRShape;
    QRShape46: TQRShape;
    QRDBText17: TQRDBText;
    QRDBText18: TQRDBText;
    QRDBText19: TQRDBText;
    QRDBText20: TQRDBText;
    QRDBText21: TQRDBText;
    QRDBText22: TQRDBText;
    QRShape47: TQRShape;
    QRShape48: TQRShape;
    QRShape49: TQRShape;
    QRShape50: TQRShape;
    QRShape51: TQRShape;
    QRShape52: TQRShape;
    QRShape53: TQRShape;
    qlabqj15: TQRLabel;
    qlabqj16: TQRLabel;
    qlabqj17: TQRLabel;
    qlabqj18: TQRLabel;
    qlabqj19: TQRLabel;
    qlabqj20: TQRLabel;
    QRShape54: TQRShape;
    QRShape55: TQRShape;
    QRShape56: TQRShape;
    QRShape57: TQRShape;
    QRShape58: TQRShape;
    QRDBText23: TQRDBText;
    QRDBText24: TQRDBText;
    QRDBText25: TQRDBText;
    QRDBText26: TQRDBText;
    QRDBText27: TQRDBText;
    QRDBText28: TQRDBText;
    QRShape59: TQRShape;
    QRShape60: TQRShape;
    QRShape9: TQRShape;
    QRShape61: TQRShape;
    procedure ChangeImg4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ChangeImg1Click(Sender: TObject);
    procedure ChangeImg2Click(Sender: TObject);
    procedure BtnBrowseClick(Sender: TObject);
    procedure BtnFindClick(Sender: TObject);
    procedure edtyhbhEnter(Sender: TObject);
    procedure edtyhxmEnter(Sender: TObject);
    procedure edtbmmcEnter(Sender: TObject);
    procedure BtnPrintClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_R_Cqhz: TFrm_R_Cqhz;

implementation

uses DM_DataModal, UGlobal, Frm_SlectClass;

{$R *.dfm}

procedure TFrm_R_Cqhz.ChangeImg4Click(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TFrm_R_Cqhz.FormCreate(Sender: TObject);
var
  qry: TADOQuery;
begin
  inherited;
  qry := TADOQuery.Create(self);
  //////////////填充请假类别//////////////////////////////////
  try
    with qry do
    begin
      Connection := WindData.AdoConn;
      sql.Clear;
      sql.Add('select * from kq_qqlb');
      open;
      while not eof do
      begin
        if strtoint(fieldbyname('qqbh').asstring) = 1 then
        begin
          dbg.columns[6].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj1.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 2 then
        begin
          dbg.columns[7].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj2.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 3 then
        begin
          dbg.columns[8].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj3.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 4 then
        begin
          dbg.columns[9].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj4.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 5 then
        begin
          dbg.columns[10].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj5.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 6 then
        begin
          dbg.columns[11].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj6.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 7 then
        begin
          dbg.columns[12].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj7.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 8 then
        begin
          dbg.columns[13].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj8.Caption := fieldbyname('qqmc').asstring;
        end;
//---------------中行专用---------
        if strtoint(fieldbyname('qqbh').asstring) = 9 then
        begin
          dbg.columns[14].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj9.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 10 then
        begin
          dbg.columns[15].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj10.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 11 then
        begin
          dbg.columns[16].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj11.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 12 then
        begin
          dbg.columns[17].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj12.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 13 then
        begin
          dbg.columns[18].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj13.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 14 then
        begin
          dbg.columns[19].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj14.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 15 then
        begin
          dbg.columns[20].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj15.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 16 then
        begin
          dbg.columns[21].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj16.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 17 then
        begin
          dbg.columns[22].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj17.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 18 then
        begin
          dbg.columns[23].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj18.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 19 then
        begin
          dbg.columns[24].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj19.Caption := fieldbyname('qqmc').asstring;
        end;
        if strtoint(fieldbyname('qqbh').asstring) = 20 then
        begin
          dbg.columns[25].Title.Caption := fieldbyname('qqmc').asstring;
          qlabqj20.Caption := fieldbyname('qqmc').asstring;
        end;
//----------------中行专用结束------------
        next;
      end;
    end;
  finally
    qry.free;
  end;
  ////////////////////////////////////////
  progressbar1.position := 0;
  ksrq.date := date();
  jsrq.date := date();
end;


procedure TFrm_R_Cqhz.ChangeImg1Click(Sender: TObject);
var
  NodeValue: string;
begin
  inherited;
  try
    NodeValue := ptTreeNode(TV.Selected.data)^.nodeValue;
    if TV.Selected.level > 2 then edtbmmc.text := TV.Selected.Text;
    panel4.visible := false;
  except
    application.MessageBox('请选择部门!', '信息提示', mb_ok + mb_IconInformation);
    exit;
  end;

end;

procedure TFrm_R_Cqhz.ChangeImg2Click(Sender: TObject);
begin
  inherited;
  panel4.visible := false;
end;

procedure TFrm_R_Cqhz.BtnBrowseClick(Sender: TObject);
begin
  inherited;
  rbn3.Checked := True;
  if not assigned(SlectClass) then
  SlectClass := TSlectClass.Create(Application);
  slectclass.SelFlag:='BJXZ';
  SlectClass.Show;
  {
  panel4.visible := true;
  gtKqgl.LoadOrganTree(WindData.AdoConn, TV, 4); //初始化用户信息
  }
end;

procedure TFrm_R_Cqhz.BtnFindClick(Sender: TObject);
var
  qry: TADOQuery;
  RetMsg: string;
  RetVal: Integer;
begin
  inherited;
  if datetostr(ksrq.date) = '' then
    showmessage('请输入开始查询日期!');
  if datetostr(jsrq.date) = '' then
    showmessage('请输入结束查询日期');
  if (rbn1.Checked) and (edtyhbh.Text = '') then
    showmessage('请选择用户编号查询!');
  if (rbn2.Checked) and (edtyhxm.Text = '') then
    showmessage('请选择用户姓名查询!');
  if (rbn3.Checked) and (edtbmmc.Text = '') then
    showmessage('请选择部门名称查询!');
  qry := TADOQuery.Create(self);
  try
    qry.Connection := WindData.AdoConn;
    with qry do
    begin
      sql.Clear;
      sql.Add('delete kq_kqhzcur');
      execsql;
      sql.Clear;
      sql.Add('select yhbh from Vzx_s_yhxx where 2>1');
      if rbn1.Checked then sql.Add(' and yhbh=''' + trim(edtyhbh.Text) + '''');
      if rbn2.Checked then sql.Add(' and yhxm=''' + trim(edtyhxm.text) + '''');
      if rbn3.Checked then sql.Add(' and bjmc=''' + trim(edtbmmc.text) + '''');
      if rgp.ItemIndex = 0 then
        sql.Add(' and yhbh in (select distinct yhbh from kq_bcsd)')
      else
        sql.Add(' and yhbh in (select distinct yhbh from kq_kqqk)');
      open;
      last;
      progressbar1.Max := recordcount;
      progressbar1.Position := 0;
      first;
      while not eof do
      begin
        progressbar1.Position := progressbar1.Position + 1;
        with Pkq_M_kqqkhz do
        begin
          if rgp.ItemIndex = 0 then
            Parameters.parambyname('@sign').Value := '0' //当月
          else
            Parameters.parambyname('@sign').Value := '1'; //历月
          Parameters.parambyname('@yhbh').Value := qry.fieldbyname('yhbh').asstring;
          Parameters.parambyname('@ksrq').Value := datetimetostr(ksrq.datetime);
          Parameters.parambyname('@jsrq').Value := datetimetostr(jsrq.datetime);
          ExecProc;
          RetVal := Parameters.parambyname('@RETURN_VALUE').Value;
          RetMsg := Parameters.parambyname('@retmsg').Value;
          if RetVal <> 0 then
          begin
            application.MessageBox(PChar(RetMsg), '系统提示', mb_ok);
            break;
          end;
        end;
        next;
      end;
    end;
  finally
    qry.free;
  end;
  //网格中显示数据
  Qcqhz.close;
  Qcqhz.sql.Clear;
  Qcqhz.sql.Add('select * from kq_kqhzcur order by bm,xm');
  try
    Qcqhz.open;
  except
    Qcqhz.active := true;
  end;
  progressbar1.Position := 0;
  if Qcqhz.RecordCount < 1 then
    showmessage('对不起,没有您要找的数据!')
end;

procedure TFrm_R_Cqhz.edtyhbhEnter(Sender: TObject);
begin
  inherited;
  rbn1.Checked := True;
end;

procedure TFrm_R_Cqhz.edtyhxmEnter(Sender: TObject);
begin
  inherited;
  rbn2.Checked := True;
end;

procedure TFrm_R_Cqhz.edtbmmcEnter(Sender: TObject);
begin
  inherited;
  rbn3.Checked := True;
end;

procedure TFrm_R_Cqhz.BtnPrintClick(Sender: TObject);
begin
  inherited;
  QRlbldwmc.Caption := '单位名称:' + gtSysCs.sSydw;
  QRLblzbbm.Caption := '制表部门:' + gtSysCs.sZbDw;
  QRlblzd.caption := '制单:';
  qlabksrq.Caption := datetostr(ksrq.date);
  qlabjsrq.caption := datetostr(jsrq.date);
  QuickRep2.PreviewModal;
end;

procedure TFrm_R_Cqhz.FormActivate(Sender: TObject);
begin
  inherited;
  if length(GsTempstr2) > 0 then
  begin
    edtbmmc.Text := GsTempstr2;
  end;
end;

end.

⌨️ 快捷键说明

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