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

📄 u_getsubject.pas

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

interface

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

type
  TFm_GetSubject = class(TForm)
    Btn_Ok: TButton;
    Btn_Cancel: TButton;
    Bevel1: TBevel;
    MGrid: THDBGrid;
    MQuery: TQuery;
    MDS: TDataSource;
    MQueryS_KCDHAO: TStringField;
    MQueryS_KCMCHENG: TStringField;
    MQueryS_KCXHAO: TStringField;
    MQuerySI_KCLXING: TSmallintField;
    MUpSQL: TUpdateSQL;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure QueryGetText(Sender: TField; var Text: String; DisplayText: Boolean);
    procedure QuerySetText(Sender: TField; const Text: string);
  private
  public
  end;

function Show_GetSubject(var pCode, pName: string; pGrade: integer): Boolean;
implementation

uses U_GlobalVar, U_GlobalProc;
{$R *.DFM}

function Show_GetSubject(var pCode, pName: string; pGrade: integer): Boolean;
var
  Fm_GetSubject: TFm_GetSubject;
  aQuery: TQuery;
begin
  Result := False;
  Fm_GetSubject := TFm_GetSubject.Create(Application);
  aQuery := TQuery.Create(Application);
  aQuery.DatabaseName := DataDBase;
  aQuery.SQL.Text := 'SELECT * FROM xqkskc WHERE s_xqhao = ''' + pCode +
    ''' AND si_nji=' + IntToStr(pGrade);
  with Fm_GetSubject do
  try
    try
      MQuery.Open;
      aQuery.Open;
      while not aQuery.Eof do
      begin
        if MQuery.Locate('s_kcdhao', aQuery.FieldByName('s_kcdhao').AsString,
          []) then
          MQuery.Delete;
        aQuery.Next;
      end;
      if MQuery.IsEmpty then
        Btn_Ok.Enabled := False;

    finally
      aQuery.Close;
      aQuery.Free;
    end;
    RefreshGridColumns(MGrid, 'KC', QueryGetText, QuerySetText);
    RefreshGridStyle(MGrid);
    if ShowModal = mrOk then
    begin
      pCode := MQuery.FieldByName('s_kcdhao').AsString;
      pName := MQuery.FieldByName('s_kcmcheng').AsString;
      Result := True;
    end;
  finally
    MQuery.Close;
    Free;
  end;
end;

procedure TFm_GetSubject.FormKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_ESCAPE) and (Shift = []) then
    ModalResult := mrCancel;
end;

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

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

⌨️ 快捷键说明

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