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

📄 xjkprint.pas

📁 excel import excel importe xcel importexcel import
💻 PAS
📖 第 1 页 / 共 3 页
字号:
            ExpExcel.cells[pageRow,pageCol+3].value:='成绩' ;
            ExpExcel.cells[pageRow,pageCol+4].value:='学时' ;
            ExpExcel.cells[pageRow,pageCol+5].value:='学分' ;
            //列宽
            ExpExcel.Columns[pageCol+2].ColumnWidth := 5;
            ExpExcel.Columns[pageCol+3].ColumnWidth := 5;
            ExpExcel.Columns[pageCol+4].ColumnWidth := 4;
            ExpExcel.Columns[pageCol+5].ColumnWidth := 4;

            pageRow :=pageRow +1 ;
            if not ADOfsfs.Eof then
            begin
               //tempStr :='select a.cj_xscjd__xh,b.sys_kc__kcm,c.sys_kcxx__xxlbm,max(a.cj_xscjd__fs),max(a.cj_xscjd__xs),a.cj_xscjd__xf,a.cj_xscjd__fsfs,max(a.cj_xscjd__ksxz) from cj_xscjd a,SYS_KC b,SYS_KCXX c';
               //tempStr :=tempStr +' where a.cj_xscjd__KCH=b.SYS_KC__KCH and a.CJ_XSCJD__XXLB=c.SYS_KCXX__XXLB and a.cj_xscjd__xh='''+ADOexe.Fields[0].AsString+''' and a.CJ_XSCJD__XNXQ='''+ADOfsfs.Fields[0].AsString +''' group by a.cj_xscjd__xh,b.sys_kc__kcm,c.sys_kcxx__xxlbm,a.cj_xscjd__xf,a.cj_xscjd__fsfs';
               tempStr :='select a.cj_xscjd__xh,b.sys_kc__kcm,c.sys_kcxx__xxlbm,a.cj_xscjd__fs,a.cj_xscjd__xs,a.cj_xscjd__xf,a.cj_xscjd__fsfs,a.cj_xscjd__ksxz from cj_xscjd a,SYS_KC b,SYS_KCXX c';
               tempStr :=tempStr +' where a.cj_xscjd__KCH=b.SYS_KC__KCH and a.CJ_XSCJD__XXLB=c.SYS_KCXX__XXLB and a.cj_xscjd__xh='''+ADOexe.Fields[0].AsString+''' and a.CJ_XSCJD__XNXQ='''+ADOfsfs.Fields[0].AsString +''' ';

               QueryData(ADObk,tempStr);
               ADObk.First ;
               while not ADObk.Eof do  //学年学期中的成绩
               begin
                  isBKCX :=false;
                  //判断是否补、重
                  if (ADObk.Fields[7].AsString='01') then
                  begin
                      ExpExcel.cells[pageRow,pageCol].value:=ADObk.Fields[1].AsString;
                      isBKCX := false;
                  end
                  else if (ADObk.Fields[7].AsString='02') then
                  begin
                      ExpExcel.cells[pageRow,pageCol].value:=ADObk.Fields[1].AsString+'[补]';
                      isBKCX :=true;
                  end
                  else
                  begin
                      //pageRow :=pageRow -1;
                      ExpExcel.cells[pageRow,pageCol].value:=ADObk.Fields[1].AsString+'[重]' ;
                      isBKCX :=true;
                  end;
                  if (Length(ExpExcel.cells[pageRow,pageCol].value)>20) then
                     ExpExcel.worksheets[1].range[Chr(rCells)+IntToStr(pageRow)+':'+Chr(rCells+1)+IntToStr(pageRow)].font.size:=8;

                  ExpExcel.cells[pageRow,pageCol+2].value:=ADObk.Fields[2].AsString ;
                  //必修课
                  if (trim(ADObk.Fields[2].AsString)='必修课') then
                  begin
                      if (isBKCX=false) then
                      begin
                         bxkZXF:= bxkZXF +StrToFloat(ADObk.Fields[5].AsString);
                         bxkZXS:= bxkZXS +StrToInt(ADObk.Fields[4].AsString);
                      end;
                  end;
                  //分数方式
                  if (ADObk.Fields[6].AsString<>'0') then      //正常分数值
                  begin
                     tempStr :='select cj_dj__mc from cj_dj where cj_dj__bj='''+ADObk.Fields[6].AsString+''' and cj_dj__fs1<='''+ADObk.Fields[3].AsString +''' and cj_dj__fs2>'''+ADObk.Fields[3].AsString+'''';
                     QueryData(ADObj,tempStr);
                     //showmessage(tempStr);
                     ExpExcel.cells[pageRow,pageCol+3].value:=ADObj.Fields[0].AsString ;
                  end else     //不正常
                     ExpExcel.cells[pageRow,pageCol+3].value:=ADObk.Fields[3].AsString ;
                  //if (ADOexe.Fields[0].AsString='2001500112' and ADOfsfs.Fields[0].AsString='20011' and ADObk.Fields[1].AsString='体育') then
                   //      ShowMessage(ADObk.Fields[3].AsString);
                  ExpExcel.worksheets[1].range[Chr(rCells+3)+IntToStr(pageRow)+':'+Chr(rCells+3)+IntToStr(pageRow)].horizontalalignment:=xlHAlignCenter;
                  ExpExcel.worksheets[1].range[Chr(rCells+5)+IntToStr(pageRow)+':'+Chr(rCells+5)+IntToStr(pageRow)].horizontalalignment:=xlHAlignCenter;

                  /////////////////////////////////////合并单元格 课程/////////////////////////////////
                  ExpExcel.worksheets[1].range[Chr(rCells)+IntToStr(pageRow)+':'+Chr(rCells+1)+IntToStr(pageRow)].merge(true);
                  ExpExcel.cells[pageRow,pageCol+4].value:=ADObk.Fields[4].AsString ;
                  ExpExcel.cells[pageRow,pageCol+5].value:=ADObk.Fields[5].AsString ;
                  if (isBKCX=false) then
                  begin
                     xqZXS := xqZXS + StrToInt(ADObk.Fields[4].AsString );
                  end;
                  xqZXF := xqZXF + StrToFloat(ADObk.Fields[5].AsString);
                  pageRow :=pageRow +1;
                  ADObk.Next;
               end;               //学年学期中的成
            end;///////////////>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            ///////////////////////合并成绩单元//////////////////////////
            i := 0;
            while (pageRow+i)<xqRow do
            begin
               cellStr :=Chr(rCells)+IntToStr(pageRow+i)+':'+Chr(rCells+1)+IntToStr(pageRow+i);
               ExpExcel.worksheets[1].range[cellStr].merge(true);  //合并单元格
               i :=i +1;
            end;

            //输出学期总学时、总学分
            if not ADOfsfs.Eof then
               ExpExcel.cells[xqRow,xqCol].value:='学期学时:'+IntToStr(xqZXS) +'       学期学分' + FloatToStr(xqZXF);
            ZXS :=ZXS +xqZXS;
            ZXF :=ZXF +xqZXF;
            //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            RowXNXQ :=RowXNXQ +1;
            pageCol :=pageCol +6;
            rCells :=rCells +6;

            if (SnProgressBar2.Position<SnProgressBar2.Max) then
               SnProgressBar2.Position:=SnProgressBar2.Position+1  ;
            Application.ProcessMessages ;
            xnxq8 := xnxq8 +1;
            ADOfsfs.Next;
         end; //while not ADOexe.eof 学年学期
         //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
         ADOcj.Next ;
      end;//while not ADOcj.eof 学生学籍情况

      ExpExcel.cells[xqRow+2,1].value:='总学时:' ;
      ExpExcel.worksheets[1].range['A'+IntToStr(xqRow+2)+':'+'A'+IntToStr(xqRow+2)].horizontalalignment:=xlHAlignRight;
      ExpExcel.cells[xqRow+2,2].value:=IntToStr(ZXS) ;
      ExpExcel.worksheets[1].range['B'+IntToStr(xqRow+2)+':'+'B'+IntToStr(xqRow+2)].horizontalalignment:=xlHAlignLeft;
      ExpExcel.cells[xqRow+2,3].value:='总学分:' ;
      ExpExcel.cells[xqRow+2,4].value:=FloatToStr(ZXF) ;
      ExpExcel.worksheets[1].range['D'+IntToStr(xqRow+2)+':'+'D'+IntToStr(xqRow+2)].horizontalalignment:=xlHAlignLeft;
      ExpExcel.cells[xqRow+2,5].value:='必修课总学时:' ;
      ExpExcel.worksheets[1].range['E'+IntToStr(xqRow+2)+':'+'G'+IntToStr(xqRow+2)].merge(true);
      ExpExcel.worksheets[1].range['E'+IntToStr(xqRow+2)+':'+'G'+IntToStr(xqRow+2)].horizontalalignment:=xlHAlignRight;
      ExpExcel.cells[xqRow+2,8].value:=IntToStr(bxkZXS) ;
      ExpExcel.worksheets[1].range['H'+IntToStr(xqRow+2)+':'+'H'+IntToStr(xqRow+2)].horizontalalignment:=xlHAlignLeft;
      ExpExcel.cells[xqRow+2,9].value:='必修课总学分:' ;
      ExpExcel.worksheets[1].range['I'+IntToStr(xqRow+2)+':'+'K'+IntToStr(xqRow+2)].merge(true);
      ExpExcel.worksheets[1].range['I'+IntToStr(xqRow+2)+':'+'K'+IntToStr(xqRow+2)].horizontalalignment:=xlHAlignRight;
      ExpExcel.cells[xqRow+2,12].value:=FloatToStr(bxkZXF) ;
      ExpExcel.worksheets[1].range['L'+IntToStr(xqRow+2)+':'+'L'+IntToStr(xqRow+2)].horizontalalignment:=xlHAlignLeft;
      //ExpExcel.cells[xqRow+3,1].value:='毕业设计(论文)题目:' ;
      //ExpExcel.cells[xqRow+3,7].value:='毕业设计(论文)成绩:' ;
      ExpExcel.cells[xqRow+3,19].value:='福建工程学院' ;
      ExpExcel.cells[xqRow+4,19].value:='日期:' ;
      ExpExcel.cells[xqRow+4,20].value:=Date() ;
      ExpExcel.worksheets[1].range['T'+IntToStr(xqRow+4)+':'+'U'+IntToStr(xqRow+4)].merge(true);
      ExpExcel.worksheets[1].range['T'+IntToStr(xqRow+4)+':'+'U'+IntToStr(xqRow+4)].horizontalalignment:=xlHAlignLeft;

      if (SnProgressBar1.Position<SnProgressBar1.Max) then
         SnProgressBar1.Position:=SnProgressBar1.Position+1  ;
      Application.ProcessMessages ;

      pageRow :=pageRow + 22;  //30
      pageCount :=pageCount +1;
      ADOexe.Next ;
   end; //while not ADOexe.eof  查询班级的所有人员
   ExpExcel.Visible := true;
   ExpExcel := Unassigned;
   ExpExcel := null;
   screen.Cursor := crDefault;
end;
procedure TForm1.SnButton1Click(Sender: TObject);
begin
   ADOConn.Connected := false;
   ADOConn.ConnectionString := 'Provider=SQLOLEDB.1;Password='+SnEdit_pass.Text+
      ';Persist Security Info=True;User ID='+SnEdit_user.Text+
      ';Initial Catalog='+SnEdit_Database.Text+';Data Source='+SnEdit_Server.Text;
   try
      ADOConn.Connected := true;
   except
      ADOConn.Connected := false;
      Application.MessageBox('连接失败','提示',64);
      abort;
   end;
   ExpData;
end;
procedure TForm1.SnListBox1DblClick(Sender: TObject);
var
   bj: String ;
begin
   SnEdit1.Text :=SnListBox1.Items.Strings[SnListBox1.ItemIndex];
   bj := SnListBox1.Items.Strings[SnListBox1.ItemIndex];
   QueryData(ADQxs,'select XJ_XJK__XH,XJ_XJK__XM from XJ_XJK where XJ_XJK__BH='''+bj+'''');
   SnComboBox1.Text :='班级';
   SnEdit2.Text :=bj;

end;
//导出为Excel表
procedure TForm1.SnButton3Click(Sender: TObject);
begin
   if not ADOConn.Connected  then
   begin
      Application.MessageBox('数据库还未连接','提示',64);
      abort;
   end else
   begin
      adocl.Close;
      adocl.SQL.Clear;
      adocl.SQL.Add('update cj_xscjd set cj_xscjd__fs=0 where cj_xscjd__fs is null');
      adocl.ExecSQL;
      adocl.Close;
      adocl.SQL.Clear;
      adocl.SQL.Add('update cj_xscjd set cj_xscjd__xf=0 where cj_xscjd__xf is null');
      adocl.ExecSQL;
      adocl.Close;
      adocl.SQL.Clear;
      adocl.SQL.Add('update cj_xscjd set cj_xscjd__xs=0 where cj_xscjd__xs is null');
      adocl.ExecSQL;
      SnProgressBar1.Position :=0;
      SnProgressBar2.Position :=0;
      Application.ProcessMessages ;
      try
         if (trim((SnComboBox1.Text)) ='班级') then
            ExcelExportBJ
         else  if (trim((SnComboBox1.Text)) ='学号') then
            ExcelExport
         else  if (trim((SnComboBox1.Text)) ='姓名') then
            ExcelExport
         else
            showmessage('查询条件值出错!');
      except
         showmessage('Error');
         screen.Cursor := crDefault;
         abort;
      end;
   end;
end;

procedure TForm1.SnButton4Click(Sender: TObject);
begin
   if not ADOConn.Connected  then
   begin
      Application.MessageBox('数据库还未连接','提示',64);
      abort;
   end else
   begin
      if  (trim(SnComboBox1.text)='') or (trim(SnComboBox1.Text) ='请选择查询方式') then
          showmessage('请选择查找方式')
      else
      begin
          if Trim(SnEdit2.Text)='' then
             showmessage('请输入查询值')
          else
          begin
              if (trim(SnComboBox1.Text)='学号')  then
              begin
                 //showmessage(' 学号');
                 QueryData(ADQxs,'select XJ_XJK__XH,XJ_XJK__XM from XJ_XJK where XJ_XJK__XH='''+trim(SnEdit2.Text)+'''');
              end else if (trim(SnComboBox1.Text)='姓名')  then
              begin
                 //showmessage('姓名');
                 QueryData(ADQxs,'select XJ_XJK__XH,XJ_XJK__XM from XJ_XJK where XJ_XJK__XM='''+trim(SnEdit2.Text)+'''');
                 SnEdit2.Text := ADQxs.Fields[0].AsString;
              end else if (trim(SnComboBox1.Text)='班级')  then
              begin
                 //showmessage('班级');
                 QueryData(ADQxs,'select XJ_XJK__XH,XJ_XJK__XM from XJ_XJK where XJ_XJK__BH='''+trim(SnEdit2.Text)+'''');
              end;
          end;
      end;
   end;
end;

procedure TForm1.SnComboBox1Change(Sender: TObject);
begin
   SnEdit2.Text :='';
end;

procedure TForm1.SnButton5Click(Sender: TObject);
begin
   close();
end;

procedure TForm1.SnButton2Click(Sender: TObject);
var
   vHint:String;
begin
   vHint :='1、当记录出现一门课程重复几条时:'+#13;
   vHint := vHint + '可能是因为原先输入的成绩数据不正确,'+#13;
   vHint := vHint + '(如:同一门课程的修习类别却不一样、同一门课程的学分不一样等。)'+#13;
   vHint := vHint + '必须到学生成绩表(CJ_XSCJD)里更改成绩数据。';
   SnButton2.Hint := vHint ;
   SnButton2.ShowHint :=true;

end;

procedure TForm1.SnDBGrid1CellClick(Column: TColumn);
begin
   try
      SnEdit2.Text :=SnDBGrid1.SelectedField.Text ;
      SnComboBox1.Text :='学号';
   except
      showmessage('还没有数据!');
   end;
end;

end.

⌨️ 快捷键说明

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