Почему подотчет Crystal Reports не отображает некоторые поля в средстве просмотра

У меня есть хрустальный отчет с основным отчетом и дополнительным отчетом. Основной отчет содержит групповые разделы.

Я связал подотчет с основным отчетом, используя идентификатор. Когда я просматриваю его на вкладке предварительного просмотра, как основной, так и вспомогательный отчеты работают и отображают правильные данные.

Но когда я просматриваю его в средстве просмотра с моим приложением, данные основного отчета отображаются правильно, но некоторые поля вложенного отчета не видны. Я заметил, что когда я помещаю поле идентификатора для просмотра в подотчете, оно показывает ряд записей. но отображается только поле идентификатора, а другие поля не видны.

Я установил два набора записей для основного отчета и вспомогательного отчета. кажется, что записи возвращают данные, но подотчет их не показывает. Может ли кто-нибудь указать мне правильное направление, чтобы решить эту проблему?


person Ruwan Kumara Liyanage    schedule 18.12.2015    source источник
comment
где вы передаете поле идентификатора в подотчет? это собирается Record Selection Formula   -  person Siva    schedule 18.12.2015


Ответы (1)


Не знаете, как вы загружаете отчет в Crystal viewer, но имейте в виду, что если в вашем отчете используются вложенные отчеты, в коде, когда вы загружаете отчет, вам также необходимо установить источник данных для каждого вложенного отчета. См. Следующий неполный фрагмент кода:

//SET DATASOURCE FOR EACH SUBREPORT IN REPORT
foreach (CrystalDecisions.CrystalReports.Engine.Section section in CrystalReportSource2.ReportDocument.ReportDefinition.Sections)
{
    // In each section we need to loop through all the reporting objects
    foreach (CrystalDecisions.CrystalReports.Engine.ReportObject reportObject in section.ReportObjects)
    {
        if (reportObject.Kind == ReportObjectKind.SubreportObject)
        {
            SubreportObject subReport = (SubreportObject)reportObject;
            ReportDocument subDocument = subReport.OpenSubreport(subReport.SubreportName);

            foreach (CrystalDecisions.CrystalReports.Engine.Table table in subDocument.Database.Tables)
            {
                // Cache the logon info block
                TableLogOnInfo logOnInfo = table.LogOnInfo;

                // Set the connection
                logOnInfo.ConnectionInfo = crConnectionInfo;

                // Apply the connection to the table!
                table.ApplyLogOnInfo(logOnInfo);
            }
        }
    }
}
person Douglas Timms    schedule 18.12.2015
comment
Спасибо, Дуглас Тиммс, да, я уже использовал аналогичный цикл, который вы использовали для установки данных подотчета. Я уверен, что данные подотчета возвращаются в отчет, поскольку я вижу, что поле id печатается, если я помещаю его в отчет с правильным количеством данных. Проблема в том, что другие поля деталей подотчета не просматриваются. Кроме того, подотчет, расширяющийся для выходных записей, также работает правильно. Любые идеи? - person Ruwan Kumara Liyanage; 18.05.2016