📄 u_sjscfanrwh.pas
字号:
unit U_sjscfanrwh;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, DB, DBTables, Buttons, Mask, DBCtrls;
type
Tfrm_sjscfanrwh = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label5: TLabel;
ComboBox1: TComboBox;
DBGrid1: TDBGrid;
edit_jf: TEdit;
Table1: TTable;
DataSource1: TDataSource;
btn_confirm: TBitBtn;
btn_insert: TBitBtn;
btn_delete: TBitBtn;
btn_cancel: TBitBtn;
btn_edit: TBitBtn;
GroupBox2: TGroupBox;
Label2: TLabel;
Table2: TTable;
DBEdit1: TDBEdit;
DataSource2: TDataSource;
tbl_sttx: TTable;
Query1: TQuery;
Table1FANAME: TStringField;
Table1TXXH: TSmallintField;
Table1STXH: TSmallintField;
Table1JF: TSmallintField;
Table1txmc: TStringField;
btn_fzfb: TBitBtn;
tbl_fzfb: TTable;
Query2: TQuery;
btn_close_dw: TBitBtn;
Table1KEY: TAutoIncField;
procedure Table1AfterScroll(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure btn_insertClick(Sender: TObject);
procedure btn_deleteClick(Sender: TObject);
procedure staterefresh();
procedure btn_editClick(Sender: TObject);
procedure btn_confirmClick(Sender: TObject);
procedure btn_cancelClick(Sender: TObject);
procedure btn_fzfbClick(Sender: TObject);
procedure btn_close_dwClick(Sender: TObject);
procedure Table1AfterCancel(DataSet: TDataSet);
private
{ Private declarations }
xh:integer;
public
{ Public declarations }
faname:string;
end;
var
frm_sjscfanrwh: Tfrm_sjscfanrwh;
implementation
uses U_fzfb;
{$R *.dfm}
procedure Tfrm_sjscfanrwh.Table1AfterScroll(DataSet: TDataSet);
var
i:integer;
begin
for i:=0 to ComboBox1.Items.Count-1 do
begin
if integer(ComboBox1.Items.Objects[i])=table1.FieldByName('txxh').AsInteger then
begin
break;
end;
end;
ComboBox1.ItemIndex:=i;
edit_jf.Text:=inttostr(table1.fieldbyname('jf').AsInteger);
end;
procedure Tfrm_sjscfanrwh.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
table1.Close;
Table2.Post;
Table2.Close;
tbl_sttx.Close;
tbl_fzfb.Close;
end;
procedure Tfrm_sjscfanrwh.FormShow(Sender: TObject);
var
i:integer;
begin
Table2.Edit;
tbl_sttx.Open;
tbl_sttx.First;
while not tbl_sttx.Eof do
begin
ComboBox1.Items.AddObject(tbl_sttx.fieldbyname('txmc').AsString,TObject(tbl_sttx.fieldbyname('txxh').AsInteger));
tbl_sttx.Next;
end;
table1.Open;
if table1.RecordCount=0 then
begin
btn_insert.Enabled:=true;
btn_delete.Enabled:=false;
btn_edit.Enabled:=false;
btn_confirm.Enabled:=false;
btn_cancel.Enabled:=false;
ComboBox1.ItemIndex:=0;
edit_jf.Text:='';
end
else
begin
btn_confirm.Enabled:=false;
btn_cancel.Enabled:=false;
for i:=0 to ComboBox1.Items.Count-1 do
begin
if integer(ComboBox1.Items.Objects[i])=table1.FieldByName('txxh').AsInteger then
begin
break;
end;
end;
ComboBox1.ItemIndex:=i;
end;
edit_jf.SetFocus;
end;
procedure Tfrm_sjscfanrwh.btn_insertClick(Sender: TObject);
var
n,max,i:integer;
begin
max:=0;
Query1.ParamByName('pfaname').AsString:=table2.FieldByName('faname').AsString;
Query1.ParamByName('ptxxh').AsInteger:=integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
Query1.Open;
while not Query1.Eof do
begin
if max<Query1.fieldbyname('stxh').AsInteger then max:=Query1.fieldbyname('stxh').AsInteger;
Query1.Next;
end;
n:=Query1.RecordCount;
xh:=1;
if n<max then
begin
for i:=1 to max do
begin
if not Query1.Locate('stxh',i,[]) then
begin
xh:=i;
break;
end;
end;
end
else
xh:=n+1;
Query1.Close;
table1.Append;
btn_confirm.Enabled:=true;
btn_cancel.Enabled:=true;
btn_edit.Enabled:=false;
edit_jf.Text:='';
edit_jf.SetFocus;
end;
procedure Tfrm_sjscfanrwh.btn_deleteClick(Sender: TObject);
begin
if MessageBox(Handle,'确实要删除此试题吗?','试卷生成方案维护',MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2)=IDYES then
begin
table1.Delete;
end;
staterefresh;
edit_jf.SetFocus;
end;
procedure Tfrm_sjscfanrwh.staterefresh;
begin
if table1.RecordCount=0 then
begin
btn_insert.Enabled:=true;
btn_delete.Enabled:=false;
btn_edit.Enabled:=false;
btn_confirm.Enabled:=false;
btn_cancel.Enabled:=false;
ComboBox1.ItemIndex:=0;
edit_jf.Text:='';
exit;
end;
btn_insert.Enabled:=true;
btn_delete.Enabled:=true;
btn_edit.Enabled:=true;
btn_confirm.Enabled:=false;
btn_cancel.Enabled:=false;
end;
procedure Tfrm_sjscfanrwh.btn_editClick(Sender: TObject);
begin
table1.Edit;
btn_confirm.Enabled:=true;
btn_cancel.Enabled:=true;
edit_jf.SetFocus;
end;
procedure Tfrm_sjscfanrwh.btn_confirmClick(Sender: TObject);
begin
if edit_jf.Text='' then
begin
MessageBox(Handle,'计分不能为0!','试卷生成方案维护',MB_OK+MB_ICONSTOP);
table1.Cancel;
edit_jf.SetFocus;
exit;
end;
if table1.State=dsInsert then
table1.FieldByName('stxh').AsInteger:=xh;
table1.FieldByName('faname').AsString:=table2.FieldByName('faname').AsString;
table1.fieldbyname('txxh').AsInteger:=integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
table1.FieldByName('jf').AsInteger:=strtoint(edit_jf.Text);
table1.Post;
staterefresh;
end;
procedure Tfrm_sjscfanrwh.btn_cancelClick(Sender: TObject);
begin
table1.Cancel;
staterefresh;
end;
procedure Tfrm_sjscfanrwh.btn_fzfbClick(Sender: TObject);
var
form:Tfrm_fzfb;
begin
Query1.Close;
Query1.SQL.Text:='delete from tmp_sjscfa_fzfb';
Query1.ExecSQL;
Query1.Close;
Query1.SQL.Text:='select distinct txxh, txmc from sjscfanr,sttx'
+' where sttx.txxh=sjscfanr.txxh and sjscfanr.faname=:faname';
Query1.ParamByName('faname').AsString:=faname;
Query1.Open;
while not Query1.Eof do
begin
Query2.Close;
Query2.SQL.Text:='select sum(jf) as txfz from sjscfanr'
+' where sjscfanr.faname=:faname and txxh=:txxh';
Query2.ParamByName('faname').AsString:=faname;
Query2.ParamByName('txxh').AsInteger:=Query1.fieldbyname('txxh').AsInteger;
Query2.Open;
tbl_fzfb.Append;
tbl_fzfb.FieldByName('txmc').AsString:=Query1.fieldbyname('txmc').AsString;
tbl_fzfb.FieldByName('txfz').AsInteger:=Query2.fieldbyname('txfz').AsInteger;
tbl_fzfb.Post;
Query1.Next;
end;
form:=Tfrm_fzfb.Create(self);
Query2.Close;
Query2.SQL.Text:='select sum(txfz) as fafz from tmp_sjscfa_fzfb';
Query2.Open;
form.fafz:=Query2.fieldbyname('fafz').AsString;
form.ShowModal;
form.Free;
end;
procedure Tfrm_sjscfanrwh.btn_close_dwClick(Sender: TObject);
begin
close;
end;
procedure Tfrm_sjscfanrwh.Table1AfterCancel(DataSet: TDataSet);
begin
staterefresh;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -