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

📄 unit5.~pas

📁 学校短信息系统 采用华域科技的SzgmtSms 通讯模块
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit5;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids,DateUtils,ShellAPI;

type
  Tdaily = class(TForm)
    Label1: TLabel;
    ComboBox1: TComboBox;
    ADOTable1: TADOTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    ComboBox2: TComboBox;
    Label4: TLabel;
    Edit2: TEdit;
    Memo1: TMemo;
    ADOConnection1: TADOConnection;
    Label5: TLabel;
    Edit3: TEdit;
    Label6: TLabel;
    Edit4: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    Edit5: TEdit;
    Label9: TLabel;
    Edit6: TEdit;
    ADOQuery1: TADOQuery;
    Button1: TButton;
    Memo2: TMemo;
    procedure FormShow(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  daily: Tdaily;

implementation

{$R *.dfm}

procedure Tdaily.FormShow(Sender: TObject);
var
num:integer;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select distinct grade from class_info';
adoquery1.Open;
//showmessage('while begin');
while not adoquery1.Eof do
begin
combobox1.Items.Add(adoquery1.fieldbyname('grade').AsString) ;
adoquery1.Next;
//showmessage('ring!');
end;
//showmessage('out while');
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select distinct class from class_info';
adoquery1.Open;
while not adoquery1.Eof do
begin
combobox2.Items.Add(adoquery1.fieldbyname('class').AsString) ;
adoquery1.Next;
end;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count (*) as num from student_info';
adoquery1.Open;
num:=adoquery1.fieldbyname('num').AsInteger;
edit5.Text:=inttostr(num);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count (*) as num from student_absent_status';
adoquery1.Open;
num:=adoquery1.fieldbyname('num').AsInteger;
edit6.Text:=inttostr(num);
end;

procedure Tdaily.ComboBox1Change(Sender: TObject);
var
num:integer;
grade:string;
begin
num:=0;
grade:=combobox1.Text;
//showmessage(grade);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count (*) as num from student_info where grade='+quotedstr(grade);
adoquery1.Open;
num:=adoquery1.fieldbyname('num').AsInteger;
edit1.Text:=inttostr(num);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count (*) as num from student_absent_status where grade='+quotedstr(grade);
adoquery1.Open;
num:=adoquery1.fieldbyname('num').AsInteger;
edit2.Text:=inttostr(num);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select name from student_absent_status where grade='+quotedstr(grade);
adoquery1.Open;
while not adoquery1.Eof do
begin
memo1.Clear;
memo1.Lines.Add(adoquery1.fieldbyname('name').AsString);
adoquery1.Next;
end;
end;

procedure Tdaily.ComboBox2Change(Sender: TObject);
var
num:integer;
grade:string;
begin
num:=0;
grade:=combobox2.Text;
//showmessage(grade);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count (*) as num from student_info where class='+quotedstr(grade);
adoquery1.Open;
num:=adoquery1.fieldbyname('num').AsInteger;
edit3.Text:=inttostr(num);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count (*) as num from student_absent_status where class='+quotedstr(grade);
adoquery1.Open;
num:=adoquery1.fieldbyname('num').AsInteger;
edit4.Text:=inttostr(num);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select name from student_absent_status where class='+quotedstr(grade);
adoquery1.Open;
while not adoquery1.Eof do
begin
memo1.Clear;
memo1.Lines.Add(adoquery1.fieldbyname('name').AsString);
adoquery1.Next;
end;
end;

procedure Tdaily.Button1Click(Sender: TObject);
type
student_num=array[1..12] of integer;
student_info=array[1..200] of string;
grade_name=array[1..12] of string;
//TValueRelationship = -1..1;
var
i:integer;
grade_num:integer;
school_yd,school_sd,school_cd,school_wd:integer;
grade:grade_name;
yd,sd,cd,wd:student_num;
cd_student,wd_student:student_info;
t1,zc_in,zc_out,am_in,am_out,pm_in,pm_out,ws_in,ws_out:ttime;
t1_name:string;
html:string;
dt:string;
compare1,compare2,compare3,compare4,compare5:integer;
htmlfile:textfile;
//test1,test2:longint;
//teststr1,teststr2:string;
file_path:pchar;
begin
//---------------------initialise---------------------

t1:=time;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from schedule';
adoquery1.Open;
zc_in:=adoquery1.fieldbyname('zc_in').AsDateTime;
zc_out:=adoquery1.fieldbyname('zc_out').AsDateTime;
am_in:=adoquery1.fieldbyname('am_in').AsDateTime;
am_out:=adoquery1.fieldbyname('am_out').AsDateTime;
pm_in:=adoquery1.fieldbyname('pm_in').AsDateTime;
pm_out:=adoquery1.fieldbyname('pm_out').AsDateTime;
ws_in:=adoquery1.fieldbyname('ws_in').AsDateTime;
ws_out:=adoquery1.fieldbyname('ws_out').AsDateTime;
//test1:=$ffbc;
//test2:=$fff3;
//teststr1:=inttostr(test1);
//teststr2:=inttostr(test2);
//compare1:=strtoint(teststr1)-strtoint(teststr2);
//compare2:=-2345;
compare1:=longint(SecondOfTheDay(t1))-longint(SecondOfTheDay(strtotime('00:00:00')));
compare2:=longint(SecondOfTheDay(t1))-longint(SecondOfTheDay(zc_out));// CompareTime(t1,zc_out);
compare3:=longint(SecondOfTheDay(t1))-longint(SecondOfTheDay(am_out));// CompareTime(t1,am_out);
compare4:=longint(SecondOfTheDay(t1))-longint(SecondOfTheDay(pm_out));// CompareTime(t1,pm_out);
compare5:=longint(SecondOfTheDay(t1))-longint(SecondOfTheDay(ws_out));// CompareTime(t1,ws_out);
if (compare1>=0) and (compare2<0) then t1_name:='zc';
if (compare2>=0) and (compare3<0) then t1_name:='am';
if (compare3>=0) and (compare4<0) then t1_name:='pm';
if (compare4>=0) and (compare5<0) then t1_name:='ws';
showmessage(t1_name);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select distinct grade from class_info';// select distinct grade from class_info';
showmessage('sql1');
adoquery1.Open;
showmessage('while begin!');
i:=1;
while not adoquery1.Eof do
begin
showmessage('ring!');
grade[i]:=adoquery1.fieldbyname('grade').AsString;
i:=i+1;
adoquery1.Next;
end;
grade_num:=i-1;
showmessage('grade_num='+inttostr(grade_num));
//----------------------compute yd---------------------
i:=1;
while i<=grade_num do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
showmessage(grade[i]);
adoquery1.SQL.Text:='select sum(student_num)as num from class_info where grade='+quotedstr(grade[i]);
adoquery1.Open;
yd[i]:=adoquery1.fieldbyname('num').AsInteger;
i:=i+1;
end;
//-----------------------------compute sd,cd,wd-----------------
showmessage(t1_name);
if t1_name='zc' then
begin
//------------------------compute sd-------------------------
showmessage('---compute zc.sd---');
i:=1;
while i<=grade_num do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count(*)as num from student_info where grade=:grade_name and card_id in(select card_id from daily where time>=:t1 and time<:t2)';
adoquery1.Parameters.ParamByName('grade_name').Value:=quotedstr(grade[i]);
adoquery1.Parameters.ParamByName('t1').Value:=datetostr(date)+' 0:00:01';
adoquery1.Parameters.ParamByName('t2').Value:=datetostr(date)+' '+timetostr(zc_in);
adoquery1.Open;
showmessage('open');
sd[i]:=adoquery1.fieldbyname('num').AsInteger;
i:=i+1;
end;
//------------------------------compute cd-------------------------
showmessage('---compute zc.cd---');
i:=1;
while i<=grade_num do
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select name,class from student_info where grade=:grade_name and card_id in(select card_id from daily where time>=:t1 and time<:t2)';
adoquery1.Parameters.ParamByName('grade_name').Value:=quotedstr(grade[i]);
adoquery1.Parameters.ParamByName('t1').Value:=datetostr(date)+' '+timetostr(zc_in);
adoquery1.Parameters.ParamByName('t2').Value:=datetostr(date)+' '+timetostr(zc_out);
adoquery1.Open;

⌨️ 快捷键说明

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