日期:2014-05-18  浏览次数:20553 次

水晶报表单元格如何合并?
数据源格式如下:
Q1 AD 4 0 1 0 14
Q1 CAD 6 0 0 0 13
Q1 CD 0 0 0 0 19
Q1 GT 0 0 0 0 19
Q1 OR 9 0 0 0 10
Q1 OW 0 0 0 0 19
Q1 US 0 0 0 0 19
Q2 AD 3 0 0 0 0
Q2 CAD 0 0 0 0 3
Q2 CD 0 0 0 0 3
Q2 GT 0 0 0 0 3
水晶报表中想转换为:
Q1 AD 4 0 1 0 14
CAD 6 0 0 0 13
CD 0 0 0 0 19
GT 0 0 0 0 19
OR 9 0 0 0 10
OW 0 0 0 0 19
US 0 0 0 0 19
Q2 AD 3 0 0 0 0
CAD 0 0 0 0 3
CD 0 0 0 0 3
GT 0 0 0 0 3
...........
请问第一列连续相同的记录如何合并?


------解决方案--------------------
分組呀

------解决方案--------------------
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
用inner Join可以做到一个表返回纪录,速度要快些。<br/>

select * from 主表 inner Join 从表 on 主表.外键=从表.id<br/>

如果要显示上合并行,可以在客户端合并<br/>

 <TABLE WIDTH=75% BORDER=1 CELLSPACING=1 CELLPADDING=1 id="tb">
<TR id="row">
<TD id="td">1</TD>
<TD>a</TD>
<TD>b</TD>
</TR>
<TR>
<TD>1</TD>
<TD>c</TD>
<TD>d</TD>
</TR>
<TR>
<TD>1</TD>
<TD>c</TD>
<TD>d</TD>
</TR>
<TR>
<TD>2</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
<TR>
<TD>2</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
<TR>
<TD>2</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
<TR>
<TD>2</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
</TABLE>
<SCRIPT LANGUAGE=javascript>
 
 
var Rows=document.getElementById("tb").rows;
var Col=1;//这个是要合并的第几列;
var lastValue;

 for(i=0;i<Rows.length;i++)
 {
lastValue=Rows[i].cells[Col-1].innerHTML;
var same=1;
 
while(lastValue==Rows[i+same].cells[Col-1].innerHTML )
{  
Rows[i+same].removeChild(Rows[i+same].cells[Col-1]);
same+=1;
if((i+same)==Rows.length )
{
break;
}

 
Rows[i].cells[Col-1].rowSpan=same;
i=i+same-1;
 }
</SCRIPT>


</BODY>
</HTML>