SAC Scripting for Input Control

SAC Scripting for Input Control

Pre filled page filter (Quarter & Month) / get Fiscal Year from prompt:

//on page initialize
//get Fiscal Year from prompt

var p1=Table_1.getDataSource().getVariableValues("V_FPER")[0];

switch (p1.type) {
    case VariableValueType.Single:

        var singleValue = cast(Type.SingleVariableValue, p1);
//console.log("Fiscal Year");
        //console.log(singleValue.value); // can access the 'value' property now
//console.log(p1);

Text_13.applyText(singleValue.value);
var cy=Text_13.getPlainText();
var yy=(cy.substring(0,4));
var mm=(cy.substring(5,7));

        break;

    case VariableValueType.Multiple:

        var multiValue = cast(Type.MultipleVariableValue, p1);
        console.log(multiValue.values); // can access the 'values' property now

        break;

    case VariableValueType.Range:

        var rangeValue = cast(Type.RangeVariableValue, p1);
console.log("from");
        console.log(rangeValue.from); // can access the 'from' property now
console.log("to");
        console.log(rangeValue.to);   // can access the 'to' property now

        // further range properties: 'less', 'lessOrEqual', 'greater', 'greaterOrEqual'

        break;
    default:
        break;
}

//console.log(mm);
//console.log(yy);
//remove 0 from month

if(mm==="01"){
   mm="1";
  }else if(mm==="02"){
 mm="2";
  }else if(mm==="03"){
 mm="3";
  }else if(mm==="04"){
 mm="4";
  }else if(mm==="05"){
 mm="5";
  }else if(mm==="06"){
 mm="6";
  }else if(mm==="07"){
 mm="7";
  }else if(mm==="08"){
 mm="8";
  }else if(mm==="09"){
 mm="9";
  }else if(mm==="10"){
 mm="10";
  }else if(mm==="11"){
 mm="11";
  }else if(mm==="12"){
 mm="12";
  }

//prefix 0 in quarter

if(mm==="1" || mm==="2" || mm==="3"){
   var qtr="01";//+mm.toString();
  }else if(mm==="4" || mm==="5" || mm==="6"){
 qtr="02";
  }else if(mm==="7" || mm==="8" || mm==="9"){
 qtr="03";
  }else if(mm==="10" || mm==="11" || mm==="12"){
 qtr="04";
  }

  var mnth2=mm;

//quarter filter

InputControl_1.getInputControlDataSource().setSelectedMembers(yy+qtr);
console.log(yy+qtr);

//month filter

InputControl_2.getInputControlDataSource().setSelectedMembers(mnth2);
console.log(mnth2);

यह SAC scripting code page के initialize होने पर चलता है। यह Table_1 से fiscal period (V_FPER) value प्राप्त करता है और पहचानता है कि यह single, multiple, या range type का variable है। यदि यह single value है, तो यह इसमें से fiscal year (yy) और month (mm) निकालता है, और आगे के सभी zero हटा देता है (उदाहरण के लिए, "01" "1" बन जाता है)। फिर, month के आधार पर, यह संबंधित quarter (Q1–Q4) की गणना करता है। अंत में, यह derived values का उपयोग करके दो input controls set करता है—एक quarter के लिए (InputControl_1) और एक month के लिए (InputControl_2)—और accordingly dashboard filter को automatic रूप से update करता है।


Get selected value from filter:

var getPeriod=InputControl_2.getInputControlDataSource().getActiveSelectedMembers();
console.log(getPeriod[0].id);
console.log(getPeriod[0].description);

यह SAC scripting code input control से वर्तमान में selected value प्राप्त करता है और display करता है। InputControl_2.getInputControlDataSource().getActiveSelectedMembers() command input control से active या selected members की list प्राप्त करता है। परिणाम getPeriod variable में store होता है, जो एक array है। फिर, getPeriod[0].id पहले selected member की ID या key print करता है, और getPeriod[0].description उसका descriptive name print करता है। ये console.log() statement console में user selection को debug करने या track करने के लिए उपयोग किए जाते हैं। यह SAP Analytics Cloud input control में user द्वारा चुने गए values को verify करने में मदद करता है।


Select All members in page filter:

var IC_DATA = InputControl_5.getInputControlDataSource().getActiveSelectedMembers(1000);
console.log(IC_DATA);

if(Switch_1.isOn()===true)
{
InputControl_1.getInputControlDataSource().setSelectedMembers(["31","72"]);
}
else //if (Switch_1.isOn()===false)
{
InputControl_1.getInputControlDataSource().setAllMembersSelected();
}

यह SAC scripting code एक switch button का उपयोग करके input control values के selection को नियंत्रित करता है। सबसे पहले, यह InputControl_1 (1000 values तक) से वर्तमान में selected members को प्राप्त करता है और उन्हें IC_DATA में store करता है, फिर उन्हें console में log करता है। यदि switch (Switch_1) ON है, तो यह input control को केवल दो specific members - "31" और "72" को चुनने के लिए set करता है। यदि switch OFF है, तो यह setAllMembersSelected() का उपयोग करके सभी उपलब्ध members को चुनने के लिए input control को reset करता है। यह users को SAP Analytics Cloud dashboard में filter किए गए और full data views के बीच dynamic रूप से toggle करने की अनुमति देता है।


Month to Date selection on page filter:

// approach with millisec
var current_date = new Date(Date.now());
var date_new_millisec = current_date.setDate(current_date.getDate() - 0);
var new_date = new Date(date_new_millisec);
var date_new_format = new_date.toJSON().slice(0,10);
//now I have YYYY-MM-DD change format to DD.MM.YYYY
//var dd = date_new_format.slice(8,10);
var dd = ConvertUtils.stringToInteger(date_new_format.substring(8,10));
//var mm = date_new_format.slice(5,7);
var mm=ConvertUtils.stringToInteger(date_new_format.substring(5,7));
var yy=ConvertUtils.stringToInteger(date_new_format.substring(0,4));
console.log(date_new_format);
console.log(dd);
console.log(mm);
console.log(yy);

//prefix 0 in month
if(mm<=9){
   var mnth="0"+mm.toString();
   }else{
   mnth=mm.toString();
   }

if(dd===1)
{
var versionsel=[yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===2)
{
versionsel=[yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===3)
{
versionsel=[yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===4)
{
versionsel=[yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===5)
{
versionsel=[yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===6)
{
versionsel=[yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===7)
{
versionsel=[yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===8)
{
versionsel=[yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===9)
{
versionsel=[yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===10)
{
versionsel=[yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===11)
{
versionsel=[yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===12)
{
versionsel=[yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===13)
{
versionsel=[yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===14)
{
versionsel=[yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===15)
{
versionsel=[yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===16)
{
versionsel=[yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===17)
{
versionsel=[yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===18)
{
versionsel=[yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===19)
{
versionsel=[yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===20)
{
versionsel=[yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===21)
{
versionsel=[yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===22)
{
versionsel=[yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===23)
{
versionsel=[yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===24)
{
versionsel=[yy.toString()+"-"+mnth+"-24",yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===25)
{
versionsel=[yy.toString()+"-"+mnth+"-25",yy.toString()+"-"+mnth+"-24",yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===26)
{
versionsel=[yy.toString()+"-"+mnth+"-26",yy.toString()+"-"+mnth+"-25",yy.toString()+"-"+mnth+"-24",yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===27)
{
versionsel=[yy.toString()+"-"+mnth+"-27",yy.toString()+"-"+mnth+"-26",yy.toString()+"-"+mnth+"-25",yy.toString()+"-"+mnth+"-24",yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===28)
{
versionsel=[yy.toString()+"-"+mnth+"-28",yy.toString()+"-"+mnth+"-27",yy.toString()+"-"+mnth+"-26",yy.toString()+"-"+mnth+"-25",yy.toString()+"-"+mnth+"-24",yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===29)
{
versionsel=[yy.toString()+"-"+mnth+"-29",yy.toString()+"-"+mnth+"-28",yy.toString()+"-"+mnth+"-27",yy.toString()+"-"+mnth+"-26",yy.toString()+"-"+mnth+"-25",yy.toString()+"-"+mnth+"-24",yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===30)
{
versionsel=[yy.toString()+"-"+mnth+"-30",yy.toString()+"-"+mnth+"-29",yy.toString()+"-"+mnth+"-28",yy.toString()+"-"+mnth+"-27",yy.toString()+"-"+mnth+"-26",yy.toString()+"-"+mnth+"-25",yy.toString()+"-"+mnth+"-24",yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}
else if(dd===31)
{
versionsel=[yy.toString()+"-"+mnth+"-31",yy.toString()+"-"+mnth+"-30",yy.toString()+"-"+mnth+"-29",yy.toString()+"-"+mnth+"-28",yy.toString()+"-"+mnth+"-27",yy.toString()+"-"+mnth+"-26",yy.toString()+"-"+mnth+"-25",yy.toString()+"-"+mnth+"-24",yy.toString()+"-"+mnth+"-23",yy.toString()+"-"+mnth+"-22",yy.toString()+"-"+mnth+"-21",yy.toString()+"-"+mnth+"-20",yy.toString()+"-"+mnth+"-19",yy.toString()+"-"+mnth+"-18",yy.toString()+"-"+mnth+"-17",yy.toString()+"-"+mnth+"-16",yy.toString()+"-"+mnth+"-15",yy.toString()+"-"+mnth+"-14",yy.toString()+"-"+mnth+"-13",yy.toString()+"-"+mnth+"-12",yy.toString()+"-"+mnth+"-11",yy.toString()+"-"+mnth+"-10",yy.toString()+"-"+mnth+"-09",yy.toString()+"-"+mnth+"-08",yy.toString()+"-"+mnth+"-07",yy.toString()+"-"+mnth+"-06",yy.toString()+"-"+mnth+"-05",yy.toString()+"-"+mnth+"-04",yy.toString()+"-"+mnth+"-03",yy.toString()+"-"+mnth+"-02",yy.toString()+"-"+mnth+"-01"];
InputControl_23.getInputControlDataSource().setSelectedMembers(versionsel);
}

यह SAC scripting code current day के आधार पर input control (InputControl_23) में automatic रूप से date-based members का selection करता है। यह सबसे पहले आज की तारीख प्राप्त करता है, day (dd), month (mm), और year (yy) निकालता है, और उन्हें YYYY-MM-DD के रूप में format करता है। फिर, वर्तमान तारीख (जैसे 1, 5, 10, आदि) के आधार पर, यह month की 1 तारीख से लेकर आज तक की सभी तारीखों वाली एक array (versionsel) बनाता है। अंत में, यह इन तारीखों को input control में selected members के रूप में set करता है। यह month की शुरुआत से लेकर वर्तमान तारीख तक सभी दिनों के data को automatic रूप से dynamic रूप से filter करने में मदद करता है।


Cross filter Input Control between each page:

//get PA value from prompt
var getPA = Table_4.getDataSource().getVariableValues("APA_00")[0];
//get BA value from prompt
var getBA = Table_4.getDataSource().getVariableValues("ABU_00")[0];
if (getBA===undefined)
{
//set BA into input control
InputControl_3.getInputControlDataSource().setAllMembersSelected();
}
else
{ //get BA value
switch (getBA.type)
{
case VariableValueType.Single:
var BA=cast(Type.SingleVariableValue, getBA).value;
break;
default:
break;
}
}
if (BA==="BAVG")
{
InputControl_3.getInputControlDataSource().setSelectedMembers("[Product_Area].[Business_Area].&[BAVG]");
console.log("BAVG");
}
else if (BA==="BACP")
{
InputControl_3.getInputControlDataSource().setSelectedMembers("[Product_Area].[Business_Area].&[BACP]");
console.log("BACP");
}

if (getPA===undefined)
{
//set PA into input control
InputControl_1.getInputControlDataSource().setAllMembersSelected();
}
else
{
console.log(cast(Type.SingleVariableValue, getPA).value);
//assign value to PA variable
var PA=cast(Type.SingleVariableValue, getPA).value;
//set PA into input control
InputControl_1.getInputControlDataSource().setSelectedMembers(PA);
}

यह SAC scripting code Table 4 से दो prompt variables — APA_00 (Product Area) और ABU_00 (Business Area) — पढ़ता है। यह जाँचता है कि क्या इन prompt के values मौजूद हैं। यदि कोई variable (जैसे BA या PA) undefined है, तो यह संबंधित input control में सभी members का selection करता है। अन्यथा, यह selected value को निकालता है और उसे संबंधित input control पर apply करता है। विशेष रूप से, यदि BA "BAVG" या "BACP" के बराबर है, तो यह केवल उस business area को दिखाने के लिए input control को filter करता है। यह script सुनिश्चित करती है कि input control automatic रूप से prompt selections को दर्शाएँ या यदि कोई prompt set नहीं है, तो सभी members को default रूप से प्रदर्शित करें।

एक टिप्पणी भेजें

Please do not enter any spam link in the comment box.

और नया पुराने