Ordering complex sets that are created inline

I've been playing with a script of Chris Webb's found here:http://cwebbbi.wordpress.com/2007/06/25/advanced-ranking-and-dynamically-generated-named-sets-in-mdx/
The adapted script is this:
WITH
SET MyMonths AS
TopPercent
[Date].[Calendar].[Month].MEMBERS
,20
,[Measures].[Reseller Sales Amount]
SET MyEmployees AS
[Employee].[Employee].[Employee].MEMBERS
SET MyMonthsWithEmployeesSets AS
Generate
MyMonths
,Union
{[Date].[Calendar].CurrentMember}
,StrToSet
Intersect({},
{TopCount(MyEmployees, 10, ([Measures].[Reseller Sales Amount],[Date].[Calendar].CurrentMember))
as EmployeeSet"
+
Cstr(MyMonths.CurrentOrdinal)
+ "})"
MEMBER [Employee].[Employee].[RestOfEmployees] AS
Aggregate
Except
MyEmployees
,StrToSet
"EmployeeSet" + Cstr(Rank([Date].[Calendar].CurrentMember,MyMonths))
MEMBER [Measures].[EmployeeRank] AS
Rank
[Employee].[Employee].CurrentMember
,StrToSet
"EmployeeSet" + Cstr(Rank([Date].[Calendar].CurrentMember,MyMonths))
SELECT
[Measures].[EmployeeRank]
,[Measures].[Reseller Sales Amount]
} ON 0
,Hierarchize
Union
Filter
MyMonthsWithEmployeesSets * MyEmployees
[Measures].[EmployeeRank] >= 1
MyMonthsWithEmployeesSets * [Employee].[Employee].[RestOfEmployees]
) ON 1
FROM [Adventure Works];
How do I ORDER the output so that each set of ten employees is in order 1 to 10, with the `MEMBER` called `RestOfEmployees` always found in position 11 i.e. it should follow the member ranked 10 ?

I haven't had much time to look at this, but does the following do what you want?
WITH
SET MyMonths AS
TopPercent
[Date].[Calendar].[Month].MEMBERS
,20
,[Measures].[Reseller Sales Amount]
SET MyEmployees AS
[Employee].[Employee].[Employee].MEMBERS
SET MyMonthsWithEmployeesSets AS
Generate
MyMonths
,Union
{[Date].[Calendar].CurrentMember}
,StrToSet
Intersect({},
{TopCount(MyEmployees, 10, ([Measures].[Reseller Sales Amount],[Date].[Calendar].CurrentMember))
as EmployeeSet"
+
Cstr(MyMonths.CurrentOrdinal)
+ "})"
MEMBER [Employee].[Employee].[RestOfEmployees] AS
Aggregate
Except
MyEmployees
,StrToSet
"EmployeeSet" + Cstr(Rank([Date].[Calendar].CurrentMember,MyMonths))
MEMBER [Measures].[EmployeeRank] AS
Rank
[Employee].[Employee].CurrentMember
,StrToSet
"EmployeeSet" + Cstr(Rank([Date].[Calendar].CurrentMember,MyMonths))
SELECT
[Measures].[EmployeeRank]
,[Measures].[Reseller Sales Amount]
} ON 0
GENERATE(
HIERARCHIZE(MyMonthsWithEmployeesSets),
[Date].[Calendar].CurrentMember *
{ORDER(
FILTER(MyEmployees, [Measures].[EmployeeRank]>0)
, [Measures].[Reseller Sales Amount], BDESC),[Employee].[Employee].[RestOfEmployees]} )
ON 1
FROM [Adventure Works];
Chris
Check out my MS BI blog I also do
SSAS, PowerPivot, MDX and DAX consultancy
and run public SQL Server and BI training courses in the UK

Similar Messages

  • How can I order a calendar that I created in iPhoto 7.1.5, now incompatible with Apple Store.

    How can I order a calendar that I created in iPhoto 7.1.5 which is now incompatible with the Apple Store?  I am using a mac pro 1,1 which cannot upgrade to the new version of iPhoto.

    You could try to upgrade to an earlier iPhoto '11 version, since you are running Snowleopard.
    iPhoto '11 should still be available as part of the boxed retail version of iLife '11.
    Try to buy one at Amazon, then upgrade to iPhoto 9.2.x from the Support page:  http://support.apple.com/downloads/#iphoto%209.2

  • I listen to a lot of live performances (house sets that are from 1 hour to 3 hours long) when I start to listen to a set and then stop to do something else on the iPhone when I go back to start to listen to the track it has started from the beginning.

    I listen to a lot of live performances (house sets that are from 1 hour to 3 hours long) when I start to listen to a set and then stop to do something else on the iPhone when I go back to start to listen to the track it has started from the beginning.

    It sounds like either your hard drive or the SATA cable that connects it to the motherboard are failing. This could be heat related in your case, which is why you see it after it runs awhile. You can take it to the Genius Bar for a free evaluation. If you decide to test it yourself, I usually suggest moving the hard drive to an external enclosure. If it works there for awhile, the cable is probably the issue.
    http://www.amazon.com/Sabrent-2-5-Inch-Aluminum-Enclosure-EC-TB4P/dp/B005EIGUD4/ ref=sr_1_3?ie=UTF8&qid=1397647657&sr=8-3&keywords=2.5+enclosure
    http://www.ifixit.com/Device/MacBook_Pro_13%22_Unibody_Mid_2009

  • What are the .fm.sp files that are created when using SharePoint?

    What are the .fm.sp files that are created when using SharePoint? When I'm working with SharePoint, I've noticed that duplicate files ending in .fm.sp are created. I've been unable to find any reference or documentation about them so far.

    Whe you use sharepoint as a CMS connections in Framemaker it creates the folder where Sp is installed and also a file ending .sp is created that let SP know that its the file associated with it.
    .fm.sp indicates that its the framemaker type SP file.
    Dont worry about it as its not creating any mess in the system.
    Harpreet

  • Configuring UWL tasks that are created by a GP process

    Hello,
    We need help with configuring UWL tasks that are created by a GP process.
    In the portal (NW04s SP7), we went to System Admin > System Config > Universal Worklist Administration and then added a System called "GuidedProcedures" with the connector type "GuidedProceduresConnector".  But when we goto "Click to Administrate Item Types and View Definitions", the only gp system that we see is "uwl.gp.config".  So we have a few questions about this:
    1)     Should we be editing this XML file (uwl.gp.config)?  We were thinking that we should get another config file named uwl.GuidedProceduresConnector.<systemalias>.
    2)     Does each GP process have a unique ID? If yes, then how do we find that ID?
    Any help on this would be much appreciated…
    Thanks,
    Harman

    Hi Harman,
    There is no button to start a process directly from the UWL for ths simple reason that it is impossible to see a process template in the UWL (but in the GP Design Time).
    In the UWL, you can only display an overview of the Work Item. If you want display the form, I guess you use a Callable Object. There is unfortunetaly no possibility to do the thing differently. But, you could in the approval callable object display the input form (or a copie of it) as well as more information. For that, you could have a look at the time-off process delivered with the standard installation.
    Hope this helps you.
    Regards,
    David

  • Maximum number of aggregates that are created on infocube

    Hi,
    Can anyone tell how many Maximum number of aggregates that are created on infocube.
    Regards@thanks

    HI,
    I don't think there is any limit to the no. of aggregates. But it basically depends upon the volume of data and the reporting needs.
    Regards
    Rajesh

  • Is there a way to find the temporary table that are created or read during?

    Hi All,
    I'm working on performance optimization where I have to find the temporary tablespaces that are created or read during runtime? Is there any way to find it?
    Can you please also tell me how the temporary tables are created? And after each run time whether the data is getting deleted or the whole table is getting deleted?
    Whether these tables are created only during runtime? What are the naming conventions for all the temporary tables that are created?
    Is the table creation has anything to do with Delta or Full load?
    Regards,
    Kartik

    Stephen Tyler Bloom wrote:
    When they come out with the next garageband, they should add that feature .
    be sure to let Apple know:
    http://www.bulletsandbones.com/GB/GBFAQ.html#sendfeedback
    (Let the page FULLY load. The link to your answer is at the top of your screen)

  • Performance of Web Templates Apps that are created in Web App Designer

    I have created a Dashboard using Web App Designer in BI7 SPS 10.
    The Web Template has 12 queries/DataProviders that are used for 12 charts.  Buttons at the top control the view to show 4 Charts Each.   When these buttons are selected, command sequences are executed that Hide and Show containers (each chart has its own container).
    Also, there are 8 Dropdowns which are used to filter all 12 charts.  These Dropdowns are using Posted Values because the requirement is to only show the values that actually exist in the InfoProvider.
    When this template is run in Development where the data is minimal, it is taking 17 seconds to load the page.  When running each query individually, it is taking each query between less than 1 second or at most 1.5 seconds.  Also, the queries have been broadcasted to the OLAP Cache.
    Other approaches that I have tried but have not changed the performance:
    1.  Created this template with Tabs and each template calls a template which contains 4 of the Charts (I believe this is called the “Template in Template” Approach.
    2.  Created 3 templates  that each contain 4 of the Charts.   The Command Sequence “Change Template" is used to switch to another Template (e.g. from “Monthly Trends” to “Top 10” and retain/pass the filters that are already selected in the Dropdowns.  However all of the dataproviders are needed in each template in order to pass the filter values.  Therefore, all 12 queries are executing  when you load the main page.
    I am looking for suggestions on what I could do differently to speed up the performance to get the Dashboard to respond within 10 seconds.
    Thank You.

    Dear Kristen,
    well, one of the things that I do remember, a solution that we provided for a similar scenario, but, not exactly the same. Another difference is that it was in BW 3.5.
    We had few reports that was responding slow. There were reports that was viewed by both sr. managers as well by his team. Sr. Mgr looked only at the high level data while the team looked at the item level data in the same report. So, we provided two links in the same report. Initially it will come up with a static data. To get a detailed data, the user has to click the next link to view item level data.
    Now, how this works is through Reporting Agent. The first static data was provided as a cache(pre-calculated) hence, faster. It comes in just 2 secs. But, when the user needs a item level data, he clicks the lik provided, only in which case, it fetches data from the infoprovider(hybrid mode).
    We will need to schedule periodically, accordingly, to refresh the cache to provide faster data.
    Iam really not sure how far this will help you, but, can spark something( I hope!).
    Thanks

  • Limiting the number of threads that are created

    I am trying to write a web crawler as a way of learning about multi-threading and I have hit a stumbling block (probably my design). The way the application I have started works is that I provide a single URL, which is passed to a thread and that thread then parses the web page building a list of links (If the links are not already held in a 'visited' list then they are saved in a list in the Runnable object that is parsing the html page).
    When the page has been parsed the list of links are then passed to a method in a Utilities class that creates a new group of threads, 1 for each link and each of these threads then does the same thing. The problem I have is that as more and more links are captured more and more threads are created eventually I either get a out of memory exception or I get an operating system 'cannot create native thread' message. I am not sure if the threads are staying in memory after they have done their tasks, I am not sure why I am running out of memory so quickly.
    What I would like to try and do is to set a limit for the maximum number of threads created and then only create new threads if the limit is not breached. If someone could point me in the right direction that would be good, I have googled around but cant find an example of what I want to do.
    Thanks

    Thanks for that, that has given me a lot to read up on and I can already see where I went wrong.... I think implementing a thread pool and also a work queue is probably the way I will go from now on.

  • EP6.0: Can't change the Users that are created earlier by somebody else

    Hi,
       I ( have super admin access) am trying to modify/delete some of the users that were created by some body else earlier.
    During Modify, it's not allowing me to change the following (grayed out)
    1> Last name
    2> First name
    3> email add
    Moreover I don't even see the password field where I can reset the password.
    Also when I change the validity period etc, for some reason, the old data come back again after some time.
    The user in question needs some additional access and need resetting of the password and I am not able to do the 2nd.
    Also please note that there is no issue with the User lock, I have checked that already.
    Thanks
    Arunava

    Have u Changed in User Mapping  ?
    Go to 'User Admn' - >User MApping -> search for the User u want -> Do edit .
    If u hav did any LDAP ,u can't change the Fname / Lname here as it's been configured .
    Regards,
    J
    Do Award pts if this's useful.

  • Is there a function to send window id's to TS to use for placement of the standard panels/windows that are created during normal TS operation?

    I have asked this question previously in a different manner and have not received any useful hints. I want to manage the placement of all of the standard TS windows/panels during normal operation of TS.
    Thanks in advance,
    Paul

    Paul,
    I am assuming that you are talking about the File Dialog when you select "Open Sequence File..." from the menu.  The code for the dialog is encapsulated as a command in the Operator Interface.  If you look in the TestStand help, under Command Kinds, you can see all the coded commands that will cause the OI to respond.  The CommandKind_OpenSequenceFile command is what causes the File Dialog to popup.  When the user selects the proper file and chooses to Open the dialog, the OpenSequenceFile command triggers a DisplaySequenceFile event.  This event is handled by the Application Manager with a callback function (or VI if you are using LabVIEW).  The SequenceFile gets updated in the SequenceFileView manager.  Unfortunately, much of this code is handled internally by the Operator Interface manager controls.  The File Dialog is simply a function that gets called, and the Window handle is never really accessed by the OI developer.
    You may have a few options, however.  There may be a Windows kernel function, that accesses child Window handles.  I would search MSDN for any functions that will help access Window handles.
    The other option is to implement the File Open dialog yourself.  I believe, the File Chooser is a standard dialog popup, that you can call from most programming languages that are accessing Windows functionality.  However, you should trigger the DisplaySequenceFile event after the user selects a file.  This will cause the SequenceFileView manager to be udpated with the proper sequence file.
    I have not tried either of these implementations.
    If you have any questions, please let me know.
    Thanks,
    Tyler T.
    NI

  • Importing custom slideshows that are created in iPhoto without lowering the quality to play on AppleTV

    Hi,
    My wife is a wedding photographer, so for part of her presentation process I create custom slideshows in iPhoto with music and the pictures presented in a certain order and at a certain pace. The slideshows look awesome on the computer. To get them to play on my 1st generation AppleTV, they want me to export the custom slideshow to iTunes at a much lower resolution to where it will play on the AppleTV. There has to be a better way to do this. Right now, by the time they're playable on the AppleTV, the picture quality is noticeably worse than the original presentation.
    I called apple and they first suggested selecting the slideshows in the events tab under photos on the AppleTV in iTunes. The pictures look great, but the custom slide show element is gone as it plays them in the order and pace it wants to play them with all background music stripped away. The gentleman transferred me to a 'Senior Advisor', who said the are not allow to assist on content matters. I told him it's not a matter of the content, but the process of creating it in iPhoto (Apple program), lowering the quality and exporting it to iTunes (Apple program), to watch it through AppleTV (Apple product). I got the feeling that was his way of saying he didn't really want to deal with this.
    He directed me to this board to see if someone else has experienced this as well or has a solution.
    I'm using AppleTV - 1st generation, and iLife '09.
    Any suggestions would be GREATLY appreciated.
    Dave

    Use the export option from the bottom of the slideshow
    and choose the custom export settings.

  • How to populate the combo boxes that are created dynamically in jsp

    Hi,
    I am using JSP.
    I am creating combo boxes dynamically (based on the num selected by the user). These dynamically created combo boxes need to have A-Z as options (each box) . Now, when the user chooses the option A in any of the combo-boxes,the rest should not have this option. so on..
    how do i achieve this.Kindly help.

    You'll need to use JavaScript...I have a complicated example and a simple example, however, I cannot really understand the complex example but I know how it works. The looping is too complex for me.
    First you'll need to populate a server side variable...depending on how often the data is updated you may want this to run each time a new session is created...this example is run each time Tomcat is started and the application context is initialized:
    package kms.web;
    // Servlet imports
    import javax.servlet.ServletContextListener;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContext;
    // utility imports
    import java.util.Map;
    // domain imports
    import kms.domain.LocationService;
    import kms.domain.DeptService;
    import kms.domain.PatentService;
    * This listenter is used to initialize
    * the Maps of Locations, Patents & Depts used to populate
    * pulldown lists in JSPs
    public class InitializeData implements ServletContextListener {
        * This method creates the Maps.
       public void contextInitialized(ServletContextEvent sce) {
          ServletContext context = sce.getServletContext();
          LocationService lServ = new LocationService();
          // Create the Maps
          Map campuses = lServ.getCampuses();
          Map buildings = lServ.getBuildings();
          Map floors = lServ.getFloors();
          Map locs = lServ.getLocations();
          // And store them in the "context" (application) scope
          context.setAttribute("campuses", campuses);
          context.setAttribute("buildings", buildings);
          context.setAttribute("floors", floors);
          context.setAttribute("locs", locs);
          DeptService dServ = new DeptService();
          Map depts = dServ.getDepts();
          context.setAttribute("depts", depts);
          PatentService pServ = new PatentService();
          Map patents = pServ.getPatents();
          context.setAttribute("patents", patents);
          //I did this one myself
    /*    CodeService cServ = new CodeService();
          Map masterMks = cServ.getCodes();
          context.setAttribute("masterMks", masterMks);
        * This method is necessary for interface.
       public void contextDestroyed(ServletContextEvent sce) {
       // I have no clue what the heck this is for???
       // Let me know if you do!
    }So now we travel into the PatentService method called 'getPatents();' which in turn calls a PatentDAO method
    Map patents = pServ.getPatents();
    Below is the code for the PatentService object:
    package kms.domain;
    import kms.util.ObjectNotFoundException;
    import java.util.*;
    * This object performs a variety of dept services, like retrieving
    * a dept object from the database, or creating a new dept object.
    public class PatentService {
       * The internal Data Access Object used for database CRUD operations.
      private PatentDAO patentDAO;
       * This constructor creates a Dept Service object.
      public PatentService() {
        patentDAO = new PatentDAO();
    public Map getPatents() {
          Map patents = null;
          try {
            patents = patentDAO.retrieveAll();
          // If the dept object does not exist, simply return null
          } catch (ObjectNotFoundException onfe) {
            patents = null;
          return patents;
    }It may be useful for you to see the code of the Patent class:
    package kms.domain;
    /*** This domain object represents a dept.
    public class Patent implements java.io.Serializable {
      private int codeGgm;
      private String name = "";
      private String description = "";
      private int creator;
      private String creationDate = "";
      private int used;
       * This is the full constructor.
      public Patent(int codeGgm, String name, String desc, int creator, String creationDate, int used) {
        this.codeGgm = codeGgm;
        this.name = name;
        this.description = desc;
        this.creator = creator;
        this.creationDate = creationDate;
        this.used = used;
      public Patent() { }
      public int getCodeGgm() {
          return codeGgm;
      public void setCodeGgm(int codeGgm) {
           this.codeGgm = codeGgm;
      public String getName() {
        return name;
      public void setName(String name) {
          this.name = name;
      public String getDesc() {
        return description;
      public void setDesc(String desc) {
          this.description = desc;
      public int getCreator() {
          return creator;
      public void setCreator(int creator) {
             this.creator = creator;
      public String getCreationDate() {
          return creationDate;
      public void setCreationDate(String creationDate) {
             this.creationDate = creationDate;
      public int getUsed() {
           return used;
      public void setUsed(int used){
           this.used = used;
    }And here is the Database table which stores the Patents:
    DESC PATENT:
    CODE_GGM NUMBER(3)
    NAME VARCHAR2(15)
    DESCRIPTION VARCHAR2(250)
    CREATOR NUMBER(10)
    CREATION_DATE DATE
    USED NUMBER(1)
    So, we then travel into the code of the PatentDAO to see how the DAO object executes the DB query to get all of the Data we need for the select list:
    package kms.domain;
    import javax.naming.*;
    import javax.sql.*;
    import java.util.*;
    import java.sql.*;
    import kms.util.*;
    * This Data Access Object performs database operations on Patent objects.
    class PatentDAO {
       * This constructor creates a Patent DAO object.
       * Keep this package-private, so no other classes have access
    PatentDAO() {
    * This method returns a Map of all the Dept names
    * The key is the Dept id
    Map retrieveAll()
           throws ObjectNotFoundException {
          Connection connection = null;
          ResultSet results = null;
          // Create the query statement
          PreparedStatement query_stmt = null;
          try {
            // Get a database connection
          Context initContext = new InitialContext();
           DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/keymanOracle");
           connection = ds.getConnection();
            // Create SQL SELECT statement
            query_stmt = connection.prepareStatement(RETRIEVE_ALL_NAMES);
            results = query_stmt.executeQuery();
            int num_of_rows = 0;
          Map patents = new TreeMap();
             // Iterator over the query results
            while ( results.next() ) {
                patents.put(new Integer(results.getInt("code_ggm")), results.getString("name"));
             if ( patents != null ) {
                      return patents;
                    } else {
                      throw new ObjectNotFoundException("patent");
           // Handle any SQL errors
         } catch (SQLException se) {
            se.printStackTrace();
           throw new RuntimeException("A database error occured. " + se.getMessage());
        } catch (NamingException se) {
          throw new RuntimeException("A JNDI error occured. " + se.getMessage());
          // Clean up JDBC resources
          } finally {
            if ( results != null ) {
              try { results.close(); }
              catch (SQLException se) { se.printStackTrace(System.err); }
            if ( query_stmt != null ) {
              try { query_stmt.close(); }
              catch (SQLException se) { se.printStackTrace(System.err); }
            if ( connection != null ) {
              try { connection.close(); }
              catch (Exception e) { e.printStackTrace(System.err); }
    private static final String RETRIEVE_ALL_NAMES
          = "SELECT code_ggm, name FROM patent ";
    }Now when you wish to use the 'combo box' (also called select lists), you insert this code into your jsp:
    <TR>
    <%@ include file="../incl/patent.jsp" %>
    </TR>
    depending on how your files on your server are organized, the "../incl/patent.jsp"
    tells the container to look up one directory from where the main jsp is to find the 'patent.jsp' file in the 'incl' directory.
    I need some help creating multi-level select lists with JavaScript:
    Can anyone explain this code:
    <%@ page import="java.util.*,kms.domain.*" %>
    <jsp:useBean id="campuses" scope="application" class="java.util.Map" />
    <TR><TD ALIGN='right'>Campus: </TD>
    <TD>
    <select name="campus" size="1" onChange="redirect(this.options.selectedIndex)">
    <option value="0" selected>No Campus</option>
    <% LocationService ls = new LocationService();
       Iterator c = campuses.keySet().iterator();
       Map[] bm = new Map[campuses.size()];
       Map[][] fm = new Map[campuses.size()][0];
       Map[][][] lm = new Map[campuses.size()][0][0];
       int i2 = 0;
       int j2 = 0;
       int k2 = 0;
       int jj = 0;
       int kk = 0;
       while (c.hasNext()) {
          Integer i = (Integer)c.next();
          out.print("<OPTION ");
          out.print("VALUE='" + i.intValue()+ "'>");
          out.print( (String) campuses.get(i) );
          out.print("</OPTION>");
          bm[i2] =  ls.getBuildingsByCampus(i.intValue());
          fm[i2] = new Map[bm[i2].size()];
          lm[i2] = new Map[bm[i2].size()][];
          Iterator b = bm[i2].keySet().iterator();
          j2 = 0;
          while (b.hasNext()) {
            Integer j = (Integer)b.next();
            fm[i2][j2] = ls.getFloorsByBuilding(j.intValue());
            lm[i2][j2] = new Map[fm[i2][j2].size()];
            Iterator f = fm[i2][j2].keySet().iterator();
            k2 = 0;
            while (f.hasNext()) {
              Integer k = (Integer)f.next();
              lm[i2][j2][k2] = ls.getLocationsByFloor(k.intValue());
              k2++;
              kk++;
            j2++;
            jj++;
          i2++;
       } %>
    </select></TD>
    </TR>
    <TR><TD ALIGN='right'>Building: </TD>
    <TD>
    <select name="building" size="1" onChange="redirect1(this.options.selectedIndex)">
    <option value="0" selected>No Building</option>
    </select></TD>
    </TR>
    <TR><TD ALIGN='right'>Floor: </TD>
    <TD>
    <select name="floor" size="1" onChange="redirect2(this.options.selectedIndex)">
    <option value="0" selected>No Floor</option>
    </select></TD>
    </TR>
    <TR><TD ALIGN='right'>Room: </TD>
    <TD>
    <select name="location_id" size="1">
    <option value="0" selected>No Room</option>
    </select></TD>
    </TR>
    <script>
    var cNum = <%=i2%>
    var bNum = <%=jj%>
    var fNum = <%=kk%>
    var cc = 0
    var bb = 0
    var ff = 0
    var temp=document.isc.building
    function redirect(x){
    cc = x
    for (m=temp.options.length-1;m>0;m--)
      temp.options[m]=null
      temp.options[0]=new Option("No Building", "0")
      if (cc!=0) {
        for (i=1;i<=group[cc-1].length;i++){
          temp.options=new Option(group[cc-1][i-1].text,group[cc-1][i-1].value)
    temp.options[0].selected=true
    redirect1(0)
    var group=new Array(cNum)
    for (i=0; i<cNum; i++) {
    group[i]=new Array()
    <% for (int i=0; i< bm.length; i++) {
    Iterator bldgs = bm[i].keySet().iterator();
    int j = 0;
    while (bldgs.hasNext()) {
    Integer intJ =(Integer) bldgs.next(); %>
    group[<%=i%>][<%=j%>] = new Option("<%=bm[i].get(intJ)%>", "<%=intJ%>");
    <% j++;
    } %>
    var group2=new Array(cNum)
    for (i=0; i<cNum; i++) {
    group2[i] = new Array()
    for (j=0; j<=bNum; j++) {
    group2[i][j] = new Array()
    <% for (int i=0; i< fm.length; i++) {
    for (int j=0; j< fm[i].length; j++) {
    Iterator flrs = fm[i][j].keySet().iterator();
    int k = 0;
    while (flrs.hasNext()) {
    Integer intK =(Integer) flrs.next(); %>
    group2[<%=i%>][<%=j%>][<%=k%>] = new Option("<%=fm[i][j].get(intK)%>", "<%=intK%>");
    <% k++;
    } %>
    var temp1=document.isc.floor
    var camp=document.isc.campus.options.selectedIndex
    function redirect1(x){
    bb = x
    for (m=temp1.options.length-1;m>0;m--)
    temp1.options[m]=null
    temp1.options[0]=new Option("No Floor", "0")
    if (cc!=0 && bb!=0) {
    for (i=1;i<=group2[cc-1][bb-1].length;i++){
    temp1.options[i]=new Option(group2[cc-1][bb-1][i-1].text,group2[cc-1][bb-1][i-1].value)
    temp1.options[0].selected=true
    redirect2(0)
    var group3=new Array(cNum)
    for (i=0; i<cNum; i++) {
    group3[i] = new Array()
    for (j=0; j<=bNum; j++) {
    group3[i][j] = new Array()
    for (k=0; k<=fNum; k++) {
    group3[i][j][k] = new Array()
    <% for (int i=0; i< lm.length; i++) {
    for (int j=0; j< lm[i].length; j++) {
    for (int k=0; k< lm[i][j].length; k++) {
    Iterator locs = lm[i][j][k].keySet().iterator();
    int m = 0;
    while (locs.hasNext()) {
    Integer intM =(Integer) locs.next(); %>
    group3[<%=i%>][<%=j%>][<%=k%>][<%=m%>] = new Option("<%=lm[i][j][k].get(intM)%>", "<%=intM%>");
    <% m++;
    } %>
    var temp2=document.isc.location_id
    function redirect2(x){
    ff = x
    for (m=temp2.options.length-1;m>0;m--)
    temp2.options[m]=null
    temp2.options[0]=new Option("No Room", "0")
    if (cc!=0 && bb!=0 && ff!=0) {
    for (i=1;i<=group3[cc-1][bb-1][ff-1].length;i++){
    temp2.options[i]=new Option(group3[cc-1][bb-1][ff-1][i-1].text,group3[cc-1][bb-1][ff-1][i-1].value)
    temp2.options[0].selected=true
    </script>
    This produces a related select list with 4 related lists by outputting JavaScript to the page being served. It works the same way as the first example that I describe but I don't understand the looping...maybe someone could explain how to go from the single select list to a double and/or triple level drill down?

  • Location of mapes stored that are created in Import Manager

    Hi SDNers,
    I need to delete some maps that I have created in MDM Import Manager,
    can you please tell me where are the stored in the MDM Repository or server?
    Please Guide,
    Gautam Purohit.

    Hi,
    Run Import Manager. Navigate to Main Menu -> Open...
    Highlight the map you wan to delete and press Del.
    The maps are stored in the repositories, not servers.
    Enjoy!

  • Can OATS scripts that are created on Windows version run on a LINUX version

    Can ATS scripts that were recorded/ created on Windows version of ATS be ported to a LINUX version of ATS and run successfully. Do both versions of ATS need to be identical?
    we are using version internal Windows build version 9.31.0029 and the LINUX version is the current downloadable version 9.31

    Hi,
    As far I am aware the only Linux option in ATS (GA version) at the moment is the load agent. If you create a load test script in OpenScript on Windows it should run fine using the Linux load agent. The Linux load agent will need to be the same version as the version of OLT that you are running.
    Regards,
    Jamie

Maybe you are looking for

  • HD clips have video stutter after import

    New problem with Sony HDR-SR5 import: 2 of 10 clips from recent vacation have video stutter/jerkiness upon import. All other clips are fine. The two clips that stutter in iMovie 08 play fine on the videocamera. I have never seen this before. I have r

  • IMac G5 w/ internal camera

    I am working on an iMac G5 20" w/ internal camera and when I try to run a video chat session in iChatAV I get a message saying the camera is in use by another Application. Rebotting doesn't solve the problem and Activity View doesn't show any process

  • Can I create iWeb hyperlinks from individual slides in slideshow?

    I have made a slideshow in iPhoto and dragged it onto my iWeb homepage.   I now want to make links between each individual slide and one of my pages.  Is this possible.  When I click the link icon in the inspector the slides on the slideshow will not

  • Firefox will not open on my computer

    From sometime last night to today (11/18) Firefox will not open when I click on the shortcut link from my desktop. I've tried to add another profile by clicking on start/run/firefox.exe but that doesn't even work. What would be the next step?

  • Creative Cloud Application Manager Corrupted

    Attempted to install Photoshop and Creative Cloud Application Manager and received a message that the latter was "Corrupted" and that I should contact Customer Service. Where is customer service? Do they have a telephone number? Do they have an email