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

📄 cz.~pas

📁 某计算机学院的毕业设计及论文
💻 ~PAS
字号:
unit CZ;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, DBCtrls, StdCtrls, Grids, DBGrids,uVar, ExtCtrls;

type
  TfrCZ = class(TForm)
    temp: TADOTable;
    dstemp: TDataSource;
    LH: TADOTable;
    LHXQID: TIntegerField;
    LHID: TAutoIncField;
    LHLBH: TWideStringField;
    LHName: TWideStringField;
    DataSource2: TDataSource;
    DataSource1: TDataSource;
    XQ: TADOTable;
    XQID: TAutoIncField;
    XQName: TWideStringField;
    LC: TADOTable;
    LCID: TWideStringField;
    LCName: TWideStringField;
    DataSource3: TDataSource;
    JS: TADOTable;
    dsJS: TDataSource;
    JSJSBH: TWideStringField;
    JSName: TWideStringField;
    JSMT: TBooleanField;
    JSallname: TWideStringField;
    GroupBox1: TGroupBox;
    DBLookupComboBox1: TDBLookupComboBox;
    DBLookupComboBox2: TDBLookupComboBox;
    DBLookupComboBox3: TDBLookupComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    cbXZMT: TCheckBox;
    cbJXSDMT: TCheckBox;
    GroupBox2: TGroupBox;
    cbZhou: TComboBox;
    cbJie: TComboBox;
    Label5: TLabel;
    Label6: TLabel;
    Xi: TADOTable;
    dsXi: TDataSource;
    XiID: TWideStringField;
    XiName: TWideStringField;
    Button1: TButton;
    DBGrid2: TDBGrid;
    Label9: TLabel;
    DataSource4: TDataSource;
    Button3: TButton;
    DBLookupComboBox4: TDBLookupComboBox;
    rgCZ: TRadioGroup;
    GroupBox3: TGroupBox;
    Label7: TLabel;
    dblXi: TDBLookupComboBox;
    Label8: TLabel;
    cbNJ: TComboBox;
    cbQT: TCheckBox;
    QDYB: TADOQuery;
    QDYBWideStringField: TWideStringField;
    QDYBWideStringField2: TWideStringField;
    QDYBWideStringField3: TWideStringField;
    QDYBStringField: TStringField;
    procedure JSMTGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure JSFilterRecord(DataSet: TDataSet; var Accept: Boolean);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBLookupComboBox1Click(Sender: TObject);
    procedure cbJXSDMTClick(Sender: TObject);
    procedure cbXZMTClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure QDYBWideStringField2GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure QDYBWideStringFieldGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure Button3Click(Sender: TObject);
    procedure DYBFilterRecord(DataSet: TDataSet; var Accept: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  frCZ: TfrCZ;
  JSGL,CZGL,SJGL:string;//JSGL 过滤教室表 CZGL 在对应表按条件过滤 SJGL 按时间过滤
implementation

{$R *.dfm}

procedure TfrCZ.JSMTGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  if (Sender as TField).AsBoolean then
   Text:='是'
  else
   Text:='否';
end;

procedure TfrCZ.JSFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  if Pos(JSGL,DataSet.FieldByName('JSBH').AsString)=1 then
     Accept:=True
  else
    Accept:=False;
  if cbXZMT.Checked then
  Accept:=Accept and (cbJXSDMT.Checked = DataSet.FieldByName('MT').AsBoolean);
end;

procedure TfrCZ.FormShow(Sender: TObject);
var
  i:integer;
begin
  JSGL:='';
  XQ.Open;
  LH.Open;
  LC.Open;
  temp.Open;
  JS.Open;
  Xi.Open;
  temp.Edit;
  temp.FieldByName('教室').AsString:='';
  DBLookupComboBox1Click(nil);
  cbZhou.ItemIndex:=(DayOfWeek(now())-1);//设置成当前星期
end;

procedure TfrCZ.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  XQ.Close;
  LH.Close;
  LC.Close;
  temp.Close;
  JS.Close;
end;

procedure TfrCZ.DBLookupComboBox1Click(Sender: TObject);
var
  i,j:integer;
  sNO1,sNO:string;
begin
  if not(temp.State in [dsEdit,dsInsert]) then
   temp.Edit;
  sNo1:=DBLookupComboBox1.Field.Text;
  i:=length(sNo1);
  for j:=1 to 2-i do
  sNo1:='0'+sNo1;
  if pos(sNo1,DBLookupComboBox2.Field.Text)<>1 then
  begin
    DBLookupComboBox2.ListSource.DataSet.First;
    DBLookupComboBox2.Field.Text := DBLookupComboBox2.ListSource.DataSet.FieldByName('LBH').AsString;
  end;
  JSGL:=DBLookupComboBox2.Field.Text+DBLookupComboBox3.Field.Text;
  js.Refresh;
  if pos(DBLookupComboBox2.Field.Text+DBLookupComboBox3.Field.Text,DBLookupComboBox4.Field.Text)<>1 then
  begin
    DBLookupComboBox4.ListSource.DataSet.First;
    if DBLookupComboBox4.ListSource.DataSet.RecordCount>0 then
      temp.FieldByName('教室').AsString:= DBLookupComboBox4.ListSource.DataSet.FieldByName('JSBH').AsString
    else begin
      temp.FieldByName('教室').AsString:='';
      DBLookupComboBox4.Field.Text := '';
    end;
  end;
  temp.Post;
end;

procedure TfrCZ.cbJXSDMTClick(Sender: TObject);
begin
  if cbXZMT.Checked then
    DBLookupComboBox1Click(nil);
end;

procedure TfrCZ.cbXZMTClick(Sender: TObject);
begin
  cbJXSDMT.Enabled := cbXZMT.Checked;
  DBLookupComboBox1Click(nil);
end;

procedure TfrCZ.Button1Click(Sender: TObject);
begin
  if not((cbZhou.ItemIndex>=0) and (cbJie.ItemIndex>=0)) then
  begin
    Application.MessageBox('请选择时间!','提示');
    abort;
  end;
  if cbQT.Checked then//全天查询 即包含全天所有节数
    SJGL:=inttostr(cbZhou.ItemIndex)
  else //否则查指定的天和节
    SJGL:=inttostr(cbZhou.ItemIndex)+inttostr(cbJie.ItemIndex+1);
  CZGL:='';
  case rgCZ.ItemIndex of
    0:begin
      if temp.FieldByName('JSBH').AsString='' then
      begin
        Application.MessageBox('请选择教室!','提示');
        abort;
      end;
      CZGL:=temp.FieldByName('教室').AsString;
    end;
    1:begin
      if (cbNJ.ItemIndex<0) or (dblXi.Field.IsNull) then
      begin
        Application.MessageBox('请选择班级!','提示');
        abort;
      end;
      CZGL:=temp.FieldByName('系').AsString+inttostr(cbNJ.ItemIndex);
    end;
  end;
  QDYB.Close;//关闭查询
  if rgCZ.ItemIndex = 0 then//如果教室查询
    QDYB.SQL.Text:= 'select * from 对应表 where (时间 like '+#39+SJGL+'%'+#39+') and (教室 like '+#39+CZGL+'%'+#39+')'
  else  //按班级查询
    QDYB.SQL.Text:= 'select * from 对应表 where (时间 like '+#39+SJGL+'%'+#39+') and (班级 like '+#39+CZGL+'%'+#39+')';
// Application.MessageBox(pchar(QDYB.SQL.Text),'提示');
  QDYB.Open;//查询
  Label9.Caption:='查找结果:'+inttostr(QDYB.RecordCount)+' 条';
end;

procedure TfrCZ.QDYBWideStringField2GetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
var
  s:string;
  i:integer;
begin
  if not (Sender as TField).IsNull then
  begin
    s:=(Sender as TField).DataSet.FieldByName('班级').AsString;
    i:=strtoint(s[3]);
    text:=IdtoName(uXi,uXiCount,s[1]+s[2])+uNJ[i];
  end;
end;

procedure TfrCZ.QDYBWideStringFieldGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
var
  s:string;
  i,j:integer;
begin
  if not (Sender as TField).IsNull then//将时间字段编码转换成名称形式显示
  begin
    s:=(Sender as TField).DataSet.FieldByName('时间').AsString;
    i:=strtoint(s[1]);
    j:=strtoint(s[2]);
    text:=uZhou[i]+uJie[j];
  end;
end;

procedure TfrCZ.Button3Click(Sender: TObject);
begin
  Close;
end;

procedure TfrCZ.DYBFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  case rgCZ.ItemIndex of
    0:begin
      Accept:=(pos(CZGL,DataSet.FieldByName('教室').AsString)=1);
    end;
    1:begin
      Accept:=(pos(CZGL,DataSet.FieldByName('班级').AsString)=1);
    end;
  end;
  Accept:=Accept and (pos(SJGL,DataSet.FieldByName('时间').AsString)=1);
end;

end.







⌨️ 快捷键说明

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