Problem Note 8930: Data is incorrect after drilling down when sorting on statistic values
Data values may be incorrect on a webEIS or webAF multidimensional
report when applying a sort on the statistic values and then drilling
down on the across hierarchy. The sort order changes to data order even
if ascending or descending was selected. Only the statistic values
change to data order. The down dimension labels remain in ascending or
descending order.
This problem only occurs using a webEIS applet report or a webAF applet
project.
A possible circumvention when using webAF is to subclass the
DrillListener class and call the refreshTable method on the model. An
example follows.
/* Copyright (c) 2002 by SAS Institute */
package de.sas.support;
public class DrillListener implements com.sas.mdtable.DrillListener
{
transient com.sas.sasserver.mdtable.MultidimensionalTableV3Interface
model;
public DrillListener
(com.sas.sasserver.mdtable.MultidimensionalTableV3Interface model)
{
this.model = model;
}
public void drill(com.sas.mdtable.DrillEvent p0)
{
try {
if (p0.getSource() == model) {
// When multidimensionalTableV3Interface1 fires drill
// call multidimensionalTableV3Interface1DrillHandler1().
multidimensionalTableV3Interface1DrillHandler1 (p0);
return;
}
}
catch (java.lang.Exception ex) {
// Default exception action
ex.printStackTrace();
}
}
// multidimensionalTableV3Interface1DrillHandler1
// When multidimensionalTableV3Interface1 fires drill call
// multidimensionalTableV3Interface1DrillHandler1().
public void multidimensionalTableV3Interface1DrillHandler1
(com.sas.mdtable.DrillEvent event)
{
// NOTE: Add new code here
// System.out.println("drillevent: "+event.toString());
// RDO: model needs to be refreshed for sortbug
model.refreshTable();
}
}
One way to use your DrillListener class is to build the webEIS report
and view it in a Document Viewer component within a webAF applet. You
could then add your DrillListener in the Paint method. For example,
private long sectionID = 0;
com.sas.sasserver.mdtable.MultidimensionalTableV3Interface model = null;
public void paint(java.awt.Graphics g)
{
super.paint(g);
// may have more than one model per section, so if in a different
// section, add DrillListener to new model
if (sectionID!=documentView1.getCurrentSectionID()) {
sectionID = documentView1.getCurrentSectionID();
model=(com.sas.sasserver.mdtable.MultidimensionalTableV3Interface)
documentView1.getCurrentSection().getModel();
// add your DrillListen from your package
model.addDrillListener(new de.sas.support.DrillListener(model));
}
}
Additionally, if you do not want to implement the above circumvention,
you can force a refresh of the model manually while running the report
by displaying the Totals dialog from the popup menu over the report and
select OK. This will cause the refreshTable method to run and, clear up
any label-value mismatches displayed in the table.
Operating System and Release Information
| SAS System | SAS AppDev Studio | Microsoft Windows NT Workstation | 2.0 | 3.1 | 8.2 TS2M0 | |
| Microsoft Windows 95/98 | 2.0 | 3.1 | 8.2 TS2M0 | |
| Microsoft Windows 2000 Professional | 2.0 | 3.1 | 8.2 TS2M0 | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
| Type: | Problem Note |
| Priority: | alert |
| Topic: | Software Components ==> webEIS
|
| Date Modified: | 2002-11-27 11:35:33 |
| Date Created: | 2002-11-20 10:32:23 |