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

📄 u_studentmangeaction.pas

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

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls, ComCtrls, EnImgCon, EnImgScr, EnBmpGr, HGrids,
  HDBGrids, DBTables, Db, U_GlobalProc, U_GlobalVar, DateEdit;

type
  TFm_StudentMangeAction = class(TForm)
    Btn_Save: TButton;
    Btn_Cancel: TButton;
    Bevel1: TBevel;
    Btn_Help: TButton;
    PgCtrl_Info: TPageControl;
    Ts_BaseInfo: TTabSheet;
    Ts_Family: TTabSheet;
    Ts_Ruxue: TTabSheet;
    Ts_Health: TTabSheet;
    Btn_Prev: TButton;
    Btn_Next: TButton;
    Label1: TLabel;
    Ed_XHao01: TEdit;
    Ed_XHao02: TEdit;
    Label2: TLabel;
    Ed_XMing: TEdit;
    Label3: TLabel;
    CmbBox_XBie: TComboBox;
    Label5: TLabel;
    CmbBox_MZu: TComboBox;
    Label6: TLabel;
    Label7: TLabel;
    Ed_JGuan: TEdit;
    Label8: TLabel;
    Ed_JTZZhi: TEdit;
    Label9: TLabel;
    Ed_Lxfshi: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Ed_BYXXiao: TEdit;
    Label14: TLabel;
    Qry_Family: TQuery;
    DDs_Family: TDataSource;
    UpSQL_Family: TUpdateSQL;
    FGrid: THDBGrid;
    Panel1: TPanel;
    Btn_FAdd: TButton;
    Btn_FEdit: TButton;
    Btn_FDelete: TButton;
    Btn_FOk: TButton;
    Btn_FCancel: TButton;
    SclBox_ZPian: TScrollBox;
    EnImg_ZPian: TEnImage;
    Label_ZPian: TLabel;
    GGrid: THDBGrid;
    Qry_Grades: TQuery;
    DDs_Grades: TDataSource;
    UpSQL_Grades: TUpdateSQL;
    Qry_FamilyS_XHAO: TStringField;
    Qry_FamilyI_SXHAO: TIntegerField;
    Qry_FamilyS_XMING: TStringField;
    Qry_FamilyD_CSRQI: TDateField;
    Qry_FamilySI_CHU: TSmallintField;
    Qry_FamilySI_ZZMMIAO: TSmallintField;
    Qry_FamilyS_GZDWEI: TStringField;
    Qry_GradesS_XHAO: TStringField;
    Qry_GradesS_KMHAO: TStringField;
    Qry_GradesN_RXCJI: TFloatField;
    Panel2: TPanel;
    HGrid: THDBGrid;
    Panel3: TPanel;
    Qry_Health: TQuery;
    DDs_Health: TDataSource;
    UpSQL_Health: TUpdateSQL;
    Qry_HealthS_XHAO: TStringField;
    Qry_HealthS_XQHAO: TStringField;
    Qry_HealthI_SGAO: TIntegerField;
    Qry_HealthI_FHLIANG: TIntegerField;
    Qry_HealthN_ZYSLI: TFloatField;
    Qry_HealthN_YYSLI: TFloatField;
    Qry_HealthN_TZHONG: TFloatField;
    Qry_HealthN_XSSU: TFloatField;
    Qry_HealthI_XWEI: TIntegerField;
    Qry_HealthSI_MBO: TSmallintField;
    Qry_HealthSI_QCHI: TSmallintField;
    Qry_HealthSI_TYDBIAO: TSmallintField;
    Qry_HealthS_YWBSHI: TStringField;
    Btn_GEdit: TButton;
    Btn_GOk: TButton;
    Btn_GCancel: TButton;
    Btn_HAdd: TButton;
    Btn_HEdit: TButton;
    Btn_HDelete: TButton;
    Btn_HOk: TButton;
    Btn_HCancel: TButton;
    CmbBox_BJi: TComboBox;
    DtEdit_CSRQi: TDateEdit;
    DtEdit_RDSJian: TDateEdit;
    DtEdit_RTSJian: TDateEdit;
    DtEdit_RXSJian: TDateEdit;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure PgCtrl_InfoChange(Sender: TObject);
    procedure Ed_XHao02KeyPress(Sender: TObject; var Key: Char);
    procedure Ed_XHao02KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure EnImg_ZPianDblClick(Sender: TObject);
    procedure Ed_XHao02Exit(Sender: TObject);
    procedure CmbBox_XBieKeyPress(Sender: TObject; var Key: Char);
    procedure CmbBox_XBieKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DtPicker_CSRQiKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure CmbBox_BJiExit(Sender: TObject);
    procedure Ts_BaseInfoExit(Sender: TObject);
    procedure CmbBox_MZuExit(Sender: TObject);
    procedure CmbBox_XBieExit(Sender: TObject);
    procedure SclBox_ZPianEnter(Sender: TObject);
    procedure SclBox_ZPianExit(Sender: TObject);
    procedure Btn_NextClick(Sender: TObject);
    procedure Btn_PrevClick(Sender: TObject);
    procedure FGridDblClick(Sender: TObject);
    procedure FGridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FmQryGetText(Sender: TField; var Text: string; DisplayText: Boolean);
    procedure FmQrySetText(Sender: TField; const Text: string);
    procedure GdQryGetText(Sender: TField; var Text: string; DisplayText: Boolean);
    procedure GdQrySetText(Sender: TField; const Text: string);
    procedure HtQryGetText(Sender: TField; var Text: string; DisplayText: Boolean);
    procedure HtQrySetText(Sender: TField; const Text: string);
    procedure Btn_FAddClick(Sender: TObject);
    procedure Qry_FamilyBeforePost(DataSet: TDataSet);
    procedure Qry_FamilyAfterPost(DataSet: TDataSet);
    procedure Btn_FEditClick(Sender: TObject);
    procedure Btn_FDeleteClick(Sender: TObject);
    procedure Btn_FCancelClick(Sender: TObject);
    procedure Btn_FOkClick(Sender: TObject);
    procedure Btn_GEditClick(Sender: TObject);
    procedure Btn_GOkClick(Sender: TObject);
    procedure Btn_GCancelClick(Sender: TObject);
    procedure Qry_HealthBeforePost(DataSet: TDataSet);
    procedure Qry_HealthAfterPost(DataSet: TDataSet);
    procedure Btn_HOkClick(Sender: TObject);
    procedure Btn_HCancelClick(Sender: TObject);
    procedure Ed_XMingExit(Sender: TObject);
    procedure Btn_SaveClick(Sender: TObject);
    procedure Ed_XMingKeyPress(Sender: TObject; var Key: Char);
    procedure DtPicker_CSRQiKeyPress(Sender: TObject; var Key: Char);
    procedure Qry_GradesS_KMHAOGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure Qry_GradesS_KMHAOSetText(Sender: TField; const Text: String);
    procedure GGridDblClick(Sender: TObject);
    procedure GGridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Btn_HAddClick(Sender: TObject);
    procedure Btn_HEditClick(Sender: TObject);
    procedure Qry_FamilyD_CSRQIGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure FormCreate(Sender: TObject);
  private
    EdState: smallint;
    ErrFlag: Boolean;
    //procedure CMChangeControl(var Mess: TMessage); message cm_ChangeControl;
  public
    //function GetDSelStart(Sender: TObject): integer;
  end;

var
  Fm_StudentMangeAction: TFm_StudentMangeAction;
  
function Show_StudentMangeAction(pStdCode: string; iClassCode: integer;
  Actions: integer): Boolean;
implementation

uses EnDiGrph, U_Capture, U_StudentManage;
{$R *.DFM}

function Show_StudentMangeAction(pStdCode: string; iClassCode: integer;
  Actions: integer): Boolean;
var
  tmS: string;
  tmOrder: integer;
  aQuery: TQuery;
  aList: TStrings;
begin
  Result := False;
  Fm_StudentMangeAction := TFm_StudentMangeAction.Create(Application);

  aQuery := TQuery.Create(Application);
  with Fm_StudentMangeAction do
  try
    with aQuery do
    try
      DataBaseName := SysDBase;
      SQL.Text := 'SELECT * FROM dict3 WHERE tablename = ''XSJBXX''' +
        ' AND fieldname= :pfieldname ORDER BY valueno';
      ParamByName('pfieldname').AsString := 'SI_XBIE';
      Prepare;
      Open;
      while not Eof do
      begin
        CmbBox_XBie.Items.AddObject(FieldByName('FieldValue').AsString,
          Pointer(FieldByName('FieldCode').AsInteger));
        Next;
      end;
      Close;

      ParamByName('pfieldname').AsString := 'SI_MZU';
      Prepare;
      Open;
      while not Eof do
      begin
        CmbBox_MZu.Items.AddObject(FieldByName('FieldValue').AsString,
          Pointer(FieldByName('FieldCode').AsInteger));
        Next;
      end;
    finally
      Close;
      Free;
    end;

    aQuery := TQuery.Create(Application);
    with aQuery do
    try
      DataBaseName := DataDBase;
      tmOrder := Integer(Fm_StudentManage.MTrView.Selected.Data);
      if tmOrder < 9999 then
      begin
        tmS := S_SchoolCode + IntFormatStr(tmOrder, 4) + '%';
        SQL.Text := 'SELECT * FROM bj WHERE s_bjhao LIKE ''' + tmS + '''';
      end
      else
      begin
        tmS := IntFormatStr(tmOrder, 9);
        SQL.Text := 'SELECT * FROM bj WHERE s_bjhao = ''' + tmS + '''';
      end;
      Open;
      while not Eof do
      begin
        CmbBox_BJi.Items.AddObject(FieldByName('s_bjmcheng').AsString,
          Pointer(StrToInt(FieldByName('s_bjhao').AsString)));
        Next;
      end;
      if tmOrder > 9999 then
      begin
        CmbBox_BJi.ItemIndex := 0;
        CmbBox_BJi.Enabled := False;
      end;
    finally
      Close;
      //Free;
    end;

    EdState := Actions;
    case Actions of
      1:
        begin
          Caption := Caption + ' — 增加一个学生档案';
          tmOrder := Integer(Fm_StudentManage.MTrView.Selected.Data);
          if tmOrder < 9999 then
            Ed_XHao01.Text := S_SchoolCode + IntFormatStr(tmOrder, 4)
          else
            Ed_XHao01.Text := Copy(IntFormatStr(tmOrder, 9), 1, 7);
          ActiveControl := Ed_XHao02;
        end;
      2:
        begin
          Caption := Caption + ' — 修改学生档案';
          Ed_XHao02.Enabled := False;
          Ed_XHao02.Color := clBtnFace;
          with Fm_StudentManage.MQuery do
          begin
            tmS := FieldByName('s_xhao').AsString;
            Ed_XHao01.Text := Copy(tmS, 1, 7);
            Ed_XHao02.Text := Copy(tmS, 8, 4);
            Ed_XMing.Text := FieldByName('s_xming').AsString;
            CmbBox_XBie.ItemIndex :=
              CmbBox_XBie.Items.IndexOfObject(Pointer(FieldByName('si_xbie').AsInteger));
            CmbBox_MZu.ItemIndex :=
              CmbBox_MZu.Items.IndexOfObject(Pointer(FieldByName('si_mzu').AsInteger));
            DtEdit_CSRQi.Date := FieldByName('d_csrqi').AsDateTime;
            tmS := S_DataPath + '\BMP\' + FieldByName('s_zpwjian').AsString;
            if FileExists(tmS) then
              EnImg_ZPian.FileName := tmS;
            Ed_JGuan.Text := FieldByName('s_jguan').AsString;
            Ed_JTZZhi.Text := FieldByName('s_xxzzhi').AsString;
            Ed_Lxfshi.Text := FieldByName('s_lxfshi').AsString;
            DtEdit_RDSJian.Date := FieldByName('D_RDSJIAN').AsDateTime;
            DtEdit_RTSJian.Date := FieldByName('D_RTSJIAN').AsDateTime;
            DtEdit_RXSJian.Date := FieldByName('D_RXSJIAN').AsDateTime;
            Ed_BYXXiao.Text := FieldByName('S_BYXXIAO').AsString;
            CmbBox_BJi.ItemIndex := CmbBox_BJi.Items.IndexOfObject(
              Pointer(StrToInt(FieldByName('S_BJHAO').AsString)));
            CmbBox_BJi.Enabled := False;
            CmbBox_BJi.Color := clBtnFace;
            ActiveControl := Ed_XMing;
          end;
        end;
    end;
    tmS := Ed_XHao01.Text + Ed_XHao02.Text;
    Qry_Family.ParamByName('ps_xhao').AsString := tmS;
    Qry_Grades.ParamByName('ps_xhao').AsString := tmS;
    Qry_Health.ParamByName('ps_xhao').AsString := tmS;

    Qry_Family.Prepare;
    Qry_Grades.Prepare;
    Qry_Health.Prepare;

    Qry_Family.Open;
    Qry_Grades.Open;
    Qry_Health.Open;
    if not Qry_Health.IsEmpty then
    begin
      Btn_HAdd.Enabled := False;
      Btn_HAdd.Visible := False;
    end else
      Btn_HEdit.Enabled := False;
    with aQuery do
    try
      aList := GGrid.FindFirstColumn('s_kmhao').PickList;
      SQL.Text := 'SELECT * FROM xsrxkm WHERE  s_kmhao LIKE ''' +
        IntFormatStr(W_CurYear, 2) + '%''';

      Open;
      while not Eof do
      begin
        if Actions = 1 then
          Qry_Grades.AppendRecord(['', FieldByName('s_kmhao').AsString, 0]);
        if Assigned(aList) then
          aList.AddObject(FieldByName('s_rxkmu').AsString, Pointer(FieldByName('s_kmhao').AsInteger));
        Next;
      end;
      Close;
    finally
      Close;
      Free;
    end;
    //
    ReSetGridColumns(FGrid, 'XSJTCY', FmQryGetText, FmQrySetText);
    ReSetGridColumns(GGrid, 'XSRXCJ', GdQryGetText, GdQrySetText);
    ReSetGridColumns(HGrid, 'XSSTZK', HtQryGetText, HtQrySetText);
    //
    RefreshGridStyle(FGrid);
    RefreshGridStyle(GGrid);
    RefreshGridStyle(HGrid);
    //
    if ShowModal = mrOk then
    begin
      with Fm_StudentManage.MQuery do
      begin
        if Actions = 1 then
          Append
        else

⌨️ 快捷键说明

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