示例#1
0
        private void DControl_DrillDownPerformed(object sender, DrillActionEventArgs e)
        {
            if (HasDashboardItem(e.DashboardItemName))
            {
                string           itemName = e.DashboardItemName;
                DashboardDataRow row      = e.Values[0];
                object           value    = row[row.Length - 1];

                IList <AxisPointTuple> tuple           = this.dashboardViewer1.GetAvailableDrillDownValues(itemName);
                IEnumerable <object>   availableValues = tuple.Select(t => t.GetAxisPoint().UniqueValue);
                if (availableValues.Contains(value))
                {
                    this.dashboardViewer1.PerformDrillDown(e.DashboardItemName, value);
                }
            }
        }
示例#2
0
 private void DControl_DrillUpPerformed(object sender, DrillActionEventArgs e)
 {
     if (HasDashboardItem(e.DashboardItemName))
     {
         string         itemName = e.DashboardItemName;
         int            level    = e.DrillDownLevel;
         AxisPointTuple tuple    = this.dashboardViewer1.GetCurrentDrillDownValues(itemName);
         if (tuple != null)
         {
             AxisPoint point = this.dashboardViewer1.GetCurrentDrillDownValues(itemName).GetAxisPoint();
             int       l     = 0;
             while (point.Parent != null)
             {
                 l++;
                 point = point.Parent;
             }
             if (level + 1 == l && this.dashboardViewer1.CanPerformDrillUp(itemName))
             {
                 this.dashboardViewer1.PerformDrillUp(itemName);
             }
         }
     }
 }