frm_r_jbtjpas.pas

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

PAS
203
字号
unit Frm_R_JbtjPas;

interface

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

type
  TFrm_R_Jbtj = class(TMyModalForm)
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    TV: TTreeView;
    Qrjbtj: TQuickRep;
    QRGroup2: TQRGroup;
    QRExpr1: TQRExpr;
    QRBand2: TQRBand;
    QRDBText2: TQRDBText;
    QRDBText3: TQRDBText;
    QRDBText5: TQRDBText;
    QRDBText7: TQRDBText;
    QRDBText8: TQRDBText;
    QRDBText9: TQRDBText;
    QRDBText10: TQRDBText;
    QRShape14: TQRShape;
    QRBand3: TQRBand;
    QRLabel15: TQRLabel;
    QRExpr3: TQRExpr;
    QRBand5: TQRBand;
    QRLabel18: TQRLabel;
    QRExpr4: TQRExpr;
    QRBand1: TQRBand;
    QRShape32: TQRShape;
    QRLblzbbm: TQRLabel;
    QRlbldwmc: TQRLabel;
    QRLabel40: TQRLabel;
    QRSysData3: TQRSysData;
    QRSysData4: TQRSysData;
    QRLabel10: TQRLabel;
    QRShape4: TQRShape;
    QRLabel3: TQRLabel;
    QRLabel4: TQRLabel;
    QRLabel6: TQRLabel;
    QRLabel5: TQRLabel;
    QRLabel8: TQRLabel;
    QRLabel9: TQRLabel;
    QRLabel11: TQRLabel;
    QRLabel12: TQRLabel;
    QRLabel1: TQRLabel;
    PageFooterBand1: TQRBand;
    QRShape33: TQRShape;
    QRLabel2: TQRLabel;
    QRLabel7: TQRLabel;
    QRlblzd: TQRLabel;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    ksrq: TDateTimePicker;
    jsrq: TDateTimePicker;
    GroupBox2: TGroupBox;
    Label2: TLabel;
    yhbh: TEdit;
    chk2: TCheckBox;
    GroupBox3: TGroupBox;
    Label3: TLabel;
    xm: TEdit;
    chk3: TCheckBox;
    chk4: TCheckBox;
    bm: TEdit;
    Djbjl: TDataSource;
    BtnPrint: TChangeImg;
    LBtnPrint: TLabelB;
    BtnRefresh: TChangeImg;
    LBtnRefresh: TLabelB;
    ChangeImg4: TChangeImg;
    LabelB5: TLabelB;
    Quryjbjl: TADOQuery;
    Quryjbjlyhbh: TStringField;
    Quryjbjljbksrq: TStringField;
    Quryjbjljbkssj: TStringField;
    Quryjbjljbjzrq: TStringField;
    Quryjbjljbjzsj: TStringField;
    Quryjbjljbyy: TStringField;
    Quryjbjlyhxm: TStringField;
    Quryjbjlbmbh: TStringField;
    Quryjbjlbmmc: TStringField;
    procedure ChangeImg4Click(Sender: TObject);
    procedure TVClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnRefreshClick(Sender: TObject);
    procedure chk2Click(Sender: TObject);
    procedure chk3Click(Sender: TObject);
    procedure BtnPrintClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_R_Jbtj: TFrm_R_Jbtj;

implementation

uses DM_DataModal, UGlobal;

{$R *.dfm}

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

procedure TFrm_R_Jbtj.TVClick(Sender: TObject);
begin
  inherited;
  bm.text := TV.Selected.Text;
end;

procedure TFrm_R_Jbtj.FormCreate(Sender: TObject);
begin
  inherited;
  ksrq.date := date;
  jsrq.date := date;
  gtKqgl.LoadOrganTree(WindData.AdoConn, TV, 4); //初始化用户信息
end;

procedure TFrm_R_Jbtj.BtnRefreshClick(Sender: TObject);
var
  nodeValue, cs, csz: string;
begin
  if ksrq.datetime > jsrq.datetime then
  begin
    application.MessageBox('时间顺序错误!', '信息提示', mb_ok + mb_IconInformation);
    ksrq.SetFocus;
    exit;
  end;
  with Quryjbjl do
  begin
    sql.Clear;
    sql.add('select a.*,b.yhxm,b.bjbh as bmbh,b.bjmc as bmmc from kq_jbjl a,vzx_s_yhxx b where a.yhbh=b.yhbh');
    sql.add('and ((jbksrq>=''' + datetostr(ksrq.date) + ''' and jbjzrq<=''' + datetostr(jsrq.date) + ''')');
    sql.add('or (jbjzrq>=''' + datetostr(ksrq.date) + ''' and jbjzrq<=''' + datetostr(jsrq.date) + '''))');
    if chk2.Checked then
      sql.Add('and a.yhbh=' + chr(39) + trim(yhbh.text) + chr(39));
    if chk3.Checked then
      sql.Add('and b.yhxm like ''' + trim(xm.Text) + '%''');
    if chk4.Checked then
    begin
      try
        NodeValue := ptTreeNode(TV.Selected.data)^.nodeValue;
      except
        application.MessageBox('请选择部门', '信息提示', mb_ok + mb_IconInformation);
        TV.SetFocus;
        exit;
      end;
      cs := copy(NodeValue, 1, 1);
      csz := copy(NodeValue, 2, length(NodeValue) - 1);
      if cs = 'a' then
        sql.Add('and b.xqbh=''' + csz + '''')
      else if cs = 'b' then
        sql.Add('and b.yxbh=''' + csz + '''')
      else if cs = 'c' then
        sql.Add('and b.zybh=''' + csz + '''')
      else if cs = 'd' then
        sql.Add('and b.bjbh=''' + csz + '''');
    end;
    sql.add('order by b.bjbh,a.yhbh');
    open;
  end;
end;
     
procedure TFrm_R_Jbtj.chk2Click(Sender: TObject);
begin
  inherited;
  if chk2.checked then yhbh.SetFocus;
end;

procedure TFrm_R_Jbtj.chk3Click(Sender: TObject);
begin
  inherited;
  if chk3.checked then xm.SetFocus;
end;

procedure TFrm_R_Jbtj.BtnPrintClick(Sender: TObject);
begin
  inherited;
  try
    QRlbldwmc.Caption := '单位名称:' + gtSysCs.sSydw;
    QRLblzbbm.Caption := '制表部门:' + GtSysCs.sZbdw;
    QRlblzd.caption := '制单:' ;
    QRLabel12.caption := '统计日期:' + datetostr(ksrq.date) + '至' + datetostr(jsrq.date);
    Qrjbtj.preview;
  except
  end;
end;

end.

⌨️ 快捷键说明

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