?? frmmain.pas
字號:
unit frmmain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Menus, ComCtrls, ExtCtrls;
type
Tmainfrm = class(TForm)
MainMenu1: TMainMenu;
da1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
DBGrid1: TDBGrid;
Starbtn: TButton;
ListView1: TListView;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
addbtn: TButton;
subbtb: TButton;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
StatusBar1: TStatusBar;
N8: TMenuItem;
N9: TMenuItem;
Timer1: TTimer;
procedure FormShow(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure StarbtnClick(Sender: TObject);
procedure ListView1Click(Sender: TObject);
procedure addbtnClick(Sender: TObject);
procedure subbtbClick(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
mainfrm: Tmainfrm;
implementation
uses
denglu, dmunit, DB, Math,frmadd, shujuku;
{$R *.dfm}
procedure Tmainfrm.FormShow(Sender: TObject);
var
str1:String;
i:Integer;
begin
frmdenglu := tfrmdenglu.Create(self);
frmdenglu.ShowModal;
frmdenglu.Free ;
/////////////-------------初始化窗口
StatusBar1.Panels[1].Text:=dm.opname;
StatusBar1.Panels[3].Text:=TimeToStr(Now);
StatusBar1.Panels[5].Text:=DateToStr(now);
dm.ADOQuery1.SQL.Clear;
dm.ADOQuery1.SQL.Add('select kemu1,kemu2,kemu3,kemu4,kemu5 from users where username='+QuotedStr(trim(dm.opzhanghao)));
dm.ADOQuery1.Open;
// 讀出此操作員所教科目
for i:=1 to 5 do
if dm.ADOQuery1.FieldByName('kemu'+inttostr(i)).AsString<>'' then
begin
str1:= dm.ADOQuery1.FieldByName('kemu'+inttostr(i)).AsString;
ComboBox1.Items.Add(str1);
end;
end;
procedure Tmainfrm.ComboBox1Change(Sender: TObject);
var /////讀出選中科目中包含的班級
i:Integer;
str1,str2:string;
begin
ComboBox2.Items.Clear;
dm.ADOQuery1.SQL.Clear;
dm.ADOQuery1.SQL.Add('select * from StuInfo where '+trim(ComboBox1.text)+'>=0');
dm.ADOQuery1.Open;
for i:=0 to dm.ADOQuery1.RecordCount-1 do
//if dm.ADOQuery1.FieldByName(trim(ComboBox1.text)).AsInteger>=0 then
begin
str1:= dm.ADOQuery1.FieldByName('class').AsString;
if str2<>str1 then
ComboBox2.Items.Add(str1);
str2:=str1;
dm.ADOQuery1.Next;
end;
end;
procedure Tmainfrm.StarbtnClick(Sender: TObject);
var
i,j,k,t,h,q:Integer;
strsql:string;
begin
k:=0;
q:=0;
try
begin
ListView1.Clear;
if ComboBox3.Text='全部' then
begin
dm.ADOQuery1.SQL.Clear;
strsql:='select StuNO,StuName,'+trim(ComboBox1.text)+' from StuInfo where '+trim(ComboBox1.text)+'>=0 and class='+QuotedStr(trim(ComboBox2.text));
dm.ADOQuery1.SQL.Add(strsql);
dm.ADOQuery1.Open;
for i:=0 to dm.ADOQuery1.RecordCount-1 do
begin
with ListView1.Items.Add do
begin
Caption:=dm.ADOQuery1.FieldByName('stuno').AsString;
SubItems.Add(dm.ADOQuery1.FieldByName('stuname').AsString);
SubItems.Add(dm.ADOQuery1.FieldByName(trim(ComboBox1.text)).AsString);
dm.ADOQuery1.Next;
end;
end;
end
else //隨即產生被點學生
begin
dm.ADOQuery1.SQL.Clear;
strsql:='select StuNO,StuName,'+trim(ComboBox1.text)+' from StuInfo where '+trim(ComboBox1.text)+'>=0 and class='+QuotedStr(trim(ComboBox2.text));
dm.ADOQuery1.SQL.Add(strsql);
dm.ADOQuery1.Open;
//如果選擇點名數大于總人數,則點名數等于ALL
if dm.ADOQuery1.RecordCount< strtoint(ComboBox3.text) then
begin
t:= dm.ADOQuery1.RecordCount;
ShowMessage('選擇點名人數已經大于總人數');
end
else
t:= strtoint(ComboBox3.text);
// for k:=0 to t-1 do
while k<t do
begin
Randomize;
j:=RandomRange(1,dm.ADOQuery1.RecordCount);
for i:=0 to j do
begin
dm.ADOQuery1.Next;
if dm.ADOQuery1.Eof then
dm.ADOQuery1.First;
end;
// with ListView1.Items.Add do
// begin
if k=0 then
begin
k:=k+1;
with ListView1.Items.Add do
begin
Caption:=dm.ADOQuery1.FieldByName('stuno').AsString;
SubItems.Add(dm.ADOQuery1.FieldByName('stuname').AsString);
SubItems.Add(dm.ADOQuery1.FieldByName(trim(ComboBox1.text)).AsString);
end;
end
else
begin
for h:=0 to ListView1.Items.Count-1 do
begin
if ListView1.Items[h].Caption =dm.ADOQuery1.FieldByName('stuno').AsString then
begin
//k:=k-1 ;
//t:=t-1;
//Continue
q:=0;
break;
// exit
end
else
begin
q:=1;
//k:=k+1;
//Caption:=dm.ADOQuery1.FieldByName('stuno').AsString;
//SubItems.Add(dm.ADOQuery1.FieldByName('stuname').AsString);
// SubItems.Add(dm.ADOQuery1.FieldByName(trim(ComboBox1.text)).AsString);
end;
end;
//初始化 ListView1
if q=1 then
// begin
// with ListView1.Items.Add do
begin
k:=k+1;
with ListView1.Items.Add do
begin
Caption:=dm.ADOQuery1.FieldByName('stuno').AsString;
SubItems.Add(dm.ADOQuery1.FieldByName('stuname').AsString);
SubItems.Add(dm.ADOQuery1.FieldByName(trim(ComboBox1.text)).AsString);
end;
end;
end;
end;
//DBGrid1.SelectedRows.Delete;
// DBGrid1.Columns[0].FieldName:=dm.ADOQuery1.FieldByName('stuno').AsString;
// DBGrid1.Columns[1].FieldName:=dm.ADOQuery1.FieldByName('stuname').AsString;
end;
end;
except
ShowMessage('請確認已選擇完整信息');
end;
end;
procedure Tmainfrm.ListView1Click(Sender: TObject);
begin
edit1.Text:=ListView1.Selected.Caption;
edit2.Text:=ListView1.Selected.SubItems.Strings[0];
edit3.Text:=ListView1.Selected.SubItems.Strings[1];
end;
procedure Tmainfrm.addbtnClick(Sender: TObject);
begin //曠課記錄加1
dm.ADOTable1.Close;
dm.ADOTable1.TableName:='StuInfo';
if not dm.AdoTable1.Active then dm.AdoTable1.Open ;
if dm.adotable1.Locate('stuNO',ListView1.Selected.Caption,[loCaseInsensitive]) then
begin
dm.ADOTable1.Edit;
dm.adotable1.FieldByName(trim(ComboBox1.text)).Value := inttostr(strtoint(ListView1.Selected.SubItems.Strings[1])+1) ;
dm.ADOTable1.Post;
Edit3.Text:=inttostr(strtoint(Edit3.Text)+1);
dm.ADOQuery1.Requery;
ListView1.Selected.SubItems.Strings[1]:=Edit3.Text;
end
else
//ShowMessage('No match record to update!!');
end;
procedure Tmainfrm.subbtbClick(Sender: TObject);
begin //曠課記錄減1
dm.ADOTable1.Close;
dm.ADOTable1.TableName:='StuInfo';
if not dm.AdoTable1.Active then dm.AdoTable1.Open ;
if dm.adotable1.Locate('stuNO',ListView1.Selected.Caption,[loCaseInsensitive]) then
begin
if strtoint(ListView1.Selected.SubItems.Strings[1])>0 then
begin
dm.ADOTable1.Edit;
dm.adotable1.FieldByName(trim(ComboBox1.text)).Value := inttostr(strtoint(ListView1.Selected.SubItems.Strings[1])-1) ;
dm.ADOTable1.Post;
Edit3.Text:=inttostr(strtoint(Edit3.Text)-1);
dm.ADOQuery1.Requery;
ListView1.Selected.SubItems.Strings[1]:=Edit3.Text;
end else
ShowMessage('該生沒有曠課記錄!!')
end
else
//ShowMessage('No match record to update!!');
end;
procedure Tmainfrm.N6Click(Sender: TObject);
begin
frmaddjilu := tfrmaddjilu.Create(application);
frmaddjilu.Show;
end;
procedure Tmainfrm.N7Click(Sender: TObject);
begin
frmaddjilu := tfrmaddjilu.Create(application);
frmaddjilu.Show;
end;
procedure Tmainfrm.N9Click(Sender: TObject);
begin
form1 := tform1.Create(application);
form1.Show;
end;
procedure Tmainfrm.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[3].Text:=TimeToStr(Now);
StatusBar1.Panels[5].Text:=DateToStr(now);
end;
procedure Tmainfrm.N4Click(Sender: TObject);
begin
if Application.MessageBox('您要退出程序嗎?','提示',MB_OKCANCEL+MB_ICONQUESTION)=mrOK then
Application.Terminate;
end;
procedure Tmainfrm.ListView1ColumnClick(Sender: TObject;
Column: TListColumn);
begin
try
except
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -