2016-02-18 40 views
2

我在水晶报表的问题,即在,我需要打印的水晶报表,其中值来自三个表:如何设置两个表中数据源的Crystal Report

1 teach_details 2 MasterTeacherDetails 3 MasterTeacherSpecimenDetails

它拥有所有必要的字段所以,为了这个,我已经使用的数据表。在水晶报表,报表页眉节具有teach_details值,对细节部分MasterTeacherDetails然后MasterTeacherSpecimenDetails,为了这个,我有查询为:现在

Select teach_details.IdentityCode,IdentityName,dbo.fun_UniIdToUniName(UniId) as UniversityName,teach_details.Address+', '+dbo.fun_CityIdToCityName(teach_details.StateID, teach_details.CityID)+', '+dbo.fun_StateIdToStateName(teach_details.StateID)+', '+teach_details.PinCode as IdentityAddress, dbo.fun_GradeIdToGradeName(teach_details.Grade) as Grade, case when teach_details.TypeOfIdentity='College' then dbo.fun_StrIdToStrName(teach_details.Streams) else case when teach_details.TypeOfIdentity='Coaching' then dbo.fun_ExamIdToExamName(teach_details.Exam) else dbo.fun_StanderdIdToStanderdName(teach_details.Standerd) end end as Strm_Exam_Standard, TeacherName+'/'+MasterTeacherDetails.TeacherCode as TeacherName, case when MasterTeacherDetails.TypeOfIdentity='College' then dbo.fun_StrIdToStrName(MasterTeacherDetails.Stream) else case when MasterTeacherDetails.TypeOfIdentity='Coaching' then dbo.fun_ExamIdToExamName(MasterTeacherDetails.Exam) else dbo.fun_StanderdIdToStanderdName(MasterTeacherDetails.Standerd) end end as TeacherStr_Exm_Stnrd, case when SameAddress='True' then teach_details.Address+', '+dbo.fun_CityIdToCityName(teach_details.StateID, teach_details.CityID)+', '+dbo.fun_StateIdToStateName(teach_details.StateID)+', '+teach_details.PinCode else MasterTeacherDetails.Address+', '+dbo.fun_CityIdToCityName(MasterTeacherDetails.StateID,MasterTeacherDetails.CityID)+', '+dbo.fun_StateIdToStateName(MasterTeacherDetails.StateID)+', '+MasterTeacherDetails.PinCode end as TeacherAddress, MasterTeacherDetails.Mobile as TeacherMobileNo,MasterTeacherDetails.EmailID as TeacherEmailID,Case MasterTeacherDetails.DOB when '01/01/1900' then '' else Convert(varchar(10),MasterTeacherDetails.DOB,103) end as DOB,MasterTeacherDetails.Remark ,BookCode,BookCode as BookName,BookCode as AuthorName,DispatchThrough as Mode,Qty from teach_details inner join MasterTeacherDetails on teach_details.IdentityCode=MasterTeacherDetails.IdentityCode inner Join MasterTeacherSpecimenDetails on MasterTeacherDetails.TeacherCode=MasterTeacherSpecimenDetails.TeacherCode where (teach_details.TypeOfIdentity ='College' and (teach_details.CityID = 'GHAZIA')) order by IdentityName 

,这里的问题是,MasterTeacherDetails和MasterTeacherSpecimenDetails有不同的行数,假设 MasterTeacherDetails具有,b,c和MasterTeacherSpecimenDetails具有d,E,F,G,H

因此,当我与数据运行它显示我5行条目和MasterTeacherDetails行自身重复5次,如:

enter image description here

相反,它应该显示:

enter image description here

我不能使用子报告显示样品细节部分和主报告显示教师节。

所以,请帮忙,请尝试,因为我不是很有效,在C#.NET尚待最没有技术。

+0

看起来像linking..check问题链接 – Siva

回答

0

从我所收集通过阅读你的问题和意见,好像你想一个总结,然后也有在不同页面标本的房源针对每个老师,这样你可以单独的报告,并给他们每人其上市。

此外,它似乎想要只有一个SQL查询来做到这一点,这意味着一个指令表。

我会先从报告的两个部分的老师分组开始。

对于标本详细信息部分,可以隐藏组页眉和页脚。使用小组专家分页设置在每个教师组之后创建一个新页面,以让每位教师在不同的页面上分发报告的各个部分。此外,您可能希望在该组之后重新启动页码。我不认为你可以通过小组专家做到这一点;您可能需要通过组页脚分页设置的专家来完成此操作。

对于教师节,还使用分组由教师以显示在该组的页眉或页脚的“教师细节”,然后使用部分专家抑制节。这将消除你的多行。我会将教师详细信息放入报告标题部分的子报告中,并使用部分专家在报告标题部分之后创建一个新页面。这就像一个专门的头版。

+0

感谢您的回复 我使用的子报告。 主席先生,我希望通过使用单个Sql查询来显示教师细节部分中的教师细节,并将样本副本发送到以下(样本详细信息)部分中的特定教师演示。 如果你想,然后我在纸上显示这个问题的表示 – Abhishek

+0

听起来你是说你想在开始时列出一个总结列表,然后想要一个你可以为每个老师分开的标本清单? –

+0

我改变了我的答案。 –

0

请使用DataSet代替

DataSet dsReport = new DataSet();

dsReport.Tables.Add(dataTable1);

dsReport.Tables。加入(dataTable2);

yourReport.SetDataSource(dsReport)

相关问题