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

📄 u_sjscfanrwh.pas

📁 试卷管理系统
💻 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 + -