⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_exammanage.pas

📁 一个简单的学籍管理软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -