在报表查询显示器(GRDisplayViewer)中通过响应鼠标的点击事件实现报表穿透(透视/DrillDown)查询,根据汇总报表的当前双击行打开对应的明细报表。交叉表穿透要特殊一些,不能直接取DetailGrid.Recordset中的字段值,而应该取 RunningDetailGrid.Recordset 中的字段值,在例子里也演示了交叉表如何穿透查询。
C/S参考例子: Advance\SummaryToDetail
WEB报表插件参考例子: plugins\10.SummaryToDetail
交叉表穿透应该取 RunningDetailGrid.Recordset 中的字段值,横向交叉字段在动态产生的交叉表记录集中,每个横向交叉项会对应产生一个字段,这个字段的名称为 原字段名+"-"+序号,如横向交叉字段为ProductID,产生N个交叉项,则各个项的对应名称为ProductID_1, ProductID_2,...ProductID_N。根据选中列序号,求得是第几个横向交叉项,据此就可以知道对应的横向字段名称,然后在交叉表的记录集中取此字段的值即可。
int ColumnCount = pRunningDetailGrid.Columns.Count; //交叉表的列数
int SelColumnNo = axGRDisplayViewer1.SelColumnNo; //选中的列序号
int ListCols = Report.DetailGrid.CrossTab.ListCols; //交叉表列表项数,也就是纵向交叉显示的列数
int TotalCols = Report.DetailGrid.CrossTab.TotalCols; //交叉表的合计列数
int ProductID = -1; //记录横向交叉字段的值,如果为-1,表示没有取到值,应该是点击了列表项或合计列
if ((SelColumnNo >= ListCols) && (SelColumnNo<ColumnCount-TotalCols)) //如果不是列表项或合计列,生成字段名称并取值
{
  int ColsPerGroup = Report.DetailGrid.Columns.Count - ListCols - TotalCols; //每个横向交叉项的列数
  int HCrossGroupNo = (axGRDisplayViewer1.SelColumnNo - ListCols) / ColsPerGroup + 1; //求出横向交叉的项序号
  string HCrossFieldName = "ProductID_" + HCrossGroupNo; //产生字段名称
  ProductID = pRunningDetailGrid.Recordset.Fields[HCrossFieldName].AsInteger; //获取字段值
}
更多说明:
1、受限说明:如果某项没有产生交叉数据,这个单元格也就无法获得横向交叉字段的值
2、取对应列的标题文字,可以获取横向交叉显示字段的显示文字
3、纵向交叉字段的字段名称在交叉表记录集中保持不变,只要从交叉表的记录集中按原名称获取字段值即可,如:
string CoustmerID = pRunningDetailGrid.Recordset.Fields["CustomerId"].AsString;
WEB报表插件S参考例子:plugins\10.SummaryToDetail\Crosstab.htm
C/S参考例子:Advance\SummaryToDetail
在报表查询窗口中用鼠标拖动调整了列宽、列顺序或列的显示状态,如果希望打印或打印预览也反映这些调整,应该调用 IGRDisplayViewer 的 PostColumnLayout 方法。
C/S开发参考例子:Advance\HowTo
如果GRDisplayViewer显示了工具栏,也可以将工具栏上的“打印应用当前布局”CheckBox选取上。如果希望此CheckBox自动勾选上,设置 IGRDisplayViewer.ToPostColumnLayout 属性即可。
C/S开发代码如:
GRDisplayViewer1.ToPostColumnLayout = true;
B/S开发代码如:
ReportViewer.ToPostColumnLayout = true; 
或只接用属性指定:
CreateDisplayViewerEx("100%", "100%", "../grf/1a.grf", "../data/xmlCustomer.aspx", true, "<param name=ToPostColumnLayout value=true>");
包含有子报表的报表不适合用查询显示器控件(DisplayViewer)显示,如果明细网格中包含有子报表,这些子报表都不能在查询显示器控件中显示,所以含有子报表的报表直接用打印显示控件(PrintViewer)显示,即按打印预览方式显示。 
只要将报表查询显示器控件的“Resortable”属性设为“true”就可以开启报表查询显示器的点击列标题排序功能,在此报表查询显示器控件中显示的报表表格就可以通过鼠标点击列进行按列重新排序。更多有关排序方面的应用请参考与例子“Advance\HowTo”中的重排序与重分组。
请参考帮助中“开发指南->报表动态数据->分批提供明细数据”中的说明。 
WEB报表插件参考例子:C:\Grid++Report 6\WebSamples\...plugins\\11.BatchData
C/S参考例子:C:\Grid++Report 6\Samples\...\Advance\Advance\BatchData 

FAQ中没有解决问题,请查看其它技术支持方式。这里常见问题解答(FAQ)内容也全部包含在Grid++Report的帮助文档中,开发者一定要善于查看软件安装后的产品帮助文档。