Print Page | Close Window

HOWTO: Multi row (-line) header?

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Report Control
Forum Description: Topics Related to Codejock Report Control
URL: http://forum.codejock.com/forum_posts.asp?TID=19218
Printed Date: 05 May 2024 at 3:54am
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: HOWTO: Multi row (-line) header?
Posted By: mgampi
Subject: HOWTO: Multi row (-line) header?
Date Posted: 23 November 2011 at 12:42pm
Hi;

Is it possible to create a multi row header in report control as shown in this screenshot?



I don't want to use header rows collection, because I want the resize/move/order columns functionality of the default report header.
Do I have to create my own header control????

TIA


-------------
Martin

Product: Xtreme Toolkit v 19.0.0, new Projects v 19.1.0
Platform: Windows 10 v 1909 (64bit)
Language: VC++ 2017



Replies:
Posted By: ABuenger
Date Posted: 23 November 2011 at 11:44pm
Hello Martin,

this is currently not supported, but I already have it on my todo list.

Andre



-------------
Codejock support


Posted By: mgampi
Date Posted: 24 November 2011 at 5:12am
When finished? An estimate, please!

-------------
Martin

Product: Xtreme Toolkit v 19.0.0, new Projects v 19.1.0
Platform: Windows 10 v 1909 (64bit)
Language: VC++ 2017


Posted By: mgampi
Date Posted: 19 April 2012 at 10:46am
Any news on this issue?
When will it be available?


-------------
Martin

Product: Xtreme Toolkit v 19.0.0, new Projects v 19.1.0
Platform: Windows 10 v 1909 (64bit)
Language: VC++ 2017


Posted By: olebed
Date Posted: 18 December 2014 at 4:52am
Hello Martin,

You can use CXTPReportControl::m_pSectionHeader  with merged cells   as multiline header. For example see  ReportSample   -> menu -> "REPORT CONTROL" -> "Control test" -> "Merge test"

Change CMergeView::OnCreate  for code below

toolkitpro\Samples\ReportControl\ReportSample\MergeView.cpp  
int CMergeView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CXTPReportView::OnCreate(lpCreateStruct) == -1)
return -1;

CXTPReportControl& wndReport = GetReportCtrl();

wndReport.GetPaintManager()->SetGridStyle(TRUE, xtpReportGridSolid);
wndReport.ShowGroupBy(FALSE);
wndReport.ShowHeaderRows(TRUE);

int nColumnCount = 7;
int nHeaderCount = 2;
int nRecordCount = 10;
int nColumn;
int nRecord;

CXTPReportRecord *pRecord = NULL;

for (nColumn=0; nColumn<nColumnCount; nColumn++)
{
CXTPReportColumn *pColumn = new CXTPReportColumn(nColumn, _T(""), 90, TRUE);
pColumn = wndReport.AddColumn(pColumn);
}

// Add header records
for (nRecord=0; nRecord<nHeaderCount; nRecord++)
{
pRecord = wndReport.GetHeaderRecords()->Add(new CXTPReportRecord());
for (nColumn=0; nColumn<nColumnCount; nColumn++)
{
CXTPReportRecordItemText *pItem = new CXTPReportRecordItemText();
pItem->SetBackgroundColor(RGB(223,227,232));
pItem->SetAlignment(xtpColumnTextCenter|xtpColumnTextVCenter);
pRecord->AddItem(pItem);
}
}

// Create multiline header
wndReport.HeaderRowsAllowSort(FALSE);
wndReport.HeaderRowsAllowGroup(FALSE);
wndReport.HeaderRowsAllowAccess(FALSE);

pRecord = wndReport.GetHeaderRecords()->GetAt(0);
pRecord->GetItem(0)->SetCaption(_T("1"));
pRecord->GetItem(3)->SetCaption(_T("Vehicle Id"));
pRecord->GetItem(5)->SetCaption(_T("Last multiline column header"));

pRecord = wndReport.GetHeaderRecords()->GetAt(1);
pRecord->GetItem(0)->SetCaption(_T("First"));
pRecord->GetItem(1)->SetCaption(_T("Second"));
pRecord->GetItem(2)->SetCaption(_T("Third"));
pRecord->GetItem(3)->SetCaption(_T("Fourth"));
pRecord->GetItem(4)->SetCaption(_T("Fifth"));

#if _XTPLIB_VERSION_PREFIX >= 1511
wndReport.GetHeaderRecords()->MergeItems(CXTPReportRecordItemRange(0,2,0,0));
wndReport.GetHeaderRecords()->MergeItems(CXTPReportRecordItemRange(3,4,0,0));
wndReport.GetHeaderRecords()->MergeItems(CXTPReportRecordItemRange(5,6,0,1));
#endif

// Add records
for (nRecord=0; nRecord<nRecordCount; nRecord++)
{
pRecord = wndReport.AddRecord(new CXTPReportRecord());
for (nColumn=0; nColumn<nColumnCount; nColumn++)
{
CString sText;
sText.Format(_T("Row %d, %d"), nRecord, nColumn);

CXTPReportRecordItemText *pItem = new CXTPReportRecordItemText(sText);
pRecord->AddItem(pItem);
}
}

wndReport.Populate();
wndReport.SetFocus();

return 0;
}
 


Posted By: mgampi
Date Posted: 18 December 2014 at 4:56am
Thanks;

I'll give it a try...
But as I remember header records are not the same as the report header. So am I the no longer possible to resize columns when I  hide the original report header?


-------------
Martin

Product: Xtreme Toolkit v 19.0.0, new Projects v 19.1.0
Platform: Windows 10 v 1909 (64bit)
Language: VC++ 2017


Posted By: olebed
Date Posted: 18 December 2014 at 7:58am

Originally posted by mgampi mgampi wrote:

But as I remember header records are not the same as the report header. So am I the no longer possible to resize columns when I  hide the original report header?
Yes, you are right. But it is so close to desirable appearance.







Posted By: mgampi
Date Posted: 18 December 2014 at 8:00am
In this case it's not usable for me!


-------------
Martin

Product: Xtreme Toolkit v 19.0.0, new Projects v 19.1.0
Platform: Windows 10 v 1909 (64bit)
Language: VC++ 2017



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net