Как установить две таблицы в источнике данных в Crystal Report

У меня проблема в Crystal Report, где мне нужно распечатать в Crystal Report, где значения берутся из трех таблиц:

1-Teacher_details 2-MasterTeacherDetails 3-MasterTeacherSpecimenDetails

Итак, для этого я использовал таблицу данных, в которой есть все необходимые поля. В кристаллическом отчете в разделе заголовка отчета есть значения learn_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 имеет a, b, c, а MasterTeacherSpecimenDetails имеет d, e, f, g, h

Поэтому, когда я запускаю его с данными, он показывает мне 5 строк ввода, а строки MasterTeacherDetails повторяются 5 раз, например:

введите здесь описание изображения

Скорее он должен отображать:

введите здесь описание изображения

Я не могу использовать подотчет для отображения раздела сведений об образце и основной отчет для отображения раздела сведений об учителе.

Так что, пожалуйста, помогите, и, пожалуйста, постарайтесь быть наименее техническим, поскольку я еще не очень эффективен в C # .net.


person Abhishek    schedule 18.02.2016    source источник
comment
Похоже, проблема со ссылками .. проверьте ссылки   -  person Siva    schedule 18.02.2016


Ответы (2)


Из того, что я собрал, читая ваш вопрос и комментарии, похоже, что вы хотели бы получить резюме, а затем также иметь списки образцов на отдельных страницах для каждого учителя, чтобы вы могли разделить отчет и дать каждому их список.

Кроме того, похоже, что вы хотите сделать это только с одним запросом SQL, то есть с одной таблицей команд.

Я бы начал с группировки по учителям для обоих разделов отчета.

В разделе подробных сведений об образце вы можете скрыть верхний и нижний колонтитулы группы. Используйте настройки разбиения по страницам экспертов группы, чтобы создать новую страницу после каждой группы учителей, чтобы каждый учитель переходил на разные страницы для распределения разделов отчета. Кроме того, вы, вероятно, захотите, чтобы номера страниц перезагружались после этой группы. Я не думаю, что вы можете сделать это с помощью группового эксперта; вам, вероятно, потребуется сделать это через специалиста по разделам в настройках подкачки нижнего колонтитула группы.

Для раздела сведений об учителе также используйте группировку по учителю, чтобы отобразить «сведения об учителе» в верхнем или нижнем колонтитуле группы, а затем подавите раздел сведений с помощью эксперта по разделам. Это избавит вас от множества строк. Я бы поместил сведения об учителе в подотчет в разделе заголовка отчета и использовал эксперт раздела, чтобы создать новую страницу после раздела заголовка отчета. Это похоже на специальную первую полосу.

person Jim Lutz    schedule 18.02.2016
comment
Спасибо за ответ. Я использовал подотчеты. Сэр, я хочу показать подробную информацию об учителях в разделе «Сведения об учителе» и отправить копию экземпляра конкретному учителю в приведенном ниже разделе («Сведения об образце») с помощью одного запроса Sql. Если хотите, то покажу изображение этой проблемы на бумаге. - person Abhishek; 19.02.2016
comment
Мне кажется, вы говорите, что вам нужен сводный список в начале, а затем список образцов, которые вы можете разделить для каждого учителя? - person Jim Lutz; 19.02.2016
comment
Я изменил свой ответ. - person Jim Lutz; 19.02.2016

Пожалуйста, используйте вместо этого DataSet

DataSet dsReport = новый DataSet ();

dsReport.Tables.Add (dataTable1);

dsReport.Tables.Add (dataTable2);

yourReport.SetDataSource (dsReport)

person NishantMittal    schedule 18.04.2016