📄 u_exammanage.pas
字号:
else
tmEdDateStr := DateToStr(EnCodeDate(pEndDate.pYear,
pEndDate.pMonth, pEndDate.pDay));
with MQuery do
begin
AppendRecord([tmNo, pTermCode, pGrade, pInfo, pOrder, pType,
pSubjectCode, tmBgDateStr, tmEdDateStr, '0']);
ApplyUpdates;
end;
MTrViewChange(MTrView, MTrView.Selected);
MQuery.Last;
end;
end;
procedure TFm_ExamManage.TbBtn_EditClick(Sender: TObject);
var
pTermCode: string;
pGrade, pOrder, pType: integer;
pInfo, pSubjectCode: string;
pBeginDate, pEndDate: TDateRec;
begin //
with MQuery do
begin
if IsEmpty then
Exit;
if FieldByName('b_sfpding').AsString = '1' then
Exit;
pTermCode := FieldByName('s_xqhao').AsString;
pGrade := FieldByName('si_nji').AsInteger;
pOrder := FieldByName('si_kscbie').AsInteger;
pType := FieldByName('si_kslxing').AsInteger;
pInfo := FieldByName('s_kssming').AsString;
pSubjectCode := FieldByName('s_kcdhao').AsString;
with pBeginDate do
begin
if FieldByName('d_ksrqi').AsString <> '' then
DeCodeDate(FieldByName('d_ksrqi').AsDateTime, pYear, pMonth, pDay)
else
begin
pYear := 0;
pMonth := 0;
pDay := 0;
end;
end;
with pEndDate do
begin
if FieldByName('d_ksrqi').AsString <> '' then
DeCodeDate(FieldByName('d_jsrqi').AsDateTime, pYear, pMonth, pDay)
else
begin
pYear := 0;
pMonth := 0;
pDay := 0;
end;
end;
if U_ExamManageAction.Show_ExamManageAction(pTermCode, pGrade, pOrder,
pType, pInfo, pSubjectCode, pBeginDate, pEndDate, 2) then
begin
Edit;
try
FieldByName('si_kscbie').AsInteger := pOrder;
FieldByName('si_kslxing').AsInteger := pType;
FieldByName('s_kssming').AsString := pInfo;
FieldByName('s_kcdhao').AsString := pSubjectCode;
if pBeginDate.pYear = 0 then
FieldByName('d_ksrqi').AsString := ''
else
with pBeginDate do
FieldByName('d_ksrqi').AsDateTime := EnCodeDate(pYear, pMonth, pDay);
if pEndDate.pYear = 0 then
FieldByName('d_jsrqi').AsString := ''
else
with pEndDate do
FieldByName('d_jsrqi').AsDateTime := EnCodeDate(pYear, pMonth, pDay);
Post;
ApplyUpdates;
except
Cancel;
end;
end;
end;
end;
procedure TFm_ExamManage.TbBtn_DeleteClick(Sender: TObject);
begin //
if MQuery.FieldByName('b_sfpding').AsString = '1' then
begin
U_GlobalProc.Show_ErrorMess('已经进行过排定的考试不能删除。');
end;
if not U_GlobalProc.Show_ConfirmMess('真的删除该年级的本次考试吗?') then
Exit;
MQuery.Delete;
MQuery.ApplyUpdates;
end;
procedure TFm_ExamManage.TbBtn_HelpClick(Sender: TObject);
begin //
end;
procedure TFm_ExamManage.TbBtn_TermMidClick(Sender: TObject);
var
pTermCode: string;
pRange, tmNo: integer;
pBeginDate, pEndDate: TDateRec;
tmBgDateStr, tmEdDateStr: string;
aQuery: TQuery;
i: integer;
begin //
pTermCode := S_CurTermCode;
if MTrView.Selected.Data = nil then
pRange := 0
else
pRange := W_CurYear - Integer(MTrView.Selected.Data) + 1;
with pBeginDate do
begin
pYear := 0;
pMonth := 0;
pDay := 0;
end;
with pEndDate do
begin
pYear := 0;
pMonth := 0;
pDay := 0;
end;
if U_ExamMidAction.Show_ExamMidAction(pTermCode, pBeginDate, pEndDate,
pRange, 1) then
begin
aQuery := TQuery.Create(Application);
with aQuery do
try
DataBaseName := DataDBase;
SQL.Text := 'SELECT MAX(i_kshao) AS i_kshao FROM kssz';
Open;
if not IsEmpty then
tmNo := FieldByName('i_kshao').AsInteger + 1
else
tmNo := 1;
finally
Close;
Free;
end;
if pBeginDate.pYear = 0 then
tmBgDateStr := ''
else
tmBgDateStr := DateToStr(EnCodeDate(pBeginDate.pYear,
pBeginDate.pMonth, pBeginDate.pDay));
if pEndDate.pYear = 0 then
tmEdDateStr := ''
else
tmEdDateStr := DateToStr(EnCodeDate(pEndDate.pYear,
pEndDate.pMonth, pEndDate.pDay));
with MQuery do
try
DisableControls;
if pRange = 1 then
begin
for i := 0 to SI_GradeCount - 1 do
begin
AppendRecord([tmNo, S_CurTermCode, i + 1, 1, 1,
GradeNames[i] + '年级期中考试', '',
tmEdDateStr, tmBgDateStr, '0']);
ApplyUpdates;
Inc(tmNo);
end;
end else
begin
AppendRecord([tmNo, S_CurTermCode, W_CurYear - Integer(MTrView.Selected.Data) + 1,
1, 1, GradeNames[W_CurYear - Integer(MTrView.Selected.Data)] + '年级期中考试',
'', tmEdDateStr, tmBgDateStr, '0']);
ApplyUpdates;
end;
finally
EnAbleControls;
MTrViewChange(MTrView, MTrView.Selected);
Last;
end;
end;
end;
procedure TFm_ExamManage.TbBtn_TermEndClick(Sender: TObject);
var
pTermCode: string;
pRange, tmNo: integer;
pBeginDate, pEndDate: TDateRec;
tmBgDateStr, tmEdDateStr: string;
aQuery: TQuery;
i: integer;
begin //
pTermCode := S_CurTermCode;
if MTrView.Selected.Data = nil then
pRange := 0
else
pRange := W_CurYear - Integer(MTrView.Selected.Data) + 1;
with pBeginDate do
begin
pYear := 0;
pMonth := 0;
pDay := 0;
end;
with pEndDate do
begin
pYear := 0;
pMonth := 0;
pDay := 0;
end;
if U_ExamMidAction.Show_ExamMidAction(pTermCode, pBeginDate, pEndDate,
pRange, 2) then
begin
aQuery := TQuery.Create(Application);
with aQuery do
try
DataBaseName := DataDBase;
SQL.Text := 'SELECT MAX(i_kshao) AS i_kshao FROM kssz';
Open;
if not IsEmpty then
tmNo := FieldByName('i_kshao').AsInteger + 1
else
tmNo := 1;
finally
Close;
Free;
end;
if pBeginDate.pYear = 0 then
tmBgDateStr := ''
else
tmBgDateStr := DateToStr(EnCodeDate(pBeginDate.pYear,
pBeginDate.pMonth, pBeginDate.pDay));
if pEndDate.pYear = 0 then
tmEdDateStr := ''
else
tmEdDateStr := DateToStr(EnCodeDate(pEndDate.pYear,
pEndDate.pMonth, pEndDate.pDay));
with MQuery do
try
DisableControls;
if pRange = 1 then
begin
for i := 0 to SI_GradeCount - 1 do
begin
AppendRecord([tmNo, S_CurTermCode, i + 1, 2, 1,
GradeNames[i] + '年级期末考试', '',
tmEdDateStr, tmBgDateStr, '0']);
ApplyUpdates;
Inc(tmNo);
end;
end else
begin
AppendRecord([tmNo, S_CurTermCode, W_CurYear - Integer(MTrView.Selected.Data) + 1,
2, 1, GradeNames[W_CurYear - Integer(MTrView.Selected.Data)] + '年级期末考试',
'', tmEdDateStr, tmBgDateStr, '0']);
ApplyUpdates;
end;
finally
EnAbleControls;
MTrViewChange(MTrView, MTrView.Selected);
Last;
end;
end;
end;
procedure TFm_ExamManage.MQueryB_SFPDINGGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
if Sender.AsString = '1' then
Text := '√'
else
Text := ' ';
end;
procedure TFm_ExamManage.MQueryB_SFPDINGSetText(Sender: TField;
const Text: string);
begin
if Text = '√' then
Sender.AsString := '1'
else
Sender.AsString := '0';
end;
procedure TFm_ExamManage.MQueryAfterScroll(DataSet: TDataSet);
begin
if (MQuery.IsEmpty) or (MQuery.FieldByName('b_sfpding').AsString = '1') then
begin
TbBtn_Edit.Enabled := False;
PM_Edit.Enabled := False;
TbBtn_Delete.Enabled := False;
PM_Delete.Enabled := False;
TbBtn_Fix.Enabled := False;
PM_Fix.Enabled := False;
end
else
begin
TbBtn_Edit.Enabled := True;
PM_Edit.Enabled := True;
TbBtn_Delete.Enabled := True;
PM_Delete.Enabled := True;
TbBtn_Fix.Enabled := True;
PM_Fix.Enabled := True;
end;
if (MQuery.IsEmpty) or (MQuery.FieldByName('si_kslxing').AsInteger = 1) then
begin
TbBtn_Select.Enabled := False;
PM_Select.Enabled := False;
end
else
begin
TbBtn_Select.Enabled := True;
PM_Select.Enabled := True;
end;
end;
procedure TFm_ExamManage.TbBtn_FixClick(Sender: TObject);
begin
if not U_GlobalProc.Show_ConfirmMess('考试排定后将不能修改和删除,' + #13 + #10 +
'真的排定该考试吗?') then
Exit;
with MQuery do
try
if U_ExamMakeResult.Show_ExamMakeResult(FieldByName('i_kshao').AsInteger,
FieldByName('si_nji').AsInteger, FieldByName('si_kslxing').AsInteger,
FieldByName('s_kcdhao').AsString) then
begin
Edit;
FieldByName('b_sfpding').AsString := '1';
Post;
ApplyUpdates;
end;
finally
if State = dsEdit then
Cancel;
end;
MQueryAfterScroll(MQuery);
end;
procedure TFm_ExamManage.TbBtn_SelectClick(Sender: TObject);
begin //
if MQuery.FieldByName('b_sfpding').AsString = '1' then
U_ExamSelect.Show_ExamSelect(MQuery.FieldByName('i_kshao').AsInteger,
MQuery.FieldByName('si_nji').AsInteger, False)
else
U_ExamSelect.Show_ExamSelect(MQuery.FieldByName('i_kshao').AsInteger,
MQuery.FieldByName('si_nji').AsInteger, True);
end;
procedure TFm_ExamManage.TbBtn_PrintClick(Sender: TObject);
begin
Show_Print(MGrid);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -