Symptom
When querying the report for these two values GroupAreaFormat.EnableKeepTogether & GroupAreaFormat.EnableSuppress the CR for VS .NET SDK always returns false.
Environment
Crystal Reports for Visual Studio
Reproducing the Issue
Code to get values:
btnReportObjects.Text = "";
flcnt = 0;
foreach (CrystalDecisions.ReportAppServer.DataDefModel.Group resultField in rptClientDoc.DataDefController.DataDefinition.Groups)
{
textBox1 = resultField.ConditionField.FormulaForm.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText(" 'End' \n");
++flcnt;
btnCount.Text = flcnt.ToString();
CrystalDecisions.CrystalReports.Engine.Areas areas = rpt.ReportDefinition.Areas;
foreach (CrystalDecisions.CrystalReports.Engine.Area area in areas)
{
if (area.Kind == AreaSectionKind.GroupHeader)
{
CrystalDecisions.CrystalReports.Engine.GroupAreaFormat groupAreaFormat;
groupAreaFormat = (CrystalDecisions.CrystalReports.Engine.GroupAreaFormat)area.AreaFormat;
textBox1 = "EnableRepeatGroupHeader: " + groupAreaFormat.EnableRepeatGroupHeader.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnableNewPageAfter: " + groupAreaFormat.EnableNewPageAfter.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnableHideForDrillDown: " + groupAreaFormat.EnableHideForDrillDown.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnableKeepGroupTogether: " + groupAreaFormat.EnableKeepGroupTogether.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnableKeepTogether: " + groupAreaFormat.EnableKeepTogether.ToString(); // always returns false
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnableNewPageBefore: " + groupAreaFormat.EnableNewPageBefore.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnablePrintAtBottomOfPage: " + groupAreaFormat.EnablePrintAtBottomOfPage.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnableRepeatGroupHeader: " + groupAreaFormat.EnableRepeatGroupHeader.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnableResetPageNumberAfter: " + groupAreaFormat.EnableResetPageNumberAfter.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "EnableSuppress: " + groupAreaFormat.EnableSuppress.ToString(); // always returns false
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n\n");
CrystalDecisions.ReportAppServer.ReportDefModel.Area oldGHArea = (CrystalDecisions.ReportAppServer.ReportDefModel.Area)rptClientDoc.ReportDefController.ReportDefinition.get_GroupHeaderArea(0);
CrystalDecisions.ReportAppServer.ReportDefModel.ISCRGroupAreaFormat grpAreaFormat = (CrystalDecisions.ReportAppServer.ReportDefModel.ISCRGroupAreaFormat)oldGHArea.Format;
textBox1 = "KeepGroupTogether: " + grpAreaFormat.EnableKeepGroupTogether.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "VisibleGroupNumberPerPage: " + grpAreaFormat.VisibleGroupNumberPerPage.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n");
textBox1 = "RepeatGroupHeader: " + grpAreaFormat.EnableRepeatGroupHeader.ToString();
btnReportObjects.Text += textBox1;
btnReportObjects.AppendText("\n 'End' \n");
textBox1 = "";
...
}
Resolution
This is by design. To get the corelation between the Area and Section use code to evaluate the Group Section ID:
foreach (CrystalDecisions.ReportAppServer.ReportDefModel.Section crSect in CrArea.Sections)
{
int sectionCodeArea = (crSect.SectionCode / 1000) % 1000; // Area
int sectionCodeSection = (crSect.SectionCode % 1000); // zero based Section
int sectionCodeGroup = (((crSect.SectionCode) / 25) % 40); // group section
int sectionCodeGroupNo = (((crSect.SectionCode) % 25)); // group area
You can then determine the Group Section these properties belong to.
Keywords
CR for VS, .NET, GroupAreaFormat.EnableKeepTogether, GroupAreaFormat.EnableSuppress , KBA , BI-DEV-NET , BI Software Development Kits (SDKs) - .NET or Other , Problem