📄 untstudentcondition.pas
字号:
unit untStudentCondition;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, untBaseDialog, StdCtrls, Buttons, ExtCtrls, DBCtrls, Mask,
DBCtrlsEh, DBLookupEh, DB, ADODB, jpeg, fcButton, fcImgBtn;
type
TfrmStudentCondition = class(TfrmBaseDialog)
chkSchool: TCheckBox;
chkClass: TCheckBox;
Label1: TLabel;
Label2: TLabel;
chkSex: TCheckBox;
chkAge: TCheckBox;
cboSchool: TDBLookupComboBox;
edtCodeF: TEdit;
Label3: TLabel;
edtCodeT: TEdit;
edtName: TEdit;
rgSex: TRadioGroup;
edtYearF: TEdit;
Label4: TLabel;
edtMonthF: TEdit;
Label5: TLabel;
edtYearT: TEdit;
Label6: TLabel;
edtMonthT: TEdit;
Label7: TLabel;
Label8: TLabel;
adsSchool: TADODataSet;
adsClass: TADODataSet;
dsSchool: TDataSource;
dsClass: TDataSource;
cboClass: TDBLookupComboboxEh;
procedure chkSchoolClick(Sender: TObject);
procedure chkClassClick(Sender: TObject);
procedure chkSexClick(Sender: TObject);
procedure chkAgeClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure adsSchoolAfterScroll(DataSet: TDataSet);
procedure btnOKClick(Sender: TObject);
private
FFilter: string;
{ Private declarations }
public
{ Public declarations }
property FilterStr: string read FFilter write FFilter;
end;
var
frmStudentCondition: TfrmStudentCondition;
implementation
uses untDM, untGlobalFun;
{$R *.dfm}
procedure TfrmStudentCondition.chkSchoolClick(Sender: TObject);
begin
inherited;
cboschool.Enabled := TCheckBox(Sender).Checked;
end;
procedure TfrmStudentCondition.chkClassClick(Sender: TObject);
begin
inherited;
cboClass.Enabled := TCheckBox(Sender).Checked;
end;
procedure TfrmStudentCondition.chkSexClick(Sender: TObject);
begin
inherited;
rgSex.Enabled := TCheckBox(Sender).Checked;
end;
procedure TfrmStudentCondition.chkAgeClick(Sender: TObject);
begin
inherited;
edtYearF.Enabled := TCheckBox(Sender).Checked;
edtYearT.Enabled := TCheckBox(Sender).Checked;
edtMonthF.Enabled := TCheckBox(Sender).Checked;
edtMonthT.Enabled := TCheckBox(Sender).Checked;
Label4.Enabled := TCheckBox(Sender).Checked;
Label5.Enabled := TCheckBox(Sender).Checked;
Label6.Enabled := TCheckBox(Sender).Checked;
Label7.Enabled := TCheckBox(Sender).Checked;
Label8.Enabled := TCheckBox(Sender).Checked;
end;
procedure TfrmStudentCondition.FormShow(Sender: TObject);
begin
inherited;
with adsSchool do begin
if Active then Active := False;
Active := true;
end;
end;
procedure TfrmStudentCondition.adsSchoolAfterScroll(DataSet: TDataSet);
begin
inherited;
with adsClass do begin
if Active then Active := false;
Active := true;
if Filtered then Filtered := false;
Filter := 'SchoolID='+DataSet.FieldByName('iAutoID').AsString;
Filtered := true;
end;
end;
procedure TfrmStudentCondition.btnOKClick(Sender: TObject);
begin
inherited;
if chkAge.Checked then begin
if (Trim(edtYearF.Text) = '')
or (Trim(edtYearT.Text) = '')
or (Trim(edtMonthF.Text) = '')
or (Trim(edtMonthT.Text) = '')
then begin
MsgOK('年龄范围未输入完全!');
if edtYearF.CanFocus then edtYearF.SetFocus;
Exit;
end;
end;
FFilter := '';
if chkSchool.Checked then
FFilter := FFilter
+ ' and ClassID in (select iAutoID from tClass where SchoolID='
+ FloatToStr(cboSchool.KeyValue)+')';
if chkClass.Checked then
FFilter := FFilter
+ ' and ClassID=' + FloatToStr(cboClass.KeyValue);
if Trim(edtCodeF.Text) <> '' then
FFilter := FFilter
+ ' and Code>='+QuotedStr(Trim(edtCodeF.Text));
if Trim(edtCodeT.Text) <> '' then
FFilter := FFilter
+ ' and Code<='+QuotedStr(Trim(edtCodeT.Text));
if Trim(edtName.Text) <> '' then
FFilter := FFilter
+ ' and name like ''%'+Trim(edtName.Text)+'%''';
if chkSex.Checked then
FFilter := FFilter
+ ' and Sex='+IntToStr(rgSex.ItemIndex);
if chkAge.Checked then begin
FFilter := FFilter
+ ' and BirthYear*12+BirthMonth between '
+ IntToStr(StrToInt(edtYearF.Text)*12+strtoint(edtMonthF.Text))
+ ' and '+IntToStr(StrToInt(edtYearT.Text)*12+strtoint(edtMonthT.Text));
end;
ModalResult := mrOk;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -