크리스탈 리포트의 한 번의 클릭으로 특정 클래스의 모든 학생의 마크 시트를 생성/인쇄합니다. 내가 루프에 사용크리스탈 리포트를 루프로 출력하기
다음은 보고서의 마지막 레코드/페이지를 보여줍니다.
내 코드는입니다개인 무효 btnGenerate_Click (개체 보낸 사람, EventArgs입니다 전자) {
try
{
axCrystalActiveXReportViewer1.ReportSource = null;
ReportDocument cryRpt = new ReportDocument();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables;
crConnectionInfo.ServerName = Configuration.ServerName;
crConnectionInfo.DatabaseName = Configuration.DataBaseName;
crConnectionInfo.UserID = Configuration.Server_userName;
crConnectionInfo.Password = Configuration.Server_password;
CrTables = cryRpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
for(int i=0; i<=x; i++)
{
DataSet ds_ViewTermMarkSheet = new DataSet();
Hashtable htViewTermMarkSheet = new Hashtable();
htViewTermMarkSheet.Add("@Year", txtYear.Text);
htViewTermMarkSheet.Add("@Faculty", cboFaculty.Text);
htViewTermMarkSheet.Add("@Level", cboClass.Text);
htViewTermMarkSheet.Add("@Section", cboSection.Text);
htViewTermMarkSheet.Add("@term", cboTerm.Text);
htViewTermMarkSheet.Add("@CRN",.ToString());
DbOperations _dbAccess = new DbOperations();
_dbAccess.selectStoredProcedure(ds_ViewTermMarkSheet, "spSelectExamView_Exam_TermWiseMarkSheet", htViewTermMarkSheet, "Marks");
cryRpt.SetDataSource(ds_ViewTermMarkSheet.Tables["Marks"]);
}
axCrystalActiveXReportViewer1.Refresh();
cryRpt.Close();
}
catch (Exception ex)
{
MessageBox.Show("Mark Sheet generation was not successful.\r" + ex.Message, "Error!");
}
}
이 어떻게 한 번에 여러 marksheet을 추가 할 수 있으며, 한 번에 인쇄 ??