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

📄 u_studentmanage.pas

📁 一个简单的学籍管理软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      begin
        Sender.AsInteger := Integer(aList.Objects[i]);
        break;
      end;
  end;
end;

procedure TFm_StudentManage.TbCtrl_DetailChange(Sender: TObject);
var
  DataSetName, StdCode: string;
  aQuery: TQuery;
  aColumn: THColumn;
begin //
  StdCode := Trim(MQuery.FieldByName('s_xhao').AsString);
  case TbCtrl_Detail.TabIndex of
    0: DataSetName := 'XSJTCY';
    1: DataSetName := 'XSRXCJ';
    2: DataSetName := 'XSSTZK';
  end;
  with DtQuery do
  try
    DisableControls;
    Close;
    SQL.Text := 'SELECT * FROM ' + DataSetName + ' WHERE s_xhao = ''' +
      StdCode + '''';
    Open;
    RefreshGridColumns(DtGrid, DataSetName, QueryGetText, QuerySetText);
    if TbCtrl_Detail.TabIndex = 1 then
    begin
      aQuery := TQuery.Create(Application);
      with aQuery do
      try
        DataBaseName := DataDBase;
        aColumn := DtGrid.FindFirstColumn('s_kmhao');
        SQL.Text := 'SELECT * FROM xsrxkm WHERE  s_kmhao LIKE ''' +
          IntFormatStr(W_CurYear, 2) + '%''';

        Open;
        while not Eof do
        begin
          if Assigned(aColumn.Picklist) then
            aColumn.Picklist.AddObject(FieldByName('s_rxkmu').AsString, Pointer(FieldByName('s_kmhao').AsInteger));
          Next;
        end;
        if Assigned(aColumn) then
        begin
          aColumn.Field.OnGetText := QueryGetText;
          aColumn.Field.OnSetText := QuerySetText;
        end;
      finally
        Close;
        Free;
      end;
    end;
  finally
    while ControlsDisabled do
      EnableControls;
  end;
end;

procedure TFm_StudentManage.QueryGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  DataSetGetText(DtGrid, Sender, Text, DisplayText);
end;

procedure TFm_StudentManage.QuerySetText(Sender: TField;
  const Text: string);
begin
  DataSetSetText(DtGrid, Sender, Text);
end;

procedure TFm_StudentManage.MQueryAfterScroll(DataSet: TDataSet);
var
  DataSetName, StdCode: string;
begin //
  //TbCtrl_DetailChange(nil);
  StdCode := Trim(MQuery.FieldByName('s_xhao').AsString);
  case TbCtrl_Detail.TabIndex of
    0: DataSetName := 'XSJTCY';
    1: DataSetName := 'XSRXCJ';
    2: DataSetName := 'XSSTZK';
  end;
  with DtQuery do
  try
    DisableControls;
    Close;
    SQL.Text := 'SELECT * FROM ' + DataSetName + ' WHERE s_xhao = ''' +
      StdCode + '''';
    Open;
    RefreshDataSetField(DtGrid, QueryGetText, QuerySetText);
  finally
    while ControlsDisabled do
      EnableControls;
  end;
end;

procedure TFm_StudentManage.TbBtn_AddClick(Sender: TObject);
begin //
  if U_StudentMangeAction.Show_StudentMangeAction('',
    Integer(MTrView.Selected.Data), 1) then
    MTrViewChange(MTrView, MTrView.Selected);
end;

procedure TFm_StudentManage.TbBtn_EditClick(Sender: TObject);
begin //
  if U_StudentMangeAction.Show_StudentMangeAction(
    MQuery.FieldByName('s_xhao').AsString, 0, 2) then
    MTrViewChange(MTrView, MTrView.Selected);
end;

procedure TFm_StudentManage.TbBtn_DeleteClick(Sender: TObject);
var
  aQuery: TQuery;
  tmS: string;
begin //
  if MQuery.IsEmpty then
  begin
    U_GlobalProc.Show_ErrorMess('没有可删除的人员。');
    Exit;
  end;
  if U_GlobalProc.Show_ConfirmMess('你真的要删除学生 ' +
    MQuery.FieldByName('s_xming').AsString + ' 吗?') then
  begin
    tmS := MQuery.FieldByName('s_xhao').AsString;
    aQuery := TQuery.Create(Application);
    with aQuery do
    try
      DatabaseName := DataDBase;
      // 家庭成员表
      SQL.Text := 'DELETE FROM xsjtcy WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生入学成绩表
      SQL.Text := 'DELETE FROM xsrxcj WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生学籍变化表
      SQL.Text := 'DELETE FROM xsxjbh WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      // 学生奖惩情况表
      SQL.Text := 'DELETE FROM xsjcqk WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生考勤统计表
      SQL.Text := 'DELETE FROM xskqtj WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生品行表现表
      SQL.Text := 'DELETE FROM xspxbx WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生身体状况表
      SQL.Text := 'DELETE FROM xsstzk WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生个性发展评价表
      SQL.Text := 'DELETE FROM xsgxfz WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生参加活动情况表
      SQL.Text := 'DELETE FROM xscjhd WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生交纳学杂费情况表
      SQL.Text := 'DELETE FROM xsszfqk WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生期末老师评语表
      SQL.Text := 'DELETE FROM xsqmpy WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生期末一般性评价表
      SQL.Text := 'DELETE FROM xsybpj WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  考试成绩表
      SQL.Text := 'DELETE FROM kscj WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
    finally
      Free;
    end;
    MQuery.Delete;
    MQuery.ApplyUpdates;
  end;
end;

procedure TFm_StudentManage.TbBtn_BBanClick(Sender: TObject);
begin //

end;

procedure TFm_StudentManage.TbBtn_HelpClick(Sender: TObject);
begin //

end;

procedure TFm_StudentManage.MQueryAfterOpen(DataSet: TDataSet);
begin
  if MQuery.IsEmpty then
  begin
    TbBtn_Edit.Enabled := False;
    TbBtn_Delete.Enabled := False;
    TbBtn_BBan.Enabled := False;
    PM_Edit.Enabled := False;
    PM_Delete.Enabled := False;
    PM_BBan.Enabled := False;
  end
  else
  begin
    TbBtn_Edit.Enabled := True;
    TbBtn_Delete.Enabled := True;
    //TbBtn_BBan.Enabled := True;
    PM_Edit.Enabled := True;
    PM_Delete.Enabled := True;
    //PM_BBan.Enabled := True;
  end;
end;

procedure TFm_StudentManage.MQueryBeforePost(DataSet: TDataSet);
begin  //
  FEdState := MQuery.State;
end;

procedure TFm_StudentManage.MQueryAfterPost(DataSet: TDataSet);
var
  tmS: string;
  tmNj: integer;
begin //
  MQuery.ApplyUpDates;
  if FEdState = dsInsert then
  begin
    tmS := MQuery.FieldByName('s_xhao').AsString;
    tmNj := W_CurYear - StrToInt(Copy(tmS, 4, 4)) + 1;
    with UpQuery do
    begin
      ParamByName('ps_xhao').AsString := tmS;
      ParamByName('psi_nji').AsInteger := tmNj;
      Prepare;
      ExecSQL;

      //  学生考勤统计表
      SQL.Text := 'INSERT INTO xskqtj (s_xhao, s_xqhao) ' +
        'SELECT s_xhao, ''' + S_CurTermCode + ''' ' +
        'FROM  xsjbxx WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生品行表现表
      SQL.Text := 'INSERT INTO xspxbx (s_xhao, s_xqhao, i_pjdhao) ' +
        'SELECT d1.s_xhao, ''' + S_CurTermCode + ''', d2.i_pjdhao ' +
        'FROM  xsjbxx d1 JOIN pxbxzb d2 ' +
        'ON d1.s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生身体状况表
      if Fm_StudentMangeAction.Qry_Health.IsEmpty then
      begin
        SQL.Text := 'INSERT INTO xsstzk (s_xhao, s_xqhao) ' +
          'SELECT s_xhao, ''' + S_CurTermCode + ''' ' +
          'FROM  xsjbxx WHERE s_xhao = ''' + tmS + '''';
        ExecSQL;
      end;
      //  学生个性发展评价表
      SQL.Text := 'INSERT INTO xsgxfz (s_xhao, s_xqhao, i_pjdhao) ' +
        'SELECT d1.s_xhao, ''' + S_CurTermCode + ''', d2.i_pjdhao ' +
        'FROM  xsjbxx d1 JOIN gxfznr d2 ' +
        'ON d1.s_xhao = ''' + tmS + '''';
      ExecSQL;
      //  学生参加活动评价表
      SQL.Text := 'INSERT INTO xscjhd (s_xhao, s_xqhao, si_hddhao) ' +
        'SELECT d1.s_xhao, ''' + S_CurTermCode + ''', d2.FieldCode ' +
        'FROM  xsjbxx d1 JOIN "' + S_SysPath + '\dict3" d2 ' +
        'ON d1.s_xhao = ''' + tmS + '''' +
        'AND d2.TableName=''XSCJHD'' AND d2.FieldName=''SI_HDDHAO''';
      ExecSQL;
      //  学生一般性评价表
      SQL.Text := 'INSERT INTO xsybpj (s_xhao, s_xqhao) ' +
        'SELECT s_xhao, ''' + S_CurTermCode + ''' ' +
        'FROM  xsjbxx WHERE s_xhao = ''' + tmS + '''';
      ExecSQL;
    end;
  end;
end;

procedure TFm_StudentManage.MQueryD_CSRQIGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin//
  if Sender.AsFloat < 10959 then
    Text := ''
  else
    Text := FormatDateTime('ddddd', Sender.AsDateTime);
end;

procedure TFm_StudentManage.TbBtn_PrintClick(Sender: TObject);
begin  //
  Show_Print(MGrid);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -