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

📄 ubbgl.pas

📁 完善的学生管理系统源码 适用于毕业设计和各种小的设计
💻 PAS
字号:
unit Ubbgl;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Buttons, Grids, DBGrids, Report_Public,
  ComCtrls, XPMenu;

type
  TFmbbgl = class(TForm)
    spb1: TSpeedButton;
    spb3: TSpeedButton;
    spb2: TSpeedButton;
    DataSource1: TDataSource;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    ComboBox2: TComboBox;
    Label3: TLabel;
    Edit1: TEdit;
    ADOQuery1: TADOQuery;
    ADOCommand1: TADOCommand;
    ListBox1: TListBox;
    SReport1: TSReport;
    DBGrid1: TDBGrid;
    ADOTable1: TADOTable;
    BitBtn1: TBitBtn;
    spb4: TSpeedButton;
    stb: TStatusBar;
    pgb: TProgressBar;
    XPMenu1: TXPMenu;
    ListBox2: TListBox;
    RadioButton1: TRadioButton;
    rt2: TRadioButton;
    spb5: TSpeedButton;
    spb6: TSpeedButton;
    spb7: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure spb1Click(Sender: TObject);
    procedure spb3Click(Sender: TObject);
    procedure spb2Click(Sender: TObject);
   // procedure SpeedButton3Click(Sender: TObject);
    procedure spb4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure rt2Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure spb5Click(Sender: TObject);
    procedure spb6Click(Sender: TObject);
    procedure spb7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure getXB() ;
     PROCEDURE getBj();
     function getkc():boolean;
     function setFields():string;
     procedure createtab();
     procedure insertcj();
      procedure insertxh();
  end;

var
  Fmbbgl: TFmbbgl;
  ord:string;
  //xhs:Tstrings;
implementation

uses Ubb, Udata;

{$R *.dfm}
function TFmbbgl.getkc():boolean;
var
strsql:string;
strxq,strbj,strkc:string;
begin
  if (combobox2.ItemIndex<1)  then  begin
  showmessage('必须先指定班级');
  result:=false;
  exit;
  end;
  if edit1.Text ='' then begin
  showmessage('必须先填写学期');
  edit1.SetFocus;
  result:=false;
  exit;
  end;
  strxq:=edit1.Text;
  strbj:=trim(combobox2.Text);
     strsql:='select * from tkcb2 where ckcb2_xq='''+strxq+''' and ckcb2_bj = '''+strbj+'''';

 try
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add(strsql);
  result:=true;
  adoquery1.Open;
 if adoquery1.Eof and adoquery1.Bof then begin
  showmessage('该班级在所填的学期还没开设任何课程');
  result:=false;
 exit;
  end;
 listbox1.Clear;
  pgb.Max :=ADOQuery1.FieldCount;
   pgb.Min:=0;
   pgb.Step:=1;
   pgb.StepIt;
   stb.Panels[0].Text :='导出班级课程列表';
 // listbox1.Items.BeginUpdate ;
   while not adoquery1.Eof do
  begin
    listbox1.Items.Add(adoquery1.FieldValues['ckcb2_kc']);
    //kcstrs.Add(adoquery1.FieldValues['ckcb2_kc']);
  adoquery1.Next;
  end;
  //listbox1.Items:=kcstrs;
 // listbox1.Items.EndUpdate;
  finally
 adoquery1.Close;
end;
end;

procedure TFmbbgl.getXB() ;
begin
try
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('select * from txbb order by cxbb_xbbh');
  adoquery1.Open;
   ComboBox1.Clear;
   ComboBox1.Items.Add('所有系别');
   while not adoquery1.Eof do
  begin
    //dbcxblist.Items.Add(adoquery1.FieldValues['cxbb_bbm']);
    ComboBox1.Items.Add(adoquery1.FieldValues['cxbb_bbm']);
  adoquery1.Next;
  end;
  ComboBox1.ItemIndex:=0;
finally
 adoquery1.Close;


end;
end;
 PROCEDURE TFmbbgl.getBj();
  var
  strsql:string;
begin
combobox2.Clear;
combobox2.Items.Add('所有班级');
 if combobox1.ItemIndex=0 then
 strsql:='select * from tbjb'
 else
 strsql:='select * from tbjb where cbjb_xb='''+ trim(ComboBox1.Text) + '''order by cbjb_bjbh';
try
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add(strsql);
  adoquery1.Open;

   while not adoquery1.Eof do
  begin
    ComboBox2.Items.Add(adoquery1.FieldValues['cbjb_bjm']);
  adoquery1.Next;
  end;
  combobox2.ItemIndex := 0;
finally
 adoquery1.Close;
end;
end;
procedure TFmbbgl.FormCreate(Sender: TObject);
begin
ord:='ccjb_xh';
getxb();
getBj();
pgb.Parent:=Stb;
pgb.Top:=2;
pgb.Left:=stb.Panels[0].Width ;
pgb.Height :=stb.Height-2;
pgb.Width:=stb.Panels[1].Width ;
//setConn();
stb.Panels[0].Text :='当前没有生成报表数据';
//xhs:=TStrings.Create;
end;

procedure TFmbbgl.ComboBox1Change(Sender: TObject);
begin
getbj();
end;

procedure TFmbbgl.spb1Click(Sender: TObject);

begin
 adotable1.Close;
if not getkc() then exit;
createtab();
insertxh();
insertcj();
adotable1.TableName :='ttmp';
adotable1.Open;
spb2.Enabled:=true;
spb3.Enabled:=true;
spb4.Enabled:=true;
spb5.Enabled:=true;
spb6.Enabled:=true;
spb7.Enabled:=true;
 pgb.Max :=0;
   pgb.Min:=0;

   stb.Panels[0].Text :='成功导出打印数据';
end;
procedure TFmbbgl.insertcj();
var
n,k:integer;
strxq,strcj,strkc,strsql,strxh:string;
begin
strxq:=edit1.Text;
k:=0;
//for n:=0 to listbox1.Items.Count-1 do begin
  //strkc:=trim(listbox1.Items[n]);
for k:=0 to listbox2.Items.Count -1 do begin
   strxh:=trim(listbox2.Items[k]);
 strsql:='select * from tcjb where ccjb_xq='''+strxq+
         '''  and ccjb_xh='''+strxh+'''';
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add(strsql);
  adoquery1.Open;
  pgb.Max :=ADOQuery1.FieldCount;
   pgb.Min:=0;
   pgb.Step:=1;
   pgb.StepIt;
   stb.Panels[0].Text :='开始导出学生成绩';
  while not adoquery1.Eof do
  begin
  strkc:=adoquery1.FieldValues ['ccjb_kc'];
   strcj:=adoquery1.FieldValues['ccjb_cj'];
   strsql:='update ttmp set '+strkc+'='+strcj+' where 学号='''+strxh+'''' ;
   adocommand1.CommandText :=strsql;
   adocommand1.Execute;
  adoquery1.Next;
  end;
end;
end;

procedure TFmbbgl.insertxh();
var
strxq,strsql,strxh:string;
begin
listbox2.Clear;
 strxq:=edit1.Text;
 strsql:='select ccjb_xh from tcjb where ccjb_xq='''+strxq+''' and ccjb_kc=''综合评测'' order by '+ord;
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add(strsql);
  adoquery1.Open;
  pgb.Max :=ADOQuery1.FieldCount;
   pgb.Min:=0;
   pgb.Step:=1;
   pgb.StepIt;
   stb.Panels[0].Text :='正在创建该班级学生列表';
  while not adoquery1.Eof do
  begin
   strxh:=adoquery1.FieldValues['ccjb_xh'];
   strsql:='insert into ttmp(学号) values('''+strxh+''')';
   listbox2.Items.Add(strxh);
   adocommand1.CommandText :=strsql;
   adocommand1.Execute;
  adoquery1.Next;
  end;
end;
procedure TFmbbgl.createtab();
var
strcrt:string;
begin
   stb.Panels[0].Text :='开始创建临时表';

strcrt:='drop table ttmp';
adocommand1.CommandText :=strcrt;
adocommand1.Execute;
strcrt:='CREATE TABLE ttmp (';
strcrt:=strcrt+ setFields();
strcrt:=strcrt+')';
//showmessage(strcrt);
adocommand1.CommandText :=strcrt;
adocommand1.Execute;
stb.Panels[0].Text :='临时表创建完毕';
end;
function tfmbbgl.setFields():string;
var
strfileds:string;
strfi:string;
i:integer;
begin
 if listbox1.Items.Count < 1 then exit;
 strfi:='';
 strfileds:='学号 text(20)';
   pgb.Max :=listbox1.Items.Count;
   pgb.Min:=0;
   pgb.Step:=1;
   pgb.StepIt;
 for i:=0 to listbox1.Items.Count-1 do begin
 strfi:=listbox1.Items[i];
 strfileds:=strfileds+','+strfi+' text(10)'
 end;
 result:=strfileds;
 end;
procedure TFmbbgl.spb3Click(Sender: TObject);
begin
SReport1.SRep_Print;
end;

procedure TFmbbgl.spb2Click(Sender: TObject);
begin
SReport1.SRep_Setting ;
end;



procedure TFmbbgl.spb4Click(Sender: TObject);
begin
SReport1.SRep_Preview;
end;

procedure TFmbbgl.FormClose(Sender: TObject; var Action: TCloseAction);
begin
adotable1.Close;
spb2.Enabled:=false;
spb3.Enabled:=false;
spb3.Enabled:=false;
spb5.Enabled:=false;
spb6.Enabled:=false;
spb7.Enabled:=false;
stb.Panels[0].Text :='当前没有生成报表数据';
end;

procedure TFmbbgl.rt2Click(Sender: TObject);
begin
if rt2.Checked then
ord:='ccjb_xh'
else
ord:='ccjb_cj desc' ;
end;

procedure TFmbbgl.RadioButton1Click(Sender: TObject);
begin
if RadioButton1.Checked then
ord:='ccjb_cj desc'
else
ord:='ccjb_xh' ;
end;

procedure TFmbbgl.spb5Click(Sender: TObject);
begin
SReport1.SRep_PrintToExeclSelect;
end;

procedure TFmbbgl.spb6Click(Sender: TObject);
begin
SReport1.SRep_PrintToTxtSelect;
end;

procedure TFmbbgl.spb7Click(Sender: TObject);
begin
SReport1.SRep_PrintToHtmlSelect;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -