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

📄 u_studentmangeaction.pas

📁 一个简单的学籍管理软件
💻 PAS
📖 第 1 页 / 共 3 页
字号:
end;

procedure TFm_StudentMangeAction.FGridKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  GridKeyDown(Sender, Key, Shift);
end;

procedure TFm_StudentMangeAction.FmQryGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  DataSetGetText(FGrid, Sender, Text, DisplayText);
end;

procedure TFm_StudentMangeAction.FmQrySetText(Sender: TField;
  const Text: string);
begin
  DataSetSetText(FGrid, Sender, Text);
end;

procedure TFm_StudentMangeAction.GdQryGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  DataSetGetText(GGrid, Sender, Text, DisplayText);
end;

procedure TFm_StudentMangeAction.GdQrySetText(Sender: TField;
  const Text: string);
begin
  DataSetSetText(GGrid, Sender, Text);
end;

procedure TFm_StudentMangeAction.HtQryGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  DataSetGetText(HGrid, Sender, Text, DisplayText);
end;

procedure TFm_StudentMangeAction.HtQrySetText(Sender: TField;
  const Text: string);
begin
  DataSetSetText(HGrid, Sender, Text);
end;

procedure TFm_StudentMangeAction.Btn_FAddClick(Sender: TObject);
var
  tmOrder: integer;
begin
  tmOrder := 1;
  try
    with Qry_Family do
    begin
      DisableControls;
      Last;
      if not IsEmpty then
        tmOrder := FieldByName('i_sxhao').AsInteger + 1;
      Append;
      FieldByName('s_xhao').AsString := Ed_XHao01.Text + Ed_XHao02.Text;
      FieldByName('i_sxhao').AsInteger := tmOrder;
      FGrid.Options := FGrid.Options + [tgEditing];
      FGrid.SetFocus;
    end;
  finally
    Qry_Family.EnableControls;
  end;
  Btn_FCancel.Enabled := True;
end;

procedure TFm_StudentMangeAction.Qry_FamilyBeforePost(DataSet: TDataSet);
begin
  with DataSet do
    if Trim(FieldByName('s_xming').AsString) = '' then
    begin
      if (State = dsInsert) or ((State = dsEdit) and
        (not U_GlobalProc.Show_ConfirmMess(
        '姓名被修改为空值,是否存盘?'))) then
      begin
        Cancel;
        if IsEmpty then
          FGrid.Options := FGrid.Options - [tgEditing];
        Abort;
      end;
    end;
end;

procedure TFm_StudentMangeAction.Qry_FamilyAfterPost(DataSet: TDataSet);
begin //
  if not Qry_Family.IsEmpty then
  begin
    Btn_FEdit.Enabled := True;
    Btn_FDelete.Enabled := True;
  end
  else
    FGrid.Options := FGrid.Options - [tgEditing];
end;

procedure TFm_StudentMangeAction.Btn_FEditClick(Sender: TObject);
begin
  if Qry_Family.IsEmpty then
  begin
    Btn_FAdd.Click;
    Exit;
  end;
  Qry_Family.Edit;
  FGrid.SetFocus;
  Btn_FCancel.Enabled := True;
end;

procedure TFm_StudentMangeAction.Btn_FDeleteClick(Sender: TObject);
begin //
  if Qry_Family.IsEmpty then
    Exit;
  if U_GlobalProc.Show_ConfirmMess('你真的要删除 ' + Qry_Family.FieldByName('s_xming').AsString +
    ' 吗?') then
    Qry_Family.Delete;
  if Qry_Family.IsEmpty then
  begin
    Btn_FEdit.Enabled := False;
    Btn_FDelete.Enabled := False;
    FGrid.Options := FGrid.Options - [tgEditing];
  end;
end;

procedure TFm_StudentMangeAction.Btn_FCancelClick(Sender: TObject);
begin
  Qry_Family.Cancel;
  Btn_FCancel.Enabled := False;
end;

procedure TFm_StudentMangeAction.Btn_FOkClick(Sender: TObject);
begin
  if Qry_Family.State in [dsInsert, dsEdit] then
    Qry_Family.Post;
  Btn_FCancel.Enabled := False;
end;

procedure TFm_StudentMangeAction.Btn_GEditClick(Sender: TObject);
begin //
  if not Qry_Grades.IsEmpty then
  begin
    Qry_Grades.Edit;
    GGrid.SetFocus;
  end;
end;

procedure TFm_StudentMangeAction.Btn_GOkClick(Sender: TObject);
begin
  if Qry_Grades.State in [dsInsert, dsEdit] then
    Qry_Grades.Post;
end;

procedure TFm_StudentMangeAction.Btn_GCancelClick(Sender: TObject);
begin
  Qry_Grades.Cancel;
end;

procedure TFm_StudentMangeAction.Qry_HealthBeforePost(DataSet: TDataSet);
begin //
end;

procedure TFm_StudentMangeAction.Qry_HealthAfterPost(DataSet: TDataSet);
begin //
  if not Qry_Health.IsEmpty then
    Btn_HEdit.Enabled := True
  else
    HGrid.Options := HGrid.Options - [tgEditing];
end;

procedure TFm_StudentMangeAction.Btn_HOkClick(Sender: TObject);
begin
  if Qry_Health.State in [dsEdit, dsInsert] then
    Qry_Health.Post;
  if not Qry_Health.IsEmpty then
    Btn_HAdd.Visible := False;
end;

procedure TFm_StudentMangeAction.Btn_HCancelClick(Sender: TObject);
begin
  if Qry_Health.State in [dsEdit, dsInsert] then
    Qry_Health.Cancel;
end;

procedure TFm_StudentMangeAction.Ed_XMingExit(Sender: TObject);
begin
  if Ed_XHao02.Focused or Btn_Cancel.Focused or
    Btn_Help.Focused then
    Exit;
  with Sender as TEdit do
  begin
    if Trim(Text) = '' then
    begin
      ErrFlag := True;
      MessageBeep(0);
      U_GlobalProc.Show_ErrorMess('学生姓名不能为空。');
      PgCtrl_Info.ActivePageIndex := 0;
      Ed_XMing.SetFocus;
      Exit;
    end;
  end;
end;

procedure TFm_StudentMangeAction.Btn_SaveClick(Sender: TObject);
var
  tmS: string;
begin //
  if EdState = 1 then //  增加
    with Qry_Grades do
    begin
      tmS := Ed_XHao01.Text + Ed_XHao02.Text;
      First;
      while not Eof do
      begin
        Edit;
        FieldByName('s_xhao').AsString := tmS;
        Post;
        Next;
      end;
    end;
  //  检测学号
  Ed_XHao02Exit(Ed_XHao02);
  if ErrFlag then
    Exit;
  //  检测姓名
  Ed_XMingExit(Ed_XMing);
  if ErrFlag then
    Exit;
  //  检测性别
  CmbBox_XBieExit(CmbBox_XBie);
  if ErrFlag then
    Exit;
  //  检测民族
  CmbBox_MZuExit(CmbBox_MZu);
  if ErrFlag then
    Exit;
  //  检测班级号
  CmbBox_BJiExit(CmbBox_BJi);
  if ErrFlag then
    Exit;
  ModalResult := mrOk;
end;

procedure TFm_StudentMangeAction.Ed_XMingKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key = #13 then
    Key := #0;
end;

procedure TFm_StudentMangeAction.DtPicker_CSRQiKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key = #13 then
    Key := #0;
end;

procedure TFm_StudentMangeAction.Qry_GradesS_KMHAOGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin  //
  DataSetGetText(GGrid, Sender, Text, DisplayText);
end;

procedure TFm_StudentMangeAction.Qry_GradesS_KMHAOSetText(Sender: TField;
  const Text: String);
var
  aList: TStrings;
  i: integer;
begin
  aList := nil;
  for i := 0 to GGrid.Columns.Count - 1 do
  begin
    if GGrid.Columns[i].FieldName = Sender.FieldName then
    begin
      aList := GGrid.Columns[i].PickList;
      Break;
    end;
  end;
  if Assigned(aList) then
  begin
    for i := 0 to aList.Count - 1 do
      if Text = aList.Strings[i] then
      begin
        Sender.AsString := IntFormatStr(Integer(aList.Objects[i]), 4);
        break;
      end;
  end;
end;

procedure TFm_StudentMangeAction.GGridDblClick(Sender: TObject);
var
  aColumn: THColumn;
  aGrid: THDBGrid;
  aDataSet: TDataSet;
  tmI: integer;
begin
  aGrid := Sender as THDBGrid;
  aDataSet := aGrid.DataSource.DataSet;
  aColumn := aGrid.Columns[aGrid.Col - aGrid.IndicatorOffset];
  if aColumn.PickList.Count > 0 then
  begin
    if not (aDataSet.State in [dsEdit, dsInsert]) then
      aDataSet.Edit;
    tmI := aDataSet.FieldByName(aColumn.FieldName).AsInteger;
    tmI := aColumn.PickList.IndexOfObject(Pointer(tmI));
    Inc(tmI);
    if tmI > aColumn.Picklist.Count then
      tmI := 1;
    aDataSet.FieldByName(aColumn.FieldName).AsString :=
      IntFormatStr(Integer(aColumn.PickList.Objects[tmI]), 4);
  end;
end;

procedure TFm_StudentMangeAction.GGridKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin//
  if (Key = VK_SPACE) and (Shift = []) then
    GGridDblClick(Sender);
end;

procedure TFm_StudentMangeAction.Btn_HAddClick(Sender: TObject);
begin
  with Qry_Health do
  try
    DisableControls;
    AppendRecord([Ed_XHao01.Text + Ed_XHao02.Text, S_CurTermCode]);
    HGrid.Options := HGrid.Options + [tgEditing];
    HGrid.SetFocus;
  finally
    EnableControls;
  end;
  Btn_HAdd.Enabled := False;
end;

procedure TFm_StudentMangeAction.Btn_HEditClick(Sender: TObject);
begin//
  Qry_Health.Edit;
  HGrid.Col := 3;
end;

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

procedure TFm_StudentMangeAction.FormCreate(Sender: TObject);
begin
  RegisterDibGraphic('BMP', 'Bitmap file', TBitmapGraphic);
end;

end.

⌨️ 快捷键说明

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