📄 u_studentmangeaction.pas
字号:
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 + -