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

📄 u_examselect.pas

📁 一个简单的学籍管理软件
💻 PAS
字号:
unit U_ExamSelect;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, HGrids, HDBGrids, Db, DBTables, Menus,
  Buttons, PgNavigator;

type
  TFm_ExamSelect = class(TForm)
    SGrid: THDBGrid;
    Btn_DFTJYGe: TButton;
    DGrid: THDBGrid;
    Btn_DFTJSYou: TButton;
    Btn_DFSCYGe: TButton;
    Btn_DFSCSYou: TButton;
    Btn_Ok: TButton;
    Btn_Cancel: TButton;
    Btn_Help: TButton;
    Bevel1: TBevel;
    Label2: TLabel;
    SDs: TDataSource;
    SQuery: TQuery;
    DQuery: TQuery;
    DDs: TDataSource;
    SUpSQL: TUpdateSQL;
    DUpSQL: TUpdateSQL;
    Label1: TLabel;
    Label3: TLabel;
    CmbBox_Grade: TComboBox;
    SQueryS_XHAO: TStringField;
    SQueryS_XMING: TStringField;
    SQueryS_BJHAO: TStringField;
    DQueryi_kshao: TIntegerField;
    DQuerys_xhao: TStringField;
    DQuerys_xming: TStringField;
    DQuerys_bjhao: TStringField;
    DQuerysi_nji: TSmallintField;
    procedure Btn_DFTJYGeClick(Sender: TObject);
    procedure Btn_DFTJSYouClick(Sender: TObject);
    procedure Btn_DFSCYGeClick(Sender: TObject);
    procedure Btn_DFSCSYouClick(Sender: TObject);
    procedure CmbBox_GradeChange(Sender: TObject);
    procedure SQueryS_BJHAOGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
  private
    FExamNo, FGradeNo: integer;
    FCanEdit: Boolean;
  public
  end;

procedure Show_ExamSelect(pExamNo, pGradeNo: integer; CanEdit: Boolean);
implementation

uses Math, IniFiles, U_GlobalVar, U_GlobalProc, U_Main;

{$R *.DFM}

procedure Show_ExamSelect(pExamNo, pGradeNo: integer; CanEdit: Boolean);
var
  Fm_ExamSelect: TFm_ExamSelect;
  aQuery: TQuery;
begin
  Fm_ExamSelect := TFm_ExamSelect.Create(Application);
  with Fm_ExamSelect do
  try
    FExamNo := pExamNo;
    FGradeNo := pGradeNo;
    FCanEdit := CanEdit;
    CmbBox_Grade.Items.Clear;
    CmbBox_Grade.Items.AddObject(GradeNames[pGradeNo - 1] + '年级',
      Pointer(StrToInt(S_SchoolCode + IntToStr(W_CurYear - pGradeNo + 1))));
    aQuery := TQuery.Create(Application);
    with aQuery do
    try
      DataBaseName := DataDBase;
      SQL.Text := 'SELECT * FROM bj WHERE si_dqnji=' + IntToStr(pGradeNo);
      Open;
      while not Eof do
      begin
        CmbBox_Grade.Items.AddObject(FieldByName('s_bjmcheng').AsString,
          Pointer(FieldByName('s_bjhao').AsInteger));
        Next;
      end;
    finally
      Close;
      Free;
    end;
    CmbBox_Grade.ItemIndex := 0;
    CmbBox_GradeChange(nil);
    if CanEdit then
    begin
      Btn_DFTJYGe.Enabled := True;
      Btn_DFSCYGe.Enabled := True;
      Caption := Caption + ' —(只读)';
    end else
    begin
      Btn_DFTJYGe.Enabled := False;
      Btn_DFSCYGe.Enabled := False;
    end;
    RefreshGridStyle(SGrid);
    RefreshGridStyle(DGrid);
    ShowModal;
  finally
    Free;
  end;
end;


procedure TFm_ExamSelect.Btn_DFTJYGeClick(Sender: TObject);
begin  //
  if SQuery.IsEmpty then
  begin
    Btn_DFTJYGe.Enabled := False;
    Exit;
  end;

  DQuery.InsertRecord([FExamNo, SQuery.FieldByName('s_xhao').AsString, '',
    SQuery.FieldByName('s_bjhao').AsString, FGradeNo]);
  DQuery.ApplyUpdates;
  CmbBox_GradeChange(nil);
end;

procedure TFm_ExamSelect.Btn_DFTJSYouClick(Sender: TObject);
begin  //

end;

procedure TFm_ExamSelect.Btn_DFSCYGeClick(Sender: TObject);
begin  //
  if DQuery.IsEmpty then
  begin
    Btn_DFSCYGe.Enabled := False;
    Exit;
  end;

  DQuery.Delete;
  DQuery.ApplyUpdates;
  CmbBox_GradeChange(nil);                          
end;

procedure TFm_ExamSelect.Btn_DFSCSYouClick(Sender: TObject);
begin  //

end;

procedure TFm_ExamSelect.CmbBox_GradeChange(Sender: TObject);
begin  //
  with DQuery, CmbBox_Grade do
  try
    DisableControls;
    Close;
    ParamByName('pi_kshao').AsInteger := FExamNo;
    if ItemIndex = -1 then
      ItemIndex := 0;
    if ItemIndex = 0 then
      ParamByName('ps_bjhao').AsString :=
        IntFormatStr(Integer(Items.Objects[ItemIndex]), 7) + '%'
    else
      ParamByName('ps_bjhao').AsString :=
        IntFormatStr(Integer(Items.Objects[ItemIndex]), 9) + '%';
    Prepare;
    Open;
  finally
    EnableControls;
  end;

  with SQuery, CmbBox_Grade do
  try
    DisableControls;
    Close;
    if ItemIndex = -1 then
      ItemIndex := 0;
    if ItemIndex = 0 then
      ParamByName('ps_bjhao').AsString :=
        IntFormatStr(Integer(Items.Objects[ItemIndex]), 7) + '%'
    else
      ParamByName('ps_bjhao').AsString :=
        IntFormatStr(Integer(Items.Objects[ItemIndex]), 9) + '%';
    Prepare;
    Open;
    DQuery.First;
    while not DQuery.Eof do
    begin
      if Locate('s_xhao',DQuery.FieldByName('s_xhao').AsString, []) then
        Delete;
      DQuery.Next;
    end;
  finally
    EnableControls;
  end;
  if SQuery.IsEmpty or (not FCanEdit) then
    Btn_DFTJYGe.Enabled := False
  else
    Btn_DFTJYGe.Enabled := True;
  if DQuery.IsEmpty or (not FCanEdit) then
    Btn_DFSCYGe.Enabled := False
  else
    Btn_DFSCYGe.Enabled := True;
end;

procedure TFm_ExamSelect.SQueryS_BJHAOGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
var
  tmV: integer;
begin  //
  if Trim(Sender.AsString) = '' then
    tmV := 0
  else
    tmV := StrToInt(Sender.AsString);
  tmV := CmbBox_Grade.Items.IndexOfObject(Pointer(tmV));
  if tmV > -1 then
    Text := CmbBox_Grade.Items[tmV]; 
end;

end.

⌨️ 快捷键说明

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