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

📄 uprintzwb.pas

📁 学生信息管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        Exit;
      end;
      XLApp.WorkBooks.Open(SysPath+'excel\考试编排.xls');
      //写入数据
      if QueryData.Active then QueryData.Close;
      QueryData.SQL.Text := 'select * from STU_info where 班级='''+ComboBox1.Items[i]
             +''' and 退学否=''F'' order by 试室名称,姓名,流水号';
      QueryData.Open;
      QueryData.First;

      sheet := XLApp.WorkBooks[1].WorkSheets['Sheet96'];
      sheet.name := ComboBox1.Items[i]+'班考试座位编排表';
      sheet.Cells[1,1].value := ComboBox1.Items[i]+'班考试编排表';
      axh := 1;
      m := 1;
      for k := 1 to 3 do begin
          for j := 3 to 35 do begin
            if QueryData.eof then Break;
            sheet.Cells[j,m].value := axh;
            sheet.Cells[j,m+1].value := QueryData.FieldByName('试室名称').AsString;
            sheet.Cells[j,m+2].value := QueryData.FieldByName('座位号').AsString;
            sheet.Cells[j,m+3].value := QueryData.FieldByName('姓名').AsString;
            QueryData.Next;
            if QueryData.eof then Break;
            inc(axh);
          end;
          Inc(m,4);
      end;

      XLApp.Visible := True;
      Sheet.Printpreview;
      XLApp.ActiveWorkBook.Saved := True;
      XLApp.Quit;
      VarClear(XLApp);
    end;

  end   else begin
      try
        XLApp := CreateOleObject('Excel.Application');
      except
        Screen.Cursor := crDefault;
        Exit;
      end;
      XLApp.WorkBooks.Open(SysPath+'excel\考试编排.xls');
      //写入数据
      if QueryData.Active then QueryData.Close;
      QueryData.SQL.Text := 'select * from STU_info where 班级='''+ComboBox1.text
             +''' and 退学否=''F'' order by 试室名称,姓名,流水号';
      QueryData.Open;
      QueryData.First;

      sheet := XLApp.WorkBooks[1].WorkSheets['Sheet96'];
      sheet.name := ComboBox1.text+'班考试座位编排表';
      sheet.Cells[1,1].value := ComboBox1.text+'班考试编排表';
      axh := 1;
      m := 1;
      for k := 1 to 3 do begin
          for j := 3 to 35 do begin
            if QueryData.eof then Break;
            sheet.Cells[j,m].value := axh;
            sheet.Cells[j,m+1].value := QueryData.FieldByName('试室名称').AsString;
            sheet.Cells[j,m+2].value := QueryData.FieldByName('座位号').AsString;
            sheet.Cells[j,m+3].value := QueryData.FieldByName('姓名').AsString;
            QueryData.Next;
            if QueryData.eof then Break;
            inc(axh);
          end;
          Inc(m,4);
      end;

      try
        XLApp.Visible := True;
        Sheet.Printpreview;
        XLApp.ActiveWorkBook.Saved := True;
      finally
        XLApp.Quit;
        VarClear(XLApp);
      end;
  end;

      QueryData.Free;

end;

procedure TFPrintzwb.A_findExecute(Sender: TObject);
var
  str: string;
begin
  if ComboBox3.ItemIndex>0 then str := ' and 班级='''+ComboBox3.Text+''' ';
  str := 'select * from STU_INFO where 姓名 like ''%'+Edit1.Text+'%'''+str;
  if ADOQuery.Active then ADOQuery.Close;
  ADOQuery.SQL.Text := str;
  ADOQUery.Open;
end;

procedure TFPrintzwb.A_previewExecute(Sender: TObject);
begin
  if not ADOQuery.IsEmpty then  begin
    setsize;
    Form2.QuickRep1.Preview;
  end;
end;

procedure TFPrintzwb.Button6Click(Sender: TObject);
begin
  if ComboBox3.ItemIndex <0 then  exit;
  if ComboBox3.ItemIndex=0 then begin
    with ADOQuery do try
      if Active then Close;
      sql.Text := 'select * from STU_info where  退学否=''F''  and (not(试室名称 is null)) order by 班级,试室名称,姓名,流水号';
      Open;
    except
    end;
    exit;
  end;
  with ADOQuery do try
    if Active then Close;
    sql.Text := 'select * from STU_info where  退学否=''F''  and 班级='''+ComboBox3.text+''' order by 试室名称,姓名,流水号';
    Open;
  except
  end;
end;

procedure TFPrintzwb.Button5Click(Sender: TObject);
var
  i: integer;
begin
  if ADOQuery.IsEmpty then exit;
  if ComboBox3.ItemIndex < 0 then exit;
  if ComboBox3.Items.Count<2 then exit;
  if Ask('真的要打印准考证吗?','提示',MB_OKCL)<>1 then exit;
  ADOQuery.DisableControls;
  if ComboBox3.ItemIndex=0 then begin
    for i := 1 to ComboBox3.Items.Count - 1 do begin
      if ADOQuery.Active then ADOQuery.Close;
      ADOQuery.SQL.Text := 'select * from STU_info where 班级='''+ComboBox3.Items[i]
             +''' and 退学否=''F'' order by 试室名称,姓名,流水号';
      ADOQuery.Open;
      setsize;
      Form2.QuickRep1.Preview;
    end;

  end   else try
      if ADOQuery.Active then ADOQuery.Close;
      ADOQuery.SQL.Text := 'select * from STU_info where 班级='''+ComboBox3.text
             +''' and 退学否=''F'' order by 试室名称,姓名,流水号';
      ADOQuery.Open;
      setsize;
      Form2.QuickRep1.Preview;
  except
  end;
  ADOQuery.EnableControls;
end;

procedure TFPrintzwb.setsize;
begin
    with Form2 do begin
      Case length(g_Sys.School) of
         8:   begin
              QR1.Left := 90;  QR1.Top := 32;   QR2.Left := 102;  QR2.Top := 12;
              QR3.Left := 125;  QR3.Top := 13;  QR4.Left := 137;  QR4.Top := 29;
              QR5.Enabled := False; QR6.Enabled := False;  QR7.Enabled := False;
              QR1.Caption := Copy(g_sys.School, 1,2);
              QR2.Caption := Copy(g_sys.School, 3,2);
              QR3.Caption := Copy(g_sys.School, 5,2);
              QR4.Caption := Copy(g_sys.School, 7,2);
              end;
         10:  begin
              QR1.Left := 83;  QR1.Top := 35;   QR2.Left := 95;  QR2.Top := 20;
              QR3.Left := 113;  QR3.Top := 9;  QR4.Left := 113;  QR4.Top := 19;
              QR5.Left := 143;  QR5.Top := 37; QR6.Enabled := False;  QR7.Enabled := False;
              QR1.Caption := Copy(g_sys.School, 1,2);
              QR2.Caption := Copy(g_sys.School, 3,2);
              QR3.Caption := Copy(g_sys.School, 5,2);
              QR4.Caption := Copy(g_sys.School, 7,2);
              QR5.Caption := Copy(g_sys.School, 9,2);
              end;
         12:  begin
              QR1.Left := 83;  QR1.Top := 37;   QR2.Left := 93;  QR2.Top := 19;
              QR3.Left := 105;  QR3.Top := 10;  QR4.Left := 125;  QR4.Top := 11;
              QR5.Left := 141;  QR5.Top := 21;
              QR6.Left := 143;  QR6.Top := 40;  QR7.Enabled := False;
              QR1.Caption := Copy(g_sys.School, 1,2);
              QR2.Caption := Copy(g_sys.School, 3,2);
              QR3.Caption := Copy(g_sys.School, 5,2);
              QR4.Caption := Copy(g_sys.School, 7,2);
              QR5.Caption := Copy(g_sys.School, 9,2);
              QR6.Caption := Copy(g_sys.School, 11,2);
              end;
         6: begin
              QR1.Left := 88;  QR1.Top := 32;   QR2.Left := 113;  QR2.Top := 11;
              QR3.Left := 132;  QR3.Top := 33;  QR4.Enabled := False;
              QR5.Enabled := False; QR6.Enabled := False;  QR7.Enabled := False;
              QR1.Caption := Copy(g_sys.School, 1,2);
              QR2.Caption := Copy(g_sys.School, 3,2);
              QR3.Caption := Copy(g_sys.School, 5,2);
             end;
         14: begin
              QR1.Caption := Copy(g_sys.School, 1,2);
              QR2.Caption := Copy(g_sys.School, 3,2);
              QR3.Caption := Copy(g_sys.School, 5,2);
              QR4.Caption := Copy(g_sys.School, 7,2);
              QR5.Caption := Copy(g_sys.School, 9,2);
              QR6.Caption := Copy(g_sys.School, 11,2);
              QR7.Caption := Copy(g_sys.School, 13,2);              
             end;
      end;
    end;
end;

procedure TFPrintzwb.ComboBox2Change(Sender: TObject);
begin
  if ComboBox2.ItemIndex<0 then exit;
  if ComboBox2.ItemIndex=0 then  Button1.Caption :='打  印'
  else  Button1.Caption := '打印预览'; 
end;

procedure TFPrintzwb.ComboBox1Change(Sender: TObject);
begin
  if ComboBox1.ItemIndex<0 then exit;
  if ComboBox1.ItemIndex=0 then Button2.Caption :='打  印'
  else Button2.Caption := '打印预览';
end;

procedure TFPrintzwb.Button7Click(Sender: TObject);
var
  i, j, k, m, axh: integer;
  XLApp: Variant;
  Sheet: Variant;
  QueryData: TADOQuery;
begin
  if ADOQuery.IsEmpty then exit;
  if ComboBox4.ItemIndex < 0 then exit;
  if ComboBox4.Items.Count<2 then exit;
  if Ask('真的要打印班级名册校对信息吗?','提示',MB_OKCL)<>1 then exit;
  if not VarIsEmpty(XLApp) then
  begin
       XLApp.DisplayAlerts := False;
       XLApp.Quit;
       VarClear(XLApp);
  end;


  QueryData := TADOQUery.Create(self);
  QueryData.Connection := FMain.ADOConnection;

  if ComboBox4.ItemIndex=0 then begin
    for i := 1 to ComboBox4.Items.Count - 1 do begin
      try
        XLApp := CreateOleObject('Excel.Application');
      except
        Screen.Cursor := crDefault;
        Exit;
      end;
      XLApp.WorkBooks.Open(SysPath+'excel\名册校对.xls');
      //写入数据
      if QueryData.Active then QueryData.Close;
      QueryData.SQL.Text := 'select * from STU_info where 班级='''+ComboBox4.Items[i]
             +''' and 退学否=''F'' order by 姓名,流水号';
      QueryData.Open;
      QueryData.First;

      sheet := XLApp.WorkBooks[1].WorkSheets['Sheet96'];
      sheet.name := ComboBox4.Items[i]+'班名册校对';
      sheet.Cells[1,1].value := ComboBox4.Items[i]+'班名册校对表';
      axh := 1;
      m := 1;
      for k := 1 to 4 do begin
          for j := 3 to 27 do begin
            if QueryData.eof then Break;
            sheet.Cells[j,m].value := axh;
            sheet.Cells[j,m+1].value := QueryData.FieldByName('姓名').AsString;
            QueryData.Next;
            if QueryData.eof then Break;
            inc(axh);
          end;
          Inc(m,3);
      end;
      XLApp.Visible := False;
      Sheet.Printout;
      XLApp.ActiveWorkBook.Saved := True;
      XLApp.Quit;
      VarClear(XLApp);
    end;

  end   else begin   //
      try
        XLApp := CreateOleObject('Excel.Application');
      except
        Screen.Cursor := crDefault;
        Exit;
      end;
      XLApp.WorkBooks.Open(SysPath+'excel\名册校对.xls');
      //写入数据
      if QueryData.Active then QueryData.Close;
      QueryData.SQL.Text := 'select * from STU_info where 班级='''+ComboBox4.text
             +''' and 退学否=''F'' order by 姓名,流水号';
      QueryData.Open;
      QueryData.First;

      sheet := XLApp.WorkBooks[1].WorkSheets['Sheet96'];
      sheet.name := ComboBox4.text+'班名册校对';
      sheet.Cells[1,1].value := ComboBox4.text+'班名册校对表';
      axh := 1;
      m := 1;
      for k := 1 to 4 do begin
          for j := 3 to 27 do begin
            if QueryData.eof then Break;
            sheet.Cells[j,m].value := axh;
            sheet.Cells[j,m+1].value := QueryData.FieldByName('姓名').AsString;
            QueryData.Next;
            if QueryData.eof then Break;
            inc(axh);
          end;
          Inc(m,3);
      end;
      try
        XLApp.Visible := True;
        Sheet.Printpreview;
        XLApp.ActiveWorkBook.Saved := True;
      finally
        XLApp.Quit;
        VarClear(XLApp);
      end;
  end;

  QueryData.Free;
end;

procedure TFPrintzwb.ComboBox4Change(Sender: TObject);
begin
  if ComboBox4.ItemIndex<0 then exit;
  if ComboBox4.ItemIndex=0 then  Button7.Caption :='打  印'
   else  Button7.Caption := '打印预览';
end;

procedure TFPrintzwb.Button8Click(Sender: TObject);
begin
  if ComboBox4.ItemIndex <0 then  exit;
  if ComboBox4.Text = '全部数据' then begin
    with ADOQuery do try
      if Active then Close;
      sql.Text := 'select * from STU_info where  退学否=''F''  and (not(试室名称 is null)) order by 班级,姓名,流水号';
      Open;
    except
    end;
    exit;
  end;
  with ADOQuery do try
    if Active then Close;
    sql.Text := 'select * from STU_info where  退学否=''F''  and 班级='''+ComboBox4.text+''' order by 姓名,流水号';
    Open;
  except
  end;
end;

procedure TFPrintzwb.Button9Click(Sender: TObject);
var
  j, k, m: integer;
  XLApp: Variant;
  Sheet: Variant;
  QueryData: TADOQuery;
begin
  if Ask('真的要打印试室汇总表信息吗?','提示',MB_OKCL)<>1 then exit;
  if not VarIsEmpty(XLApp) then
  begin
       XLApp.DisplayAlerts := False;
       XLApp.Quit;
       VarClear(XLApp);
  end;
  try
    XLApp := CreateOleObject('Excel.Application');
  except
        Screen.Cursor := crDefault;
        Exit;
  end;
  XLApp.WorkBooks.Open(SysPath+'excel\试室汇总表.xls');
      //写入数据
  QueryData := TADOQUery.Create(self);
  QueryData.Connection := FMain.ADOConnection;
  if QueryData.Active then QueryData.Close;
  QueryData.SQL.Text := 'select * from STU_ss order by ID';
  QueryData.Open;
  QueryData.First;
  sheet := XLApp.WorkBooks[1].WorkSheets['Sheet1'];
  sheet.name := '试室汇总表';
  m := 1;
  for k := 1 to 4 do begin
          for j := 1 to 12 do begin
            if QueryData.eof then Break;
            sheet.Cells[j*2+1,m].value := QueryData.FieldByName('ss').AsString;
            sheet.Cells[j*2+1,m+1].value := QueryData.FieldByName('nj1').AsString;
            sheet.Cells[j*2+2,m+1].value := QueryData.FieldByName('nj2').AsString;
            sheet.Cells[j*2+1,m+2].value := QueryData.FieldByName('rs1').AsString;
            sheet.Cells[j*2+2,m+2].value := QueryData.FieldByName('rs2').AsString;
            QueryData.Next;
            if QueryData.eof then Break;
          end;
          Inc(m,3);
  end;
  sheet.cells[27,4].value := inttostr(GetFieldVar('select sum(rs1) from STU_ss where nj1=''初一''')+GetFieldVar('select sum(rs2) from STU_ss where nj2=''初一'''));
  sheet.cells[27,10].value := inttostr(GetFieldVar('select sum(rs1) from STU_ss where nj1=''初二''')+GetFieldVar('select sum(rs2) from STU_ss where nj2=''初二'''));
  sheet.cells[28,4].value := inttostr(GetFieldVar('select sum(rs1) from STU_ss where nj1=''初三''')+GetFieldVar('select sum(rs2) from STU_ss where nj2=''初三'''));

      XLApp.Visible := True;
      Sheet.Printpreview;
      XLApp.ActiveWorkBook.Saved := True;
      XLApp.Quit;
      VarClear(XLApp);
      QueryData.Free;
end;

procedure TFPrintzwb.ComboBox3Change(Sender: TObject);
begin
  if ComboBox3.ItemIndex<0 then exit;
  if ComboBox3.ItemIndex=0 then Button5.Caption :='打  印'
  else Button5.Caption := '打印预览';
end;

end.

⌨️ 快捷键说明

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