?? scheduleform.~pas
字號:
unit ScheduleForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, ExtCtrls, DB, ADODB, StdCtrls;
type
TSchedule = class(TForm)
StringGrid1: TStringGrid;
GroupBox1: TGroupBox;
Label3: TLabel;
Label2: TLabel;
Label1: TLabel;
Edit3: TEdit;
Edit2: TEdit;
Edit1: TEdit;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
procedure FormShow(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
id:string;
procedure selrecord();
end;
var
Schedule: TSchedule;
implementation
{$R *.dfm}
//------------------設置表格---------------------
procedure TSchedule.FormShow(Sender: TObject);
var
i,j:integer;
begin
stringgrid1.Cells[0,0]:='星期一';
stringgrid1.Cells[1,0]:='星期二';
stringgrid1.Cells[2,0]:='星期三';
stringgrid1.Cells[3,0]:='星期四';
stringgrid1.Cells[4,0]:='星期五';
stringgrid1.RowHeights[0]:=25;
for i:=0 to 4 do
stringgrid1.ColWidths[i]:=120;
for i:=1 to 7 do
stringgrid1.RowHeights[i]:=50;
end;
//-----------------------根據輸入的學號顯示學生信息和課表-------------------------
procedure TSchedule.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8,#13]) then //該文本框中只能輸入數字
begin
key:=#0;
exit;
end;
//回車輸入,將學生的信息顯示在文本框中
if key=#13 then
begin
id:=trim(edit1.Text);
//清除上一次的數據
edit2.Clear;
edit3.Clear;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select a.姓名,b.班級名稱,a.學籍編號 from 學生信息 a,班級信息 b');
adoquery1.SQL.Add('where (a.學號='''+id+''')and(a.班級編號=b.班級編號)and(a.學籍編號=''1'')');
adoquery1.Open;
if adoquery1.RecordCount=0 then
begin
showmessage('學號輸入錯誤');
exit;
end;
edit2.Text:=trim(adoquery1.fieldbyname('姓名').AsString);
edit3.Text:=trim(adoquery1.fieldbyname('班級名稱').AsString);
selrecord();
end;
end;
//----------------在表中顯示課程信息-------------------
procedure TSchedule.StringGrid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
i,j:integer;
rt:Trect;
begin
stringgrid1.Canvas.Brush.Style:=bsClear;
//指向學生課表的第一個記錄
if adoquery1.SQL.Text<>'' then adoquery1.First;
while not adoquery1.Eof do
begin
i:=adoquery1.fieldbyname('上課時間天').AsInteger-1;
j:=adoquery1.fieldbyname('上課時間節').AsInteger;
//stringgrid控件中不能換行,因此要編程將我們需要的文字放到合適的地方
rt:=stringgrid1.CellRect(i,j);
stringgrid1.Canvas.TextOut(rt.Left+5,rt.Top+5,trim(adoquery1.fieldbyname('課程名稱').AsString));
stringgrid1.Canvas.TextOut(rt.Left+5,rt.Top+25,trim(adoquery1.fieldbyname('上課地點').AsString));
adoquery1.Next;
end;
end;
//---------根據輸入的學號查詢課程信息-----------
procedure TSchedule.selrecord;
var
i,j:integer;
begin
//清空原來的表格
for i:=0 to 4 do
for j:=1 to 7 do
stringgrid1.Cells[i,j]:='';
//將學生的課程列在課程表中
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select b.課程名稱,b.教師,c.上課時間天,c.上課時間節,c.上課地點');
adoquery1.SQL.Add('from 選課表 a,課程信息 b,課程表 c');
adoquery1.SQL.Add('where (a.學號='''+id+''')and(a.課序號=c.課序號)and(''200400000''+b.課程編號=a.課序號)');
adoquery1.Open;
end;
procedure TSchedule.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -