⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untstudentcondition.pas

📁 简要说明:对医院幼儿心理情况做的一个调查,统计系统.
💻 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 + -