How to get data for several parameter values ​​one by one

I have several values ​​for one parameter. I want to get data for each request for each parameter value in the Birt report. I get data for only one parameter value, not all. m using a data script source. Open and select methods. thank

Open in DataSet

 importPackage(Packages.com.abc.test.events);

var TlantNo = params["tlant"].value;
var reqNo = params["Number"].value;

poreEvents = new StdPoreReqEvents();
poreEvents.setReqNo(reqNo);
poreEvents.setTlantNo(TlantNo);
poreEvents.open();

sampling

var poreRO = poreEvents.fetch();
if (poreRO == null) {
    return false;
} else
    {

        row["REQ_NO"] = poreRO.getReqNo();
        row["REQ_DATE"] = poreRO.getReqDate();

        return true;
    }
+4
source share
2 answers

A report parameter with several values ​​is an array, we must iterate through it through the data set created by the script.

In the open dataset event, we only need to initialize the global index:

i=0;

fetch - script . , reqNo:

importPackage(Packages.com.abc.test.events);

if (params["Number"].value!=null && i<params["Number"].value.length){
    var TlantNo = params["tlant"].value;
    var reqNo = params["Number"].value[i];   

    //ETC. do here your stuff with porevents, declare poreRO, check if result is null

    row["REQ_NO"] = poreRO.getReqNo();
    row["REQ_DATE"] = poreRO.getReqDate();
    i++;  //Important: increment this even if poreRO is null, otherwise infinite loop
    return true; //should return true even if poreRO was null, to process next rows
}else{
  return false;
}
+2

, , , . IN , ( ) / . :)

+1

Source: https://habr.com/ru/post/1536053/


All Articles