frm_r_kqtjpas.pas

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

PAS
267
字号
unit Frm_R_KqtjPas;

interface

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

type
  TFrm_R_Kqtj = class(TMyModalForm)
    TV: TTreeView;
    Panel1: TPanel;
    Panel3: TPanel;
    GroupBox2: TGroupBox;
    yhbh: TEdit;
    chk2: TCheckBox;
    chk3: TCheckBox;
    yhxm: TEdit;
    chk6: TCheckBox;
    bmmc: TEdit;
    Chk4: TCheckBox;
    Chk5: TCheckBox;
    bcms: TComboBox;
    rbn1: TRadioButton;
    rbn2: TRadioButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    ksrq: TDateTimePicker;
    jsrq: TDateTimePicker;
    Animate1: TAnimate;
    DBGrid1: TDBGrid;
    report_kqtj: TQuickRep;
    DetailBand1: TQRBand;
    QRDBText110: TQRDBText;
    QRDBText115: TQRDBText;
    QRDBText116: TQRDBText;
    QRDBText117: TQRDBText;
    QRShape1: TQRShape;
    QRDBText1: TQRDBText;
    SummaryBand1: TQRBand;
    QRLabel177: TQRLabel;
    QRExpr20: TQRExpr;
    QRGroup3: TQRGroup;
    QRShape2: TQRShape;
    QRDBText2: TQRDBText;
    QRBand2: TQRBand;
    QRLabel161: TQRLabel;
    QRExpr19: TQRExpr;
    QRShape3: TQRShape;
    QRShape5: TQRShape;
    QRBand1: TQRBand;
    QRShape32: TQRShape;
    QRLblzbbm: TQRLabel;
    QRlbldwmc: TQRLabel;
    QRLabel40: TQRLabel;
    QRSysData1: TQRSysData;
    QRSysData2: TQRSysData;
    QRLabel6: TQRLabel;
    QRLabel166: TQRLabel;
    QRLabel167: TQRLabel;
    QRLabel170: TQRLabel;
    QRLabel172: TQRLabel;
    QRLabel173: TQRLabel;
    QRLabel1: TQRLabel;
    QRLabel2: TQRLabel;
    QRShape4: TQRShape;
    PageFooterBand1: TQRBand;
    QRShape33: TQRShape;
    QRLabel4: TQRLabel;
    QRLabel8: TQRLabel;
    QRlblzd: TQRLabel;
    Dkqtj: TDataSource;
    BtnPrint: TChangeImg;
    LBtnPrint: TLabelB;
    ChangeImg1: TChangeImg;
    LabelB1: TLabelB;
    ChangeImg4: TChangeImg;
    LabelB5: TLabelB;
    qrykqtj: TADOQuery;
    GroupBox3: TGroupBox;
    cqqk_x: TCheckBox;
    cqqk_c: TCheckBox;
    cqqk_z: TCheckBox;
    cqqk_o: TCheckBox;
    cqqk_q: TCheckBox;
    cqqk: TComboBox;
    cqqk_y: TCheckBox;
    procedure ChangeImg4Click(Sender: TObject);
    procedure TVClick(Sender: TObject);
    procedure ChangeImg1Click(Sender: TObject);
    procedure chk2Click(Sender: TObject);
    procedure chk3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnPrintClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_R_Kqtj: TFrm_R_Kqtj;

implementation

uses DM_DataModal, UGlobal;

{$R *.dfm}

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

procedure TFrm_R_Kqtj.TVClick(Sender: TObject);
begin
  inherited;
if tv.selected.level > 2 then bmmc.text := TV.Selected.Text;
end;

procedure TFrm_R_Kqtj.ChangeImg1Click(Sender: TObject);
var
  sqltemp:string;//出勤情况临时条件语句
begin
  inherited;
  with qrykqtj do
  begin
    sql.Clear;
    sql.add('select yhbh,yhxm,bmbh,bc,bmmc,kqrq,bcms,kqsj,cqqk ');
     //
    sql.add('       =case                 ');
    sql.add('            when cqqk=''X'' THEN ''体息日''');
    sql.add('            when cqqk=''C'' THEN ''迟到''');
    sql.add('            when cqqk=''Z'' THEN ''早退''');
    sql.add('            when cqqk=''O'' THEN ''缺勤''');
    sql.add('            when cqqk=''Y'' THEN ''出勤''');
    sql.Add('            when cqqk is null  THEN ''未打卡''');
    sql.add('            when substring(cqqk,1,1)=''Q''  THEN ''请假''      ');
    sql.add('         end                  ');
     //
    if rbn1.Checked then   sql.add('         from vkq_kqtjcur          ');
    if rbn2.Checked then   sql.add('         from vkq_kqtj          ');

    sql.add(' where (kqrq>=''' + datetostr(ksrq.date) + '''');
    sql.add(' and kqrq<=''' + datetostr(jsrq.date) + ''')');
    if chk2.Checked then
      sql.Add(' and yhbh=' + chr(39) + trim(yhbh.text) + chr(39));
    if chk3.Checked then
      sql.Add(' and yhxm like ''' + trim(yhxm.Text) + '%''');
    if chk4.Checked then
      sql.Add(' and bcms=' + chr(39) + trim(bcms.text) + chr(39));
    if chk5.Checked then
    begin
      {
      if (copy(trim(cqqk.text),1,2))='OC' then
        sql.Add(' and (cqqk=''c'' or cqqk=''O'' or cqqk is null)')
      else
        sql.Add(' and substring(cqqk,1,1)=''' + COPY(trim(cqqk.text), 1, 1) + '''')
       }
       sqltemp:='';
       if cqqk_x.Checked then
       begin
        sqltemp:=sqltemp+' cqqk=''x'' or ' ;
       end;
       if cqqk_c.Checked then
       begin
        sqltemp:=sqltemp+' cqqk=''c'' or ' ;
       end;
       if cqqk_z.Checked then
       begin
         sqltemp:=sqltemp+' cqqk=''z'' or ' ;
       end;
       if cqqk_o.Checked then
       begin
         sqltemp:=sqltemp+' cqqk=''o'' or ' ;
       end;
       if cqqk_q.Checked then
       begin
         sqltemp:=sqltemp+' cqqk=''q'' or ' ;
       end;
       if cqqk_y.Checked then
       begin
         sqltemp:=sqltemp+' cqqk=''y'' or ' ;
       end;
        if trim(sqltemp)<>'' then
        begin
           sqltemp:=trim(sqltemp)  ;
           sqltemp:=copy(sqltemp,1,length(sqltemp)-2) ;
           sql.Add(' and ('+sqltemp+')  ') ;
        end;
    end;

    if chk6.Checked then
      sql.Add(' and bmmc like ''' + trim(bmmc.Text) + '%''');
    sql.add(' order by bmbh,yhbh,kqrq,kqsj');
    open; 
  end;

end;

procedure TFrm_R_Kqtj.chk2Click(Sender: TObject);
begin
  inherited;
if chk2.Checked then yhbh.SetFocus;
end;

procedure TFrm_R_Kqtj.chk3Click(Sender: TObject);
begin
  inherited;
if chk3.Checked then yhxm.SetFocus;
end;

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

procedure TFrm_R_Kqtj.BtnPrintClick(Sender: TObject);
begin
  inherited;
  try
    QRlbldwmc.Caption:='单位名称:'+gtSysCs.sSydw;
    QRLblzbbm.Caption:='制表部门:'+gtSysCs.sZbDw;
    QRlblzd.caption:='制单:';
    report_kqtj.PreviewModal;
  except
  end
end;

procedure TFrm_R_Kqtj.FormShow(Sender: TObject);
var
  query: TADOQuery;
begin
inherited;
  query := TADOQuery.create(screen.activeform);
  query.Connection := WindData.AdoConn;
  try
    with query do
    begin
      sql.clear;
      sql.add('select bc,bcms from kq_sjb order by bc');
      open;
      first;
      if recordcount > 0 then
      begin
        bcms.items.Clear;
        while not eof do
        begin
          bcms.Items.Add(fieldbyname('bcms').asstring);
          next;
        end;
      end;
    end;
  finally
    query.Destroy;
  end;
end;

end.

⌨️ 快捷键说明

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