Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In this case, we want to return the status "Expired" or "Active" based on the date value in the datalist compared to the actual date.

Edit the datalist column where you want to return the status and select Bean Shell Formatter to enter the code below(Refer to Figure 2).

Image Removed

Figure 1Image Added

Figure 1


Figure 2Image Added

Figure 2

Code Sample 1:

Code Block
languagejava
titleCode
linenumberstrue
Code Block
titleSQL
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try {
    Date date = formatter.parse(value);
    Calendar cal = Calendar.getInstance();
    if (date.before(cal.getTime())) {
        return "Expired";
    } else {
        return "Active";
    }
} catch (ParseException e) {
    e.printStackTrace();
}


Code Sample 2:

This code has added logic to show nearing expiry date with status "Expiring Soon in 30 days".

Code Block
languagejava
titleCode
linenumberstrue
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try {
    Date date = formatter.parse(value);
    Calendar cal = Calendar.getInstance();
    
    if (date.before(cal.getTime())) {
        return "Expired"; //before today = expiried
    } 
    cal.add(Calendar.DAY_OF_MONTH, 30); //increase today's date by 30 days
    if (date.before(cal.getTime())) {
        return "Expiring Soon in 30 days"; //between now and next 30 days
    }else{
        return "Active"; //more than 30 days ahead
    }
} catch (ParseException e) {
    e.printStackTrace();
}

...