📄 cz.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('教室').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 + -