📄 xjkprint.pas
字号:
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 + -