// create column name variables as they will be reused many times
regionColumnName = "Region";
countryColumnName = "Country";
stateColumnName = "State";
cityColumnName = "City";
// initialize the variables that will hold selected dropdown values at runtime
selectedRegion = "";
selectedCountry = "";
selectedState= "";
selectedCity = "";
// remove all filters that may be applied on the table when application is run for the first time / page load / application initialization
MainTable.getDataSource().removeDimensionFilter(regionColumnName);
MainTable.getDataSource().removeDimensionFilter(countryColumnName);
MainTable.getDataSource().removeDimensionFilter(stateColumnName);
MainTable.getDataSource().removeDimensionFilter(cityColumnName);
//populate FullResultSet variable with full dataset that means ALL data in ALL columns and ALL Rows
var FullResultSet = MainTable.getDataSource().getResultSet();
// define DataContext container / object for each dropdown variable to hold the ID & Description of the selected member
region = ArrayUtils.create(Type.DataContext);
country = ArrayUtils.create(Type.DataContext);
state = ArrayUtils.create(Type.DataContext);
city = ArrayUtils.create(Type.DataContext);
// iterate the FullResultSet to populate the dropdown menu with values of the region, country, state and city columns
for(var i=0;i<FullResultSet.length;i++)
{
region.push(FullResultSet[i][regionColumnName]);
country.push(FullResultSet[i][countryColumnName]);
state.push(FullResultSet[i][stateColumnName]);
city.push(FullResultSet[i][cityColumnName]);
}
// populate each of the dropdowns lists with corresponding values from the columns and append ALL as one of the value
Drop_Down.fillMasterValues(dd_Region,region,"ALL");
Drop_Down.fillMasterValues(dd_Country,country,"ALL");
Drop_Down.fillMasterValues(dd_State,state,"ALL");
Drop_Down.fillMasterValues(dd_City,city,"ALL");
// this function will always hold the filtered member values that will be used to pass filtered values at run-time to dropdowns and table
var applicableData = ArrayUtils.create(Type.DataContext);
var FullResultSet = MainTable.getDataSource().getResultSet();
for(var i=0;i<FullResultSet.length;i++){
var filter = FullResultSet[i][filterName];
if(applicableFilter===filter.id){
applicableData.push(FullResultSet[i][columnName]);
}
}
return applicableData;
// this function will populate the dropdowns with all possible values of region, country, state and city columns, also this function will be called during application initialization
dropdownVar.removeAllItems();
dropdownVar.addItem("ALL","ALL");
while(dataContext.length > 0)
{
var dataContextObj = dataContext.pop();
dropdownVar.addItem(dataContextObj.id,dataContextObj.description);
if(selectedValue==="")
{
dropdownVar.setSelectedKey("ALL");
}
else
{
dropdownVar.setSelectedKey(selectedValue);
}
}
return dropdownVar;
selectedRegion= dd_Region.getSelectedKey();
if(selectedRegion !== "ALL")
{
MainTable.getDataSource().setDimensionFilter(regionColumnName,selectedRegion);
var applicableDataContextArr = User_Script.findApplicableData(selectedRegion,regionColumnName,countryColumnName);
dd_Country.removeAllItems();
Drop_Down.fillMasterValues(dd_Country,applicableDataContextArr,selectedCountry);
applicableDataContextArr = User_Script.findApplicableData(selectedRegion,regionColumnName,stateColumnName);
dd_State.removeAllItems();
Drop_Down.fillMasterValues(dd_State,applicableDataContextArr,selectedState);
applicableDataContextArr = User_Script.findApplicableData(selectedRegion,regionColumnName,cityColumnName);
dd_City.removeAllItems();
Drop_Down.fillMasterValues(dd_City,applicableDataContextArr,selectedCity);
} else {
User_Script.initializeData();
}
selectedCountry= dd_Country.getSelectedKey();
if(selectedCountry !== "ALL")
{
dd_Country.setSelectedKey(selectedCountry);
MainTable.getDataSource().setDimensionFilter(countryColumnName,selectedCountry);
var applicableDataContextArr = User_Script.findApplicableData(selectedCountry,countryColumnName,regionColumnName);
dd_Region.removeAllItems();
Drop_Down.fillMasterValues(dd_Region,applicableDataContextArr,selectedRegion);
applicableDataContextArr = User_Script.findApplicableData(selectedCountry,countryColumnName,stateColumnName);
dd_State.removeAllItems();
Drop_Down.fillMasterValues(dd_State,applicableDataContextArr,selectedState);
applicableDataContextArr = User_Script.findApplicableData(selectedCountry,countryColumnName,cityColumnName);
dd_City.removeAllItems();
Drop_Down.fillMasterValues(dd_City,applicableDataContextArr,selectedCity);
} else {
User_Script.initializeData();
}
selectedState= dd_State.getSelectedKey();
if(selectedState !== "ALL")
{
MainTable.getDataSource().setDimensionFilter(stateColumnName,selectedState);
var applicableDataContextArr = User_Script.findApplicableData(selectedState,stateColumnName,regionColumnName);
dd_Region.removeAllItems();
Drop_Down.fillMasterValues(dd_Region,applicableDataContextArr,selectedRegion);
applicableDataContextArr = User_Script.findApplicableData(selectedState,stateColumnName,countryColumnName);
dd_Country.removeAllItems();
Drop_Down.fillMasterValues(dd_Country,applicableDataContextArr,selectedCountry);
applicableDataContextArr = User_Script.findApplicableData(selectedState,stateColumnName,cityColumnName);
dd_City.removeAllItems();
Drop_Down.fillMasterValues(dd_City,applicableDataContextArr,selectedCity);
} else {
User_Script.initializeData();
}
selectedCity= dd_City.getSelectedKey();
if(selectedCity !== "ALL")
{
MainTable.getDataSource().setDimensionFilter(cityColumnName,selectedCity);
var applicableDataContextArr = User_Script.findApplicableData(selectedCity,cityColumnName,regionColumnName);
dd_Region.removeAllItems();
Drop_Down.fillMasterValues(dd_Region,applicableDataContextArr,selectedRegion);
applicableDataContextArr = User_Script.findApplicableData(selectedCity,cityColumnName,countryColumnName);
dd_Country.removeAllItems();
Drop_Down.fillMasterValues(dd_Country,applicableDataContextArr,selectedCountry);
applicableDataContextArr = User_Script.findApplicableData(selectedCity,cityColumnName,stateColumnName);
dd_State.removeAllItems();
Drop_Down.fillMasterValues(dd_State,applicableDataContextArr,selectedState);
} else {
User_Script.initializeData();
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
53 | |
5 | |
4 | |
4 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 |