📄 studentscore_unit.pas
字号:
unit StudentScore_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Base_Unit, ExtCtrls, Grids, DBGrids, StdCtrls, DBCtrls, Mask,
Buttons, ComCtrls, DB, Menus, StdActns, ActnList;
type
TfrmStudentScore = class(TfrmBase)
Panel1: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
SpeedButton1: TSpeedButton;
cmbxStudentID: TDBLookupComboBox;
edtScoreDateTime: TDBEdit;
cmbxTerm: TDBComboBox;
cmbxClassName: TDBLookupComboBox;
TabSheet2: TTabSheet;
cmbxSubjectName: TDBLookupComboBox;
edtScore: TDBEdit;
edtRemark: TDBMemo;
Panel3: TPanel;
DBGrid1: TDBGrid;
btnCancel: TBitBtn;
btnSave: TBitBtn;
btnDel: TBitBtn;
btnModify: TBitBtn;
btnAdd: TBitBtn;
DataStudentID: TDataSource;
DataClassName: TDataSource;
DataSubjectName: TDataSource;
DataStudentScore: TDataSource;
txtCreditHour: TDBText;
Panel4: TPanel;
cmbxItems: TComboBox;
Label14: TLabel;
Label15: TLabel;
cmbxCondition: TComboBox;
Label16: TLabel;
cmbxValues: TComboBox;
btnFind: TBitBtn;
Panel5: TPanel;
DBGrid2: TDBGrid;
DataFindScore: TDataSource;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cmbxSubjectNameClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure cmbxItemsChange(Sender: TObject);
procedure btnFindClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure btnModifyClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmStudentScore: TfrmStudentScore;
implementation
uses Common_Unit, DM_Unit, DateChoice_Unit;
{$R *.dfm}
procedure TfrmStudentScore.FormCreate(Sender: TObject);
var
SQLScore, SQLStudentID, SQLClaName, SQLSubName: string;
begin
inherited;
SQLScore := 'Select * From Score';
DataStudentScore.DataSet := SQLDataSet(SQLScore,DM.ADOConn); //连接数据集
SQLStudentID := 'Select * From StudentInfo';
DataStudentID.DataSet := SQLDataSet(SQLStudentID,DM.ADOConn);
SQLClaName := 'Select * From ClassInfo';
DataClassName.DataSet := SQLDataSet(SQLClaName,DM.ADOConn);
SQLSubName := 'Select * From SubjectInfo';
DataSubjectName.DataSet := SQLDataSet(SQLSubName,DM.ADOConn);
end;
procedure TfrmStudentScore.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
frmStudentScore := nil;
end;
procedure TfrmStudentScore.cmbxSubjectNameClick(Sender: TObject);
begin
inherited;
DataStudentScore.DataSet.FieldByName('CreditHour').AsString :=
DataSubjectName.DataSet.FieldByName('CreditHour').AsString;//选中科目后自动添加学分
end;
procedure TfrmStudentScore.SpeedButton1Click(Sender: TObject);
begin
inherited;
frmDateChoice := TfrmDateChoice.Create(Self);
try
frmDateChoice.ShowModal;
edtScoreDateTime.Text := DateToStr(frmDateChoice.MonthCalendar1.Date);
finally
frmDateChoice.Free;
end;
end;
procedure TfrmStudentScore.cmbxItemsChange(Sender: TObject);
var
SQLSubject, SQLClass: string;
begin
inherited;
cmbxValues.Items.Clear;
if cmbxItems.ItemIndex = 1 then //选择科目的时候自动搜索科目名称
begin
SQLSubject := 'Select * From SubjectInfo';
with SQLDataSet(SQLSubject,DM.ADOConn) do
begin
while not eof do
begin
cmbxValues.Items.Add(FieldByName('SubjectID').AsString + '.' + FieldByName('SubName').AsString);
Next;
end;
end;
end;
if cmbxItems.ItemIndex = 2 then
begin
SQLClass := 'Select * From ClassInfo';
with SQLDataSet(SQLClass,DM.ADOConn) do
begin
while not eof do
begin
cmbxValues.Items.Add(FieldByName('ClassID').AsString + '.' + FieldByName('ClaName').AsString);
Next;
end;
end;
end;
end;
procedure TfrmStudentScore.btnFindClick(Sender: TObject);
var
strSQL : string;
begin
inherited;
if cmbxItems.ItemIndex =0 then
strSQL :='Select B.* From StudentInfo A, Score B ' +
'where A.StudentID=B.StudentID and A.StudentID ' +
cmbxCondition.Text + Quotedstr(cmbxValues.Text);
if cmbxItems.ItemIndex =1 then
strSQL :='Select B.* From SubjectInfo A, Score B ' +
'where A.SubjectID=B.SubjectID and A.SubjectID '
+ cmbxCondition.Text + Quotedstr(Copy(cmbxValues.Text,1,Pos('.',cmbxValues.Text)-1));
if cmbxItems.ItemIndex =2 then
strSQL :='Select B.* From ClassInfo A, Score B ' +
'where A.ClassID=B.ClassID and A.ClassID '
+ cmbxCondition.Text + Quotedstr(Copy(cmbxValues.Text,1,Pos('.',cmbxValues.Text)-1));
if cmbxItems.ItemIndex =3 then
begin
strSQL :='Select B.* From StudentInfo A, Score B ' +
'where A.StudentID=B.StudentID and A.StuName '
+ cmbxCondition.Text + Quotedstr(cmbxValues.Text);
if cmbxCondition.Text ='Like' then
strSQL :='Select B.* From StudentInfo A, Score B ' +
'where A.StudentID=B.StudentID and A.StuName '
+ cmbxCondition.Text + Quotedstr('%' + cmbxValues.Text + '%');
end;
if strSQL <> '' then
DataFindScore.DataSet :=SQLDataSet(strSQL,DM.ADOConn);
end;
procedure TfrmStudentScore.btnAddClick(Sender: TObject);
begin
inherited;
DataStudentScore.DataSet.Insert;
end;
procedure TfrmStudentScore.btnModifyClick(Sender: TObject);
begin
inherited;
DataStudentScore.DataSet.Edit;
end;
procedure TfrmStudentScore.btnDelClick(Sender: TObject);
begin
inherited;
if Application.MessageBox('确定要删除此条记录?','提示',68) = IDNo then
Exit;
DataStudentScore.DataSet.Delete;
end;
procedure TfrmStudentScore.btnSaveClick(Sender: TObject);
begin
inherited;
if DataStudentScore.State in [dsInsert,dsEdit] then //判断状态,只有在添加或是修改的时候才能保存信息
DataStudentScore.DataSet.Post;
end;
procedure TfrmStudentScore.btnCancelClick(Sender: TObject);
begin
inherited;
DataStudentScore.DataSet.Cancel;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -