📄 coursegradereportunit.~pas
字号:
unit coursegradeReportUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, StdCtrls, ExtCtrls, Grids, DBGrids, Buttons, Mask;
type
TcoursegradeReportForm = class(TForm)
Panel2: TPanel;
DBGrid1: TDBGrid;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label2: TLabel;
ComboBox1: TComboBox;
Label1: TLabel;
MaskEdit1: TMaskEdit;
ComboBox2: TComboBox;
Label3: TLabel;
Label4: TLabel;
Panel3: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
DBNavigator1: TDBNavigator;
Label5: TLabel;
ComboBox3: TComboBox;
procedure FormCreate(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure ComboBox3Change(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
coursegradeReportForm: TcoursegradeReportForm;
implementation
uses datamoduleUnit;
{$R *.dfm}
procedure TcoursegradeReportForm.FormCreate(Sender: TObject);
var year,month,day:word;
n:integer;
thisyear:integer;
begin
DecodeDate(now, Year, Month, Day);
thisyear:=round(year);
for n:=1 to 20 do
begin
combobox1.Items.Add(inttostr(thisyear));
thisyear:=thisyear-1;
end;
end;
procedure TcoursegradeReportForm.ComboBox3Change(Sender: TObject);
begin
if (combobox1.Text='')or (combobox3.text='') then
begin
exit;
end;
combobox2.Items.Clear;
with datamodule1.queryall do
begin
disablecontrols;
close;
SQL.Clear;
sql.Add('select distinct cname from grade where year=:year and term=:term');
Parameters.ParamByName('year').Value:=strtoint(combobox1.Text);
Parameters.ParamByName('term').Value:=combobox3.Text;
prepared;
open;
while not eof do
begin
combobox2.Items.Add( FieldByName('cname').AsString);
next;
end;
close;
enablecontrols;
end;
end;
procedure TcoursegradeReportForm.ComboBox2Change(Sender: TObject);
var cname ,sno,term:string;
year:integer;
begin
bitbtn1.Enabled:=false;
if length(trim(maskedit1.Text))<6 then
begin
messagebox (handle,' 班级不正确,请检查!','警告',mb_ok) ;
combobox2.ItemIndex:=-1;
maskedit1.SetFocus;
exit;
end;
sno:=trim(maskedit1.Text);
cname:=combobox2.Text;
year:=strtoint(combobox1.Text);
term:=combobox3.Text;
try
with datamodule1.ADOCommandall do
begin
CommandText:='create view stu as select * from student where sno like'+''''+sno+'%'+'''';
Execute;
CommandText:='create view gra as select * from grade where sno like'+''''+sno+'%'
+''''+'and cname='+''''+cname+''''+'and year='+combobox1.Text+'and term='+''''+term+'''';
Execute;
end;
except
messagebox (handle,' 创建视图失败!','警告',mb_ok) ;
exit;
end;
try
with datamodule1.queryall do
begin
disablecontrols;
close;
SQL.Clear;
sql.Add('SELECT Stu.sno,sname,ssex,tname,cname,grade,year,term');
sql.Add('from stu LEFT OUTER JOIN gra ON (stu.sno = gra.sno)');
prepared;
open;
enablecontrols;
end;
except
messagebox (handle,' 视图左连接失败!','警告',mb_ok) ;
exit;
end;
try
with datamodule1.ADOCommandall do
begin
CommandText:='drop table stu';
Execute;
CommandText:='drop table gra';
Execute;
end;
except
messagebox (handle,' 删除视图失败!','警告',mb_ok) ;
exit;
end;
bitbtn1.Enabled:=true;
end;
procedure TcoursegradeReportForm.BitBtn1Click(Sender: TObject);
begin
with datamodule1.RvProjectall do
begin
datamodule1.RvDataSetConnectionall.DataSet:=datamodule1.queryall;
SelectReport('coursegradereport',false);
Execute;
end;
end;
procedure TcoursegradeReportForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
with datamodule1.queryall do
begin
Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -