📄 u_examselect.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 + -