Cognos レポートで展開や折りたたみの機能を実装する

##概要
Cognosのレポートで、以下のイメージの様に、+ - ボタンで展開や折りたたみを実装したい場合の、JavaScriptでのカスタマイズ例です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/147246/cc14be48-0a3b-7b8b-cb59-c92a369cf5b6.png)

##実装方法
Report Authoringのイメージは、こんなイメージです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/147246/4f6b6cea-e887-58d5-9ab4-186c69296ebe.png)

**HTML Item ① の内容**
+ ボタン、- ボタンをクリックした時の動作を制御する。	

```html
<span id="ExpandedTable"> </span>
<script>

// This function expands/collapses a table where the columns have +/- icons

var displayStyle = "";
var noDisplayStyle = "none";

var currentRow = 0;
var maxRowLength = 0;
var tbl;

//array with counts for each column to store how many minuses are in the column
var columnExpandCountArray; 

//array of all columns, with values: 1-has icon, 2-always visible, 0-other
var columns; 

function ExpandCollapse(el) {

var cid = el.parentNode.cellIndex;

// variable to know whether to change next columns
//  0-don't change; 1-show next columns, 2-hide next columns
var showNextColumns = 0; 
if (isPlus(el)) {
el.src = "../pat/hal/images/minus.gif";
columnExpandCountArray[cid]++;
if (columnExpandCountArray[cid] == 1) {
showNextColumns = 1;
}
} else {
el.src = "../pat/hal/images/plus.gif";
columnExpandCountArray[cid]--;
if (columnExpandCountArray[cid] == 0) {
showNextColumns = 2;
}
}
var tr = el.parentNode.parentNode; // the current row
currentRow = tr.rowIndex;

showLines(el, cid);
hideOrShowColumns(cid, showNextColumns);
}

function showColumnVisibility(k, visible) {

for ( var i = 0; i < tbl.rows.length; i++) {
var row = tbl.rows[i];
if (k >= row.cells.length) {
continue;
}

// set the cell visibility
row.cells[k].style.display = visible ? displayStyle : noDisplayStyle;
}
}

function hideOrShowColumns(cid, showNextColumns) {
if (showNextColumns == 1) {
// must show the next columns
for ( var k = cid + 1; k < maxRowLength; k++) {
if (columns[k] == 2) {
continue; // column is always visible
}
showColumnVisibility(k, true);
if (columns[k] == 1 && columnExpandCountArray[k] == 0) {
return; // no need to go to the next columns
}

}
} else {
if (showNextColumns == 2) {
// must hide the next columns
for (k = cid + 1; k < maxRowLength; k++) {
if (columns[k] == 2) {
continue; // column is always visible
}

showColumnVisibility(k, false);
}
}
}
}

function showLines(el, cind) {
var show = true; // to show lines or not

// Grab the ROW that was clicked and the TABLE that contains it
var tr = el.parentNode.parentNode; // the current row
var tbl = tr.parentNode.parentNode; // the table

if (isPlus(el)) {
show = false;
} else {
show = true;
}
while (currentRow < tbl.rows.length - 1) {
currentRow++;

var row = tbl.rows[currentRow];
var iconIndex = getIconIndexInRow(row, 0);

if (iconIndex >= 0 && iconIndex <= cind) {
row.style.display = displayStyle;
currentRow--;
return; // found the next line with icon in the same column; return
}
if (!show) {
row.style.display = noDisplayStyle;

} else {
row.style.display = displayStyle;
if (iconIndex > cind) {
var icon = row.cells[iconIndex].firstChild;
showLines(icon, iconIndex);
}
}
}
}

function isPlus(el) {
return el.src.indexOf("minus") == -1;
}

function hasIcon(cell) {
// return true if this cell has an img
if ((Number(cell.childNodes.length)) == 0) {
return false;
}
var c = cell.firstChild;
if (c != null) {
return (c.tagName == "IMG");
}
return false;
}

function getIconIndexInRow(row, startId) {
for ( var i = startId; i < row.cells.length; i++) {
if (hasIcon(row.cells[i])) {
return i;
}
}
return -1;
}

function showAll() {
for ( var i = 1; i < tbl.rows.length; i++) {
row = tbl.rows[i]; // the current row
row.style.display = displayStyle; // show the row
}
}

function StartHidden() {
 var q=document.getElementById("ExpandedTable");

 // get the table
 tbl = q.parentNode.parentNode.parentNode.parentNode;

for ( var i = 0; i < tbl.rows.length; i++) {
var row = tbl.rows[i]; // the current row

if (row.cells.length > maxRowLength) {
maxRowLength = row.cells.length;
}
}
columns = new Array(maxRowLength);
columnExpandCountArray = new Array(maxRowLength);
for ( var j = 0; j < maxRowLength; j++) {
columns[j] = 0; // 0-default not icon, not always visible
}
var firstLineWithIcon = 0;

for (i = 1; i < tbl.rows.length; i++) {
row = tbl.rows[i]; // the current row

if (hasIcon(row.cells[0])) {
// leave it visible, since it has + icon
if (firstLineWithIcon == 0) {
firstLineWithIcon = i;
}
} else {
row.style.display = noDisplayStyle; // hide the row
}
var index = getIconIndexInRow(row, 0);
if (index > -1) {
columns[index] = 1; // 1- column has icon
}
}

for (j = 0; j < maxRowLength; j++) {
columnExpandCountArray[j] = 0;
}
row = tbl.rows[firstLineWithIcon]; // the current row

for (j = 0; j < row.cells.length; j++) {
if (columns[j] != 1 && row.cells[j].childNodes.length > 0) {
columns[j] = 2; // 2- always visible
}
}

for ( var k = 1; k < maxRowLength; k++) {
if (columns[k] == 2) {
continue;
}
for ( var i1 = 0; i1 < tbl.rows.length; i1++) {
if (k >= tbl.rows[i1].cells.length) {
continue;
}

tbl.rows[i1].cells[k].style.display = noDisplayStyle; // hide the cell
}
}
}
</script>

```

**HTML Item ② の内容**
+ ボタン、- ボタンを表示。クリック時にHTML Item①のExpandCollapse()functionを呼び出す。

```html
<img onclick='ExpandCollapse(this)' src='../pat/hal/images/plus.gif' style='cursor:hand;vertical-align:middle; margin-right:2px'/>
<span onclick='ExpandCollapse(this.previousSibling)' style='cursor:hand'>
```

**HTML Item ③ の内容**
HTML Item ②のspanを閉じる。

```html
</span>
```

**HTML Item ④ の内容**
HTML Item ①のStartHidden() functionを呼び出す。

```html
<script>
StartHidden();
</script>
```

##レポートXML定義
以下のXML定義をコピーし、Report Authoringの「ツール」->「クリップボードからレポートを開く」でレポートを作成。
パッケージは「GO販売 (クエリー) 」を使用しています。

```html
<report xmlns="http://developer.cognos.com/schemas/report/12.0/" expressionLocale="en-us" ignoreFilterContext="false"><!--RSU-SPC-0093 レポート仕様は、2015 年 5 月 9 日に "http://developer.cognos.com/schemas/report/11.0/" から "http://developer.cognos.com/schemas/report/12.0/" へアップグレードされました。 5:40:21--><!--RSU-SPC-0093 レポート仕様は、2015 年 3 月 30 日に &amp;amp;amp;quot;http://developer.cognos.com/schemas/report/8.0/&amp;amp;amp;quot; から &amp;amp;amp;quot;http://developer.cognos.com/schemas/report/11.0/&amp;amp;amp;quot; へアップグレードされました。 18:1:18--><!--RSU-SPC-0093 The report specification was upgraded from &amp;amp;amp;amp;quot;http://developer.cognos.com/schemas/report/4.0/&amp;amp;amp;amp;quot; to &amp;amp;amp;amp;quot;http://developer.cognos.com/schemas/report/8.0/&amp;amp;amp;amp;quot; at 2011-12-8. 15:55:43-->																												
				<modelPath>/content/folder[@name='サンプル']/folder[@name='モデル']/package[@name='GO販売 (クエリー)']/model[@name='model']</modelPath>																								
				<queries>																								
					<query name="Query1">																							
						<source>																						
							<model/>																					
						</source>																						
						<selection><dataItem aggregate="none" name="Country" rollupAggregate="none"><expression>[Sales (query)].[Branch].[Country]</expression></dataItem><dataItem aggregate="none" name="Product line" rollupAggregate="none"><expression>[Sales (query)].[Products].[Product line]</expression></dataItem><dataItem aggregate="none" name="Product type" rollupAggregate="none"><expression>[Sales (query)].[Products].[Product type]</expression></dataItem><dataItem aggregate="total" name="Quantity"><expression>[Sales (query)].[Sales].[Quantity]</expression></dataItem><dataItem aggregate="total" name="Gross profit"><expression>[Sales (query)].[Sales].[Gross profit]</expression></dataItem></selection>																						
					<detailFilters><detailFilter postAutoAggregation="false" use="prohibited"><filterExpression>[Country]='Australia' or [Country]='Brazil'</filterExpression></detailFilter></detailFilters></query>																							
				</queries>																								
				<layouts>																								
					<layout>																							
						<reportPages>																						
							<page name="Page1"><style><defaultStyles><defaultStyle refStyle="pg"/></defaultStyles></style>																					
								<pageBody><style><defaultStyles><defaultStyle refStyle="pb"/></defaultStyles></style>																				
									<contents>																			
																												
									<table><style><defaultStyles><defaultStyle refStyle="tb"/></defaultStyles><CSS value="border-collapse:collapse;width:100%"/></style><tableRows><tableRow><tableCells><tableCell><contents><table><style><defaultStyles><defaultStyle refStyle="tb"/></defaultStyles><CSS value="border-collapse:collapse;width:100%;border-bottom:2.5pt solid green"/></style><tableRows><tableRow><tableCells><tableCell><contents><block>																			
			<contents/>																									
		<style><CSS value="width:10px;height:40px;overflow:hidden"/><generatedBackground><fill><linearGradient><gradientColor gradientColor="green"/></linearGradient></fill><border borderColor="green" cornerRadius="5pt"/></generatedBackground></style></block></contents><style><CSS value="width:20px"/></style></tableCell><tableCell><contents><textItem><dataSource><staticValue>国別製品販売実績</staticValue></dataSource></textItem></contents><style><CSS value="text-align:left"/></style></tableCell></tableCells></tableRow></tableRows></table></contents></tableCell></tableCells></tableRow><tableRow><tableCells><tableCell><contents/><style><CSS value="height:5px"/></style></tableCell></tableCells></tableRow><tableRow><tableCells><tableCell><contents><list horizontalPagination="true" name="List1" refQuery="Query1" rowsPerPage="2000">																										
																												
																												
																												
											<style>																	
												<defaultStyles>																
													<defaultStyle refStyle="ls"/>															
												</defaultStyles>																
												<CSS value="border-collapse:collapse"/>																
											</style>																	
										<listColumns><listColumn><listColumnTitle><style><defaultStyles><defaultStyle refStyle="lt"/></defaultStyles><CSS value="background-color:silver"/></style><contents><textItem><dataSource><dataItemLabel refDataItem="Country"/></dataSource></textItem></contents></listColumnTitle><listColumnBody><style><defaultStyles><defaultStyle refStyle="lc"/></defaultStyles></style><contents/></listColumnBody></listColumn><listColumn><listColumnTitle><style><defaultStyles><defaultStyle refStyle="lt"/></defaultStyles><CSS value="background-color:silver"/></style><contents><textItem><dataSource><dataItemLabel refDataItem="Product line"/></dataSource></textItem></contents></listColumnTitle><listColumnBody><style><defaultStyles><defaultStyle refStyle="lc"/></defaultStyles></style><contents/></listColumnBody></listColumn><listColumn><listColumnTitle><style><defaultStyles><defaultStyle refStyle="lt"/></defaultStyles><CSS value="background-color:silver"/></style><contents><textItem><dataSource><dataItemLabel refDataItem="Product type"/></dataSource></textItem></contents></listColumnTitle><listColumnBody><style><defaultStyles><defaultStyle refStyle="lc"/></defaultStyles></style><contents/></listColumnBody></listColumn><listColumn><listColumnTitle><style><defaultStyles><defaultStyle refStyle="lt"/></defaultStyles><CSS value="background-color:silver"/></style><contents><textItem><dataSource><dataItemLabel refDataItem="Quantity"/></dataSource></textItem></contents></listColumnTitle><listColumnBody><style><defaultStyles><defaultStyle refStyle="lm"/></defaultStyles></style><contents/></listColumnBody></listColumn><listColumn><listColumnTitle><style><defaultStyles><defaultStyle refStyle="lt"/></defaultStyles><CSS value="background-color:silver"/></style><contents><textItem><dataSource><dataItemLabel refDataItem="Gross profit"/></dataSource></textItem></contents></listColumnTitle><listColumnBody><style><defaultStyles><defaultStyle refStyle="lm"/></defaultStyles></style><contents/></listColumnBody></listColumn></listColumns><listPageHeader><listRows><listRow><rowCells><rowCell><contents><HTMLItem>																		
			<dataSource>																									
				<staticValue>&lt;span id="ExpandedTable"&gt; &lt;/span&gt;																								
&lt;script&gt;																												
																												
// This function expands/collapses a table where the columns have +/- icons																												
																												
var displayStyle = "";																												
var noDisplayStyle = "none";																												
																												
var currentRow = 0;																												
var maxRowLength = 0;																												
var tbl;																												
																												
//array with counts for each column to store how many minuses are in the column																												
var columnExpandCountArray; 																												
																												
//array of all columns, with values: 1-has icon, 2-always visible, 0-other																												
var columns; 																												
																												
function ExpandCollapse(el) {																												
																												
	var cid = el.parentNode.cellIndex;																											
																												
	// variable to know whether to change next columns																											
	//  0-don't change; 1-show next columns, 2-hide next columns																											
	var showNextColumns = 0; 																											
	if (isPlus(el)) {																											
		el.src = "../pat/hal/images/minus.gif";																										
		columnExpandCountArray[cid]++;																										
		if (columnExpandCountArray[cid] == 1) {																										
			showNextColumns = 1;																									
		}																										
	} else {																											
		el.src = "../pat/hal/images/plus.gif";																										
		columnExpandCountArray[cid]--;																										
		if (columnExpandCountArray[cid] == 0) {																										
			showNextColumns = 2;																									
		}																										
	}																											
	var tr = el.parentNode.parentNode; // the current row																											
	currentRow = tr.rowIndex;																											
																												
	showLines(el, cid);																											
	hideOrShowColumns(cid, showNextColumns);																											
}																												
																												
function showColumnVisibility(k, visible) {																												
																												
	for ( var i = 0; i &lt; tbl.rows.length; i++) {																											
		var row = tbl.rows[i];																										
		if (k &gt;= row.cells.length) {																										
			continue;																									
		}																										
																												
		// set the cell visibility																										
		row.cells[k].style.display = visible ? displayStyle : noDisplayStyle;																										
	}																											
}																												
																												
function hideOrShowColumns(cid, showNextColumns) {																												
	if (showNextColumns == 1) {																											
		// must show the next columns																										
		for ( var k = cid + 1; k &lt; maxRowLength; k++) {																										
			if (columns[k] == 2) {																									
				continue; // column is always visible																								
			}																									
			showColumnVisibility(k, true);																									
			if (columns[k] == 1 &amp;&amp; columnExpandCountArray[k] == 0) {																									
				return; // no need to go to the next columns																								
			}																									
																												
		}																										
	} else {																											
		if (showNextColumns == 2) {																										
			// must hide the next columns																									
			for (k = cid + 1; k &lt; maxRowLength; k++) {																									
				if (columns[k] == 2) {																								
					continue; // column is always visible																							
				}																								
																												
				showColumnVisibility(k, false);																								
			}																									
		}																										
	}																											
}																												
																												
function showLines(el, cind) {																												
	var show = true; // to show lines or not																											
																												
	// Grab the ROW that was clicked and the TABLE that contains it																											
	var tr = el.parentNode.parentNode; // the current row																											
	var tbl = tr.parentNode.parentNode; // the table																											
																												
	if (isPlus(el)) {																											
		show = false;																										
	} else {																											
		show = true;																										
	}																											
	while (currentRow &lt; tbl.rows.length - 1) {																											
		currentRow++;																										
																												
		var row = tbl.rows[currentRow];																										
		var iconIndex = getIconIndexInRow(row, 0);																										
																												
		if (iconIndex &gt;= 0 &amp;&amp; iconIndex &lt;= cind) {																										
			row.style.display = displayStyle;																									
			currentRow--;																									
			return; // found the next line with icon in the same column; return																									
		}																										
		if (!show) {																										
			row.style.display = noDisplayStyle;																									
																												
		} else {																										
			row.style.display = displayStyle;																									
			if (iconIndex &gt; cind) {																									
				var icon = row.cells[iconIndex].firstChild;																								
				showLines(icon, iconIndex);																								
			}																									
		}																										
	}																											
}																												
																												
function isPlus(el) {																												
	return el.src.indexOf("minus") == -1;																											
}																												
																												
function hasIcon(cell) {																												
	// return true if this cell has an img																											
	if ((Number(cell.childNodes.length)) == 0) {																											
		return false;																										
	}																											
	var c = cell.firstChild;																											
	if (c != null) {																											
		return (c.tagName == "IMG");																										
	}																											
	return false;																											
}																												
																												
function getIconIndexInRow(row, startId) {																												
	for ( var i = startId; i &lt; row.cells.length; i++) {																											
		if (hasIcon(row.cells[i])) {																										
			return i;																									
		}																										
	}																											
	return -1;																											
}																												
																												
function showAll() {																												
	for ( var i = 1; i &lt; tbl.rows.length; i++) {																											
		row = tbl.rows[i]; // the current row																										
		row.style.display = displayStyle; // show the row																										
	}																											
}																												
																												
function StartHidden() {																												
 	var q=document.getElementById("ExpandedTable");																											
																												
	 // get the table																											
	 tbl = q.parentNode.parentNode.parentNode.parentNode;																											
																												
	for ( var i = 0; i &lt; tbl.rows.length; i++) {																											
		var row = tbl.rows[i]; // the current row																										
																												
		if (row.cells.length &gt; maxRowLength) {																										
			maxRowLength = row.cells.length;																									
		}																										
	}																											
	columns = new Array(maxRowLength);																											
	columnExpandCountArray = new Array(maxRowLength);																											
	for ( var j = 0; j &lt; maxRowLength; j++) {																											
		columns[j] = 0; // 0-default not icon, not always visible																										
	}																											
	var firstLineWithIcon = 0;																											
																												
	for (i = 1; i &lt; tbl.rows.length; i++) {																											
		row = tbl.rows[i]; // the current row																										
																												
		if (hasIcon(row.cells[0])) {																										
			// leave it visible, since it has + icon																									
			if (firstLineWithIcon == 0) {																									
				firstLineWithIcon = i;																								
			}																									
		} else {																										
			row.style.display = noDisplayStyle; // hide the row																									
		}																										
		var index = getIconIndexInRow(row, 0);																										
		if (index &gt; -1) {																										
			columns[index] = 1; // 1- column has icon																									
		}																										
	}																											
																												
	for (j = 0; j &lt; maxRowLength; j++) {																											
		columnExpandCountArray[j] = 0;																										
	}																											
	row = tbl.rows[firstLineWithIcon]; // the current row																											
																												
	for (j = 0; j &lt; row.cells.length; j++) {																											
		if (columns[j] != 1 &amp;&amp; row.cells[j].childNodes.length &gt; 0) {																										
			columns[j] = 2; // 2- always visible																									
		}																										
	}																											
																												
	for ( var k = 1; k &lt; maxRowLength; k++) {																											
		if (columns[k] == 2) {																										
			continue;																									
		}																										
		for ( var i1 = 0; i1 &lt; tbl.rows.length; i1++) {																										
			if (k &gt;= tbl.rows[i1].cells.length) {																									
				continue;																								
			}																									
																												
			tbl.rows[i1].cells[k].style.display = noDisplayStyle; // hide the cell																									
		}																										
	}																											
}																												
&lt;/script&gt;</staticValue>																												
			</dataSource>																									
		</HTMLItem></contents><style><defaultStyles><defaultStyle refStyle="lh"/></defaultStyles></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="lh"/></defaultStyles></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="lh"/></defaultStyles></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="lh"/></defaultStyles></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="lh"/></defaultStyles></style></rowCell></rowCells></listRow></listRows></listPageHeader><listPageFooter><listRows><listRow><rowCells><rowCell><contents><HTMLItem>																										
			<dataSource>																									
				<staticValue>&lt;script&gt;																								
StartHidden();																												
&lt;/script&gt;</staticValue>																												
			</dataSource>																									
		</HTMLItem></contents><style><defaultStyles><defaultStyle refStyle="lf"/></defaultStyles></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="lf"/></defaultStyles></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="lf"/></defaultStyles></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="lf"/></defaultStyles></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="lf"/></defaultStyles></style></rowCell></rowCells></listRow></listRows></listPageFooter><listGroups><listGroup refDataItem="Country"><listHeader><listRows><listRow><rowCells><rowCell><contents><HTMLItem>																										
			<dataSource>																									
				<staticValue>&lt;img onclick='ExpandCollapse(this)' src='../pat/hal/images/plus.gif' style='cursor:hand;vertical-align:middle; margin-right:2px'/&gt;																								
&lt;span onclick='ExpandCollapse(this.previousSibling)' style='cursor:hand'&gt;</staticValue>																												
			</dataSource>																									
		</HTMLItem><textItem><dataSource><dataItemValue refDataItem="Country"/></dataSource></textItem><HTMLItem>																										
			<dataSource>																									
				<staticValue>&lt;/span&gt;																								
</staticValue>																												
			</dataSource>																									
		</HTMLItem></contents><style><defaultStyles><defaultStyle refStyle="oh"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="oh"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="oh"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents><textItem><dataSource><dataItemValue refDataItem="Quantity"/></dataSource></textItem></contents><style><defaultStyles><defaultStyle refStyle="oh"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents><textItem><dataSource><dataItemValue refDataItem="Gross profit"/></dataSource></textItem></contents><style><defaultStyles><defaultStyle refStyle="oh"/></defaultStyles><CSS value="background-color:white"/></style></rowCell></rowCells></listRow></listRows></listHeader></listGroup><listGroup refDataItem="Product line"><listHeader><listRows><listRow><rowCells><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents><HTMLItem>																										
			<dataSource>																									
				<staticValue>&lt;img onclick='ExpandCollapse(this)' src='../pat/hal/images/plus.gif' style='cursor:hand;vertical-align:middle; margin-right:2px'/&gt;																								
&lt;span onclick='ExpandCollapse(this.previousSibling)' style='cursor:hand'&gt;</staticValue>																												
			</dataSource>																									
		</HTMLItem><textItem><dataSource><dataItemValue refDataItem="Product line"/></dataSource></textItem><HTMLItem>																										
			<dataSource>																									
				<staticValue>&lt;/span&gt;																								
</staticValue>																												
			</dataSource>																									
		</HTMLItem></contents><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents><textItem><dataSource><dataItemValue refDataItem="Quantity"/></dataSource></textItem></contents><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents><textItem><dataSource><dataItemValue refDataItem="Gross profit"/></dataSource></textItem></contents><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell></rowCells></listRow></listRows></listHeader></listGroup><listGroup refDataItem="Product type"><listHeader><listRows><listRow><rowCells><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents/><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents><textItem><dataSource><dataItemValue refDataItem="Product type"/></dataSource></textItem></contents><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents><textItem><dataSource><dataItemValue refDataItem="Quantity"/></dataSource></textItem></contents><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell><rowCell><contents><textItem><dataSource><dataItemValue refDataItem="Gross profit"/></dataSource></textItem></contents><style><defaultStyles><defaultStyle refStyle="ih"/></defaultStyles><CSS value="background-color:white"/></style></rowCell></rowCells></listRow></listRows></listHeader></listGroup></listGroups></list></contents></tableCell></tableCells></tableRow></tableRows></table></contents>																										
								</pageBody>																				
								<pageHeader>																				
									<contents>																			
																												
									<image>																			
			<dataSource>																									
				<staticValue>../samples/images/ise.png</staticValue>																								
			</dataSource>																									
		<style><CSS value="width:1084px;height:60px"/></style></image></contents>																										
									<style>																			
										<defaultStyles>																		
											<defaultStyle refStyle="ph"/>																	
										</defaultStyles>																		
										<CSS value="padding-bottom:10px"/>																		
									</style>																			
								</pageHeader>																				
								<pageFooter>																				
									<contents>																			
										<table>																		
											<tableRows>																	
												<tableRow>																
													<tableCells>															
														<tableCell>														
															<contents>													
																<date>												
																	<style>											
																		<dataFormat>										
																			<dateFormat/>									
																		</dataFormat>										
																	</style>											
																</date>												
															</contents>													
															<style>													
																<CSS value="vertical-align:top;text-align:left;width:25%"/>												
															</style>													
														</tableCell>														
														<tableCell>														
															<contents>													
																<pageNumber/>												
															</contents>													
															<style>													
																<CSS value="vertical-align:top;text-align:center;width:50%"/>												
															</style>													
														</tableCell>														
														<tableCell>														
															<contents>													
																<time>												
																	<style>											
																		<dataFormat>										
																			<timeFormat/>									
																		</dataFormat>										
																	</style>											
																</time>												
															</contents>													
															<style>													
																<CSS value="vertical-align:top;text-align:right;width:25%"/>												
															</style>													
														</tableCell>														
													</tableCells>															
												</tableRow>																
											</tableRows>																	
											<style>																	
												<defaultStyles>																
													<defaultStyle refStyle="tb"/>															
												</defaultStyles>																
												<CSS value="border-collapse:collapse;width:100%"/>																
											</style>																	
										</table>																		
									</contents>																			
									<style>																			
										<defaultStyles>																		
											<defaultStyle refStyle="pf"/>																	
										</defaultStyles>																		
										<CSS value="padding-top:10px"/>																		
									</style>																			
								</pageFooter>																				
							</page>																					
						</reportPages>																						
					</layout>																							
				</layouts>																								
				<classStyles>																								
					<classStyle name="pd_1">																							
						<CSS value="background-color:#009933; color:#FFFFFF;"/>																						
					</classStyle>																							
					<classStyle name="pd_2">																							
						<CSS value="background-color:#FFFFFF; color:#009933;"/>																						
					</classStyle>																							
					<classStyle name="pd_3">																							
						<CSS value="background-color:#FFFFFF; color:#CC9900;"/>																						
					</classStyle>																							
					<classStyle name="pd_4">																							
						<CSS value="background-color:#FFFFFF; color:#990000;"/>																						
					</classStyle>																							
					<classStyle name="pd_5">																							
						<CSS value="background-color:#990000; color:#FFFFFF;"/>																						
					</classStyle>																							
				</classStyles>																								
			<XMLAttributes><XMLAttribute name="RS_CreateExtendedDataItems" output="no" value="true"/><XMLAttribute name="listSeparator" output="no" value=","/><XMLAttribute name="RS_modelModificationTime" output="no" value="2013-01-08T15:30:33.117Z"/></XMLAttributes><reportName>＋－ ボタンで折りたたみ</reportName></report>																									

```