📄 ucjlr.pas
字号:
unit Ucjlr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UData, PrnDbgeh, DB, ADODB, ActnList, Grids, DBGridEh, ExtCtrls,
ComCtrls, ToolWin, StdCtrls, Mask, DBCtrlsEh, mmsystem;
type
TFCjlr = class(TFData)
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label1: TLabel;
Shape2: TShape;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Edit2: TEdit;
Label4: TLabel;
ComboBox3: TComboBox;
Label6: TLabel;
ComboBox4: TComboBox;
ADOQueryID: TAutoIncField;
ADOQueryDSDesigner: TWideStringField;
ADOQueryDSDesigner2: TWideStringField;
ADOQueryDSDesigner3: TSmallintField;
ADOQueryDSDesigner4: TWideStringField;
ADOQueryDSDesigner5: TWideStringField;
ADOQueryDSDesigner6: TWideStringField;
ADOQueryDSDesigner7: TFloatField;
ADOQueryDSDesigner8: TFloatField;
ADOQueryDSDesigner9: TFloatField;
ADOQueryDSDesigner10: TFloatField;
ADOQueryDSDesigner11: TFloatField;
ADOQueryDSDesigner12: TFloatField;
ADOQueryDSDesigner13: TFloatField;
ADOQueryDSDesigner14: TFloatField;
ADOQueryDSDesigner15: TFloatField;
ADOQueryDSDesigner16: TFloatField;
ADOQueryDSDesigner17: TFloatField;
ADOQueryDSDesigner18: TWideStringField;
ADOQueryDSDesigner19: TWideStringField;
ADOQueryDSDesigner20: TWideStringField;
ADOQueryDSDesigner21: TWideStringField;
Button1: TButton;
Button2: TButton;
CheckBox: TCheckBox;
ADOQueryDSDesigner22: TWideStringField;
Label7: TLabel;
Label8: TLabel;
procedure A_addExecute(Sender: TObject);
procedure DataSourceStateChange(Sender: TObject);
procedure A_modifyExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ComboBox3Exit(Sender: TObject);
procedure DBGridEhDblClick(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox4Exit(Sender: TObject);
procedure ComboBox1Exit(Sender: TObject);
procedure A_refreshExecute(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure A_deleteExecute(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FCjlr: TFCjlr;
implementation
uses UPublic, sounds;
{$R *.dfm}
procedure TFCjlr.A_addExecute(Sender: TObject);
begin
//
end;
procedure TFCjlr.DataSourceStateChange(Sender: TObject);
begin
//
end;
procedure TFCjlr.A_modifyExecute(Sender: TObject);
begin
//
end;
procedure TFCjlr.FormCreate(Sender: TObject);
begin
inherited;
if g_User.profile >4 then ComboBox1.Enabled := True
else ComboBox1.Enabled := False;
ComboBox1.ItemIndex := 0;
if ComboBox1.Items.IndexOf(g_User.kz) > -1 then begin
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(g_User.kz);
DBGridEh.Columns[2].FieldName := g_User.kz;
end else DBGridEh.Columns[2].FieldName := ComboBox1.text;
if g_Sys.Usedm='1' then
InitCode('select ss from STU_ss order by id', ComboBox2.Items)
else
InitCode('select distinct dh,id from STU_ss order by dh', ComboBox2.Items);
// if g_U
end;
procedure TFCjlr.ComboBox3Exit(Sender: TObject);
var
str: string;
begin
if ComboBox3.Text = '' then exit;
if ComboBox1.ItemIndex < 0 then begin
Ask('科目输入有误,请从新输入!','提示',MB_STOP);
ComboBox1.SetFocus;
exit;
end;
if ComboBox2.ItemIndex < 0 then begin
Ask('试室名称输入有误,请从新输入!','提示',MB_STOP);
ComboBox2.SetFocus;
exit;
end;
if ComboBox3.ItemIndex < 0 then begin
Ask('年级输入有误,请从新输入!','提示',MB_STOP);
ComboBox3.SetFocus;
exit;
end;
if g_Sys.Usedm='1' then
str := ComboBox2.Text
else str := GetFieldVar('select ss from stu_ss where dh='''+ComboBox2.items[ComboBox2.itemindex]+'''');
with ADOQuery do try
if Active then CLose;
SQL.Text := 'select * from STU_info where 试室名称='''+str
+''' and 级别='''+ComboBox3.Text+''' order by 流水号';
Open;
except
end;
InitCode('select 座位号 from STU_info where 试室名称='''+str
+''' and 级别='''+ComboBox3.Text+''' order by 流水号',ComboBox4.Items);
ComboBox4.text := '';
end;
procedure TFCjlr.DBGridEhDblClick(Sender: TObject);
begin
//
end;
procedure TFCjlr.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if (key in['0'..'9'])or(key='.') then begin
if key ='.'then sndPlaySound(ssounds[10], SND_MEMORY or SND_NODEFAULT or SND_ASYNC)
else sndPlaySound(ssounds[strtoint(key)], SND_MEMORY or SND_NODEFAULT or SND_ASYNC);
end;
if (Key=#13)and not(ActiveControl is TButton) then SelectNext(ActiveControl,True,True)
else if (Key='+') then
begin
SelectNext(ActiveControl,False,True);
key:= #0;
end;
end;
procedure TFCjlr.Edit2KeyPress(Sender: TObject; var Key: Char);
function Setfs(aQk: boolean): boolean;
var
acount: real;
qkstr: string;
begin
Result := false;
qkstr := ADOQuery.fieldbyname('缺考科目').AsString;
if not aqk then begin
if Pos(comboBox1.Text, qkstr)>0 then
qkstr := copy(qkstr, 1, Pos(comboBox1.Text, qkstr)-1)
+copy(qkstr,Pos(comboBox1.Text, qkstr)+length(combobox1.text), length(qkstr));
try
acount := strtofloat(Edit2.Text);
except
Ask('分数输入不对,请重新输入!','提示',MB_STOP);
Edit2.SetFocus;
exit;
end;
if acount>150 then begin
Ask('分数输入不大于150,请重新输入!','提示',MB_STOP);
Edit2.Text :='';
Edit2.SetFocus;
exit;
end;
with ADOQuery do try
Edit;
FieldByname(ComboBox1.Text).AsFloat := acount;
fieldbyname('缺考科目').AsString := qkstr;
Post;
except
Ask('保存出错!','提示',MB_STOP);
exit;
end
end else begin
if Pos(comboBox1.Text, qkstr)<1 then
qkstr := qkstr+combobox1.Text;
with ADOQuery do try
Edit;
FieldByname(ComboBox1.Text).AsFloat := 0;
fieldbyname('缺考科目').AsString := qkstr;
Post;
except
Ask('保存出错!','提示',MB_STOP);
exit;
end
end;
Result := true;
end;
procedure Setczrz;
begin
if GetFieldVar('select Count(*) from STU_czrz where kz='''+ComboBox1.Text
+''' and username='''+g_user.Name+'''and ss='''+ComboBox2.Text
+''' and nj='''+ComboBox3.Text+'''') =0 then
ExecuteSQL('Insert into STU_czrz(kz,username,ss,nj,sj) values('''+ComboBox1.Text+''','''
+g_user.Name+''','''+ComboBox2.Text+''','''+ComboBox3.Text
+''','+floattostr(now)+')');
end;
begin
if (Key='+') then
begin
SelectNext(ActiveControl,False,True);
key:= #0;
exit;
end;
if not ((key in['0'..'9'])or(key='.')or(key=#8)or(key='*')or(key=#13)or(Key='+')) then
begin
key := #0;
exit;
end;
if (key in['0'..'9'])or(key='.') then try
if key ='.'then sndPlaySound(ssounds[10], SND_MEMORY or SND_NODEFAULT or SND_ASYNC)
else sndPlaySound(ssounds[strtoint(key)], SND_MEMORY or SND_NODEFAULT or SND_ASYNC);
except
end;
if Key = #13 then begin
if ADOQuery.IsEmpty then begin
Ask('没有相关数据,请检查试室名称、年级、座位号输入是否正确!','提示',MB_STOP);
ComboBox2.SetFocus;
exit;
end;
if ComboBox1.ItemIndex < 0 then begin
Ask('科目输入有误,请重新输入!','提示',MB_STOP);
ComboBox1.SetFocus;
exit;
end;
if ComboBox2.ItemIndex < 0 then begin
Ask('试室名称输入有误,请重新输入!','提示',MB_STOP);
ComboBox2.SetFocus;
exit;
end;
if ComboBox3.ItemIndex < 0 then begin
Ask('年级输入有误,请重新输入!','提示',MB_STOP);
ComboBox3.SetFocus;
exit;
end;
if ComboBox4.ItemIndex < 0 then begin
Ask('座位号输入有误,请从新输入!','提示',MB_STOP);
ComboBox4.SetFocus;
exit;
end;
if Edit2.Text = '' then begin
Ask('还未输入分数,请重新输入!','提示',MB_STOP);
Edit2.SetFocus;
exit;
end;
with ADOQuery do begin
DisableControls;
close;
Open;
EnableControls;
end;
if not ADOQuery.Locate('座位号', ComboBox4.Text, [loCaseInsensitive]) then
begin
Ask('无法找到座位号,请从新输入!','提示',MB_STOP);
ComboBox4.SetFocus;
exit;
end;
if not setfs(pos('*',edit2.Text)>0) then exit;
Setczrz;
if not CheckBox.Checked then begin
Ask('保存成功!','提示',MB_INFO);
Edit2.Text :='';
ComboBox4.SetFocus;
end else begin
if ComboBox4.ItemIndex= ComboBox4.Items.Count-1 then
Ask('录入完毕!','提示',MB_INFO)
else begin
ComboBox4.ItemIndex := ComboBox4.ItemIndex +1;
// Edit2.Text :='';
Edit2.SelectAll;
Edit2.SetFocus;
exit;
end;
end;
end;
end;
procedure TFCjlr.ComboBox4Exit(Sender: TObject);
begin
if ComboBox4.Text ='' then exit;
if ComboBox4.ItemIndex < 0 then begin
Ask('座位号输入有误,请从新输入!','提示',MB_STOP);
ComboBox4.SetFocus;
exit;
end;
end;
procedure TFCjlr.ComboBox1Exit(Sender: TObject);
begin
if ComboBox1.Text ='' then exit;
if ComboBox1.ItemIndex < 0 then begin
Ask('座位号输入有误,请从新输入!','提示',MB_STOP);
ComboBox4.SetFocus;
exit;
end;
DBGridEh.Columns[2].FieldName := ComboBox1.text;
end;
procedure TFCjlr.A_refreshExecute(Sender: TObject);
var
str: string;
begin
if ComboBox2.ItemIndex>-1 then str := '试室名称='''+ComboBox2.text+'''';
if ComboBox2.ItemIndex>-1 then str := '试室名称='''+ComboBox2.text+'''';
if ComboBox2.ItemIndex>-1 then str := '试室名称='''+ComboBox2.text+'''';
with ADOQuery do try
if Active then CLose;
SQL.Text := 'select * from STU_info where 试室名称='''+ComboBox2.Text
+''' and 级别='''+ComboBox3.Text+''' order by 流水号';
Open;
except
end;
end;
procedure TFCjlr.Button1Click(Sender: TObject);
var
str: Char;
begin
str := #13;
Edit2KeyPress(Sender, str);
end;
procedure TFCjlr.Button2Click(Sender: TObject);
begin
ToolButton1.Click;
end;
procedure TFCjlr.A_deleteExecute(Sender: TObject);
begin
//
end;
procedure TFCjlr.ComboBox2Change(Sender: TObject);
begin
inherited;
ComboBox3.Text :='';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -