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

📄 main.pas

📁 delphi编的排课管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
                    ready_pk:=ready_pk-2;
                    break;
                  end;
              end;
            end;
         end;
       end;//end-41 // 排完本课程在本周的按排;
       //修改ready标志;
       t_edit.close;
       t_edit.Filtered :=false;
       t_edit.Filter :='lsh='+lsh;
       t_edit.Filtered :=true;
       t_edit.Open;
       t_edit.Edit ;
       t_edit['ready']:=ready_pk;
       t_edit.Post ;
       t_edit.Close; //修改完毕;
       query1.Next ; //开始排下一个课程在本周的安排;
     end;  //end-34;
     kc[1]:=a1[1];
     kc[2]:=a1[2];
     kc[3]:=a6[1];
     kc[4]:=a7[1];
     kc[5]:=a2[1];
     kc[6]:=a2[2];
     kc[7]:=a6[2];
     kc[8]:=a7[2];
     kc[9]:=a3[1];
     kc[10]:=a3[2];
     kc[11]:=a6[3];
     kc[12]:=a7[3];
     kc[13]:=a4[1];
     kc[14]:=a4[2];
     kc[15]:=a6[4];
     kc[16]:=a7[4];
     kc[17]:=a5[1];
     kc[18]:=a5[2];
     kc[19]:=a6[5];
     kc[20]:=a7[5];
     //进行一周内地点老师的查找;
     for j:=1 to 20 do
     begin
       if (kc[j]<>0) and (kc[j]<>99) then
       begin
         t_edit.close;
         t_edit.Filtered :=false;
         t_edit.Filter :='code='+inttostr(kc[j])+' and class='+class_name;

         t_edit.Filtered :=true;
         t_edit.Open;
         adr[j]:=t_edit['room_code'];
         tec[j]:=t_edit['tech_code'];
       end else begin  adr[j]:=0; tec[j]:=0;end;
     end;
     // temp.TableName :=classname;
      //排完一周,将本周的排课数据入库;
      temp.close;
     temp.Open;
     temp.Last;
     temp.Append;
     temp['kind']:='课程';
     temp['1']:=a1[1];
     temp['2']:=a1[2];
     temp['3']:=a6[1];
     temp['4']:=a7[1];
     temp['5']:=a2[1];
     temp['6']:=a2[2];
     temp['7']:=a6[2];
     temp['8']:=a7[2];
     temp['9']:=a3[1];
     temp['10']:=a3[2];
     temp['11']:=a6[3];
     temp['12']:=a7[3];
     temp['13']:=a4[1];
     temp['14']:=a4[2];
     temp['15']:=a6[4];
     temp['16']:=a7[4];
     temp['17']:=a5[1];
     temp['18']:=a5[2];
     temp['19']:=a6[5];
     temp['20']:=a7[5];
     temp.Post ;
     temp.Close;
     //进行一周地点的输入

     temp.Open;
     temp.Last ;
     temp.Append;
     temp['kind']:='地点';
     temp['1']:=adr[1];
     temp['2']:=adr[2];
     temp['3']:=adr[3];
     temp['4']:=adr[4];
     temp['5']:=adr[5];
     temp['6']:=adr[6];
     temp['7']:=adr[7];
     temp['8']:=adr[8];
     temp['9']:=adr[9];
     temp['10']:=adr[10];
     temp['11']:=adr[11];
     temp['12']:=adr[12];
     temp['13']:=adr[13];
     temp['14']:=adr[14];
     temp['15']:=adr[15];
     temp['16']:=adr[16];
     temp['17']:=adr[17];
     temp['18']:=adr[18];
     temp['19']:=adr[19];
     temp['20']:=adr[20];
     temp.Post ;
     temp.Close;
     //输入老师信息;
     temp.Open;
     temp.Last ;
     temp.Append;
     temp['kind']:='老师';
     temp['1']:=tec[1];
     temp['2']:=tec[2];
     temp['3']:=tec[3];
     temp['4']:=tec[4];
     temp['5']:=tec[5];
     temp['6']:=tec[6];
     temp['7']:=tec[7];
     temp['8']:=tec[8];
     temp['9']:=tec[9];
     temp['10']:=tec[10];
     temp['11']:=tec[11];
     temp['12']:=tec[12];
     temp['13']:=tec[13];
     temp['14']:=tec[14];
     temp['15']:=tec[15];
     temp['16']:=tec[16];
     temp['17']:=tec[17];
     temp['18']:=tec[18];
     temp['19']:=tec[19];
     temp['20']:=tec[20];
     temp.Post ;
     temp.Close;
     t_date.Next ;//跳到下一周的放假信息
     t_date.Next ;
     pb.StepIt ;
    end; //end-2

    //将已经排课的班级入库-->already_class.db
    have_pk.close;
    have_pk.Open ;
    have_pk.Last ;
    have_pk.Append;
    have_pk['code']:=strtoint(classcode);
    have_pk.Post ;
    have_pk.Close;
    //开始排下一个班级;
    tb_class.Next;
    t_edit.Close;
   end;

  sb.Panels[0].Text :='排课完毕';
  f_main.Refresh ;

  //开始把数据存入:pkXX.db表里;
  tb_class.close;
  tb_class.Open;
  tb_class.First ;

  pb.Max :=tb_class.RecordCount ;
  pb.Step :=1;
  pb.Show;
  while not tb_class.Eof do
  begin //1-开始进行班级排课;
   pb.StepIt ;

   class_name:=tb_class['name'];
   sb.Panels[0].Text :='正在存储'+class_name+'的课表';
   f_main.Refresh ;
   classcode:=inttostr(tb_class['code']);
   temp2.Close;
   temp.Close;
   temp2.TableName:='';
   temp2.TableName :='pk'+classcode+'.db';
   temp.TableName :='';
   temp.TableName :='kc'+classcode+'.db';
   temp.Open;
   temp.First  ;
   temp2.Close;
   temp2.EmptyTable ;
   temp2.Filter :='';
   temp2.Filtered:=false;
   temp2.Open;

   while not temp.Eof do
   begin
     //找课程;

     temp2.Append ;
     for i:=1 to 20 do
     begin
       ii:=inttostr(i);
       if temp[ii]=0 then
       begin
         temp2[ii]:=null;
         continue;
       end ;
       if temp[ii]=99 then
       begin
         temp2[ii]:='放假';
         continue;
       end;
       //如果不是空节0也不是放假99
       query1.Close;
       query1.SQL.Clear ;
       query1.SQL.Add('select * from kc_base where code=:code');
       query1.ParamByName('code').AsInteger :=temp[ii];
       query1.Open;
       temp2[ii]:=query1.FieldValues['name'];

     end;
     temp2['kind']:='课程';
     temp2.Post ;
     //找地点;
     temp2.Close;
     temp2.Open;
     temp2.Last ;
     temp2.Last ;
     temp.Next ;
     temp2.Append ;
     for i:=1 to 20 do
     begin
       ii:=inttostr(i);

       if temp[ii]=0 then
       begin
         temp2[ii]:=null;
         continue;
       end ;
       query1.Close;
       query1.SQL.Clear ;
       query1.SQL.Add('select * from room_base where code=:code');
       query1.ParamByName('code').AsInteger :=temp[ii];
       query1.Open;
       temp2[ii]:=query1.FieldValues['name'];
       end;

       temp2['kind']:='地点';
       temp2.Post ;
       temp2.Close;
       //找老师;
       temp2.Open;
       temp2.Last ;
       temp.Next ;
       temp2.Append ;
     for i:=1 to 20 do
     begin
       ii:=inttostr(i);
       if temp[ii]=0 then
       begin
         temp2[ii]:=null;
         continue;
       end;
       query1.Close;
       query1.SQL.Clear ;
       query1.SQL.Add('select * from tech_base where code=:code');
       query1.ParamByName('code').AsInteger :=temp[ii];
       query1.Open;
       temp2[ii]:=query1.FieldValues['name'];
     end;
     temp2['kind']:='老师';
     temp2.Post ;
     temp.Next ;
   end ;   //排完一个班;
   //将日期导入课程表里;
   temp2.Close;
      temp2.Filter :='';
   temp2.Filtered:=false;
   temp2.Open;
   temp2.First ;
   t_date.Open;
   t_date.First ;
   while not t_date.Eof do
   begin
   temp2.Edit ;
   temp2['week']:=inttostr(t_date['week']);
   temp2['m']:=inttostr(t_date['m']);
   temp2['d1']:=inttostr(t_date['d1']);
   temp2['d2']:=inttostr(t_date['d2']);
   temp2['d3']:=inttostr(t_date['d3']);
   temp2['d4']:=inttostr(t_date['d4']);
   temp2['d5']:=inttostr(t_date['d5']);
   temp2.Post ;

   temp2.Next ;  //课程表下移;
   temp2.Edit ;
   temp2['m']:='地';
   temp2['d1']:='点';
   temp2.Post ;
   temp2.Next ;
   temp2.Next ;
   t_date.Next ;
   t_date.Next ;
   end;

   tb_class.Next ;
   pb.StepIt ;
  end;
showmessage('排课完毕!');
sb.Panels[0].Text :='所有班级排课完毕';
f_main.Refresh ;


end;
end;

procedure Tf_main.SpeedButton1Click(Sender: TObject);
begin
f_look.show;
end;

procedure Tf_main.N3Click(Sender: TObject);
begin
f_edit_pass.show;
end;

procedure Tf_main.N13Click(Sender: TObject);
begin
f_dlll.Show ;
end;

procedure Tf_main.N19Click(Sender: TObject);
begin
shellexecute(handle,nil,pchar('mailto:nwn31@163.net'),nil,nil,SW_SHOWNORMAL);
end;

procedure Tf_main.N2Click(Sender: TObject);
begin
PrintDialog1.Execute ;

end;

procedure Tf_main.N11Click(Sender: TObject);
begin
f_look.show;
end;

procedure Tf_main.N15Click(Sender: TObject);
begin
f_base.show;
end;

procedure Tf_main.N17Click(Sender: TObject);
begin
f_apply.show;
end;

procedure Tf_main.N4Click(Sender: TObject);
begin
f_set_tj.show;
end;

procedure Tf_main.ToolButton3Click(Sender: TObject);
begin
opd1.Execute ;
end;

procedure Tf_main.opd1CanClose(Sender: TObject;
  var CanClose: Boolean);
begin
d.Picture.LoadFromFile(opd1.FileName ); 
end;

procedure Tf_main.N20Click(Sender: TObject);
begin
f_wrong.show;
end;

procedure Tf_main.SpeedButton5Click(Sender: TObject);
begin
f_base.show;
end;

procedure Tf_main.N14Click(Sender: TObject);
begin
f_add_user.show;
end;

procedure Tf_main.N12Click(Sender: TObject);
begin
abort.show;
end;

procedure Tf_main.N9Click(Sender: TObject);
//begin
//ShellExecute(application.handle,'open','e:\paike\help.chm','','',sw_show);
//;
//end;
var path:string;
begin
    try
    path:=extractfilepath(application.ExeName)+'\help.chm';
    ShellExecute(Handle, 'open', pchar(path), nil, nil, SW_SHOW);
    except
    end;

end;

end.


⌨️ 快捷键说明

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