locked
"Custom Order Members" does not work with mixed chart types; has anyone encountered this or know the solution? RRS feed

  • Question

  • When I am trying to reorder members for a mixed chart graph, the Custom Order Members functionality does not always work.

    Imagine a barchart that shows company revenue by geography. The y-axis is dollars. The x-axis is Northeast, Southeast, Southwest, West, etc. For each geographical member, you see a bar representing Actual and two points on the bar representing Forecast and Plan. The x-axis (Geography) is thus composed of a bar chart & a point chart.

    I am trying to order the legend “Plan, Forecast, Actual” but because Actual is a bar graph whereas P and F are point graphs, Actual always trumps them and appears first. So it’s A-P-F despite my best efforts to make it P-F-A. Has anyone encountered this or know a solution?
    Tuesday, May 26, 2009 9:51 PM

All replies

  • Could you reproduce this using AdWorks and send us the steps?  I tried based on your description of the problem, but the members are always ordered properly, which makes me think I'm missing something.
    Microsoft ProClarity | This posting is provided "AS IS" with no warranties, and confers no rights.
    Thursday, May 28, 2009 11:32 PM
  • Hi,

    I am facing the same issue, wherein series type ordering is affecting the Custom Order Member functionality.

    I created a Chart report through ProClarity Desktop Designer. On the legends I have shown the Year field in order as 2001->2002->2003->2004.  Then I right clicked on the graph area, and selected Series Property. In Series Property window, for Series, I selected 2002 and for Series Type I selected Area chart and pressed Ok. In final report now Legend ordering got changed as 2002->2001->2003->2004.

    It is the case with all the Series types including Area, Bar, Line and Point. In Series Property window, Series Type ordering is as Area->Bar->Line->Point, and when I use them in my report, legend values are getting ordered in same order as Series Type.

    I think Series type ordering suppresses the Custom Order member ordering.

    Please let me know your inputs on the same. Thanks!!!
    Thursday, July 16, 2009 6:50 AM
  • This issue is by design.  What happens when you set those series properties is that those members will be reordered in the Legend according to the precedence of their series "type".  So for you, comradejanelle, since Actual is type "Bar" it will appear at the top of the Legend member list.  If you set Actual to a point series and Plan and Forecast to a bar series you would obtain the proper ordering.  I understand that it is frustrating, however that is how the ChartFx software renders the Legend when mixing series types.

    Please let us know if you have further questions.

    Amanda
    Microsoft ProClarity | This posting is provided "AS IS" with no warranties, and confers no rights.
    Thursday, July 16, 2009 10:11 PM
  • Thank you Amanda for your quick response,

    I got your point that, when we set series property, then members get reordered to the precedence of their series "type".

    My question is: After setting the series property, can I change the members ordering in Legend?
    Friday, July 17, 2009 7:55 AM
  • Hi Amanda,
    Thanks for your response. Like Surya, I am wondering if there is a way to change that setting so that users have the options to choose whether or not Series Type trumps Custom Order Member? Is it possible to offer a fix for it in a future patch or service pack for ProClarity?

    The business case is that there needs to be flexibility in order to place the most important information first/in a certain order. Grouping things by Series Type alone is not necessarily logical and oftentimes not desirable for the end-user/executive.

    Thanks,
    Janelle
    Friday, July 17, 2009 7:49 PM
  • Amanda, Is it possible to maintain the Legend ordering through ProClarity SDK? Please give your inputs. Thanks
    Tuesday, July 21, 2009 8:25 AM
  • Unfortunately there is no way to give users an option to change the member settings within the Legend.  I know this particular issue has been submitted to the ProClarity Lab for review, however nothing was ever done to change the behavior.  I cannot answer your question about SDK, but maybe someone with SDK experience can chime in.  

    Please let us know if you have further questions.

    Regards,
    Amanda
    Microsoft ProClarity | This posting is provided "AS IS" with no warranties, and confers no rights.
    Tuesday, July 28, 2009 8:37 PM
  • Hi,

    I am working on ProClarity SDK to fix this issue and able to handle the Series Property through the code. But I am stuck at last step.

    I have used ProClarity.Interop.PChartCtrlNew, PCommonInterfaces5, PMDHub5, PTMD5, PPageCtrl5 APIs in SDK development. There are lot of properties and event handlers are there in these APIs. I explored most of them but not able to handle the series ordering done at chart level.

    First I fetched all series properties of the chart from SeriesCollection interface, and then extracted the series members. Then I re-ordered the series members according to my requirement and added them in a new IKMemberSet (i.e. finalMemberSet) instance. Finally added finalMemberSet to series by using SetMembers function.
    Expression is like

    foreach (ISeries series in axKChart1.SeriesCollection)

    {

        if (count == 3)

        {

           foreach (IKMember member in series.Members)

           {

                finalMemberSet.Add(member);

           }

           series.SetMembers(finalMemberSet);

        }

        count++;              

    }           

    _legendCommand.Axes[(AxisConstants)(2)].DimSelections[0].SetMemberSet(finalMemberSet, null);

    _legendCommand.Execute();

    Here I set the series member order and used Execute method (i.e. IKCommand function) to apply this order on Chart. But the Execute command doesn't run on top of Chart, so I am not able to re-order the members.

    My Question is: Here I am able to order the series members and set it to the KChart.ISeries instance. Is there any function/API to apply this Series order on chart like IKCommnd Execute method?

    Thanks

    Thursday, September 10, 2009 2:18 PM