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 + -
显示快捷键?