我需要创建一个选择框,其中的选项显示我的Vf页面中的当前季度和前11个季度。
我不想对它们进行硬编码,因为值会随着新的季度而变化。这应始终默认为当前季度。
任何指针都会有所帮助
由于
答案 0 :(得分:2)
使用apex:selectList和selectOptions显示:
<apex:selectList value="{!quarter}" multiselect="true">
<apex:selectOptions value="{!listOfQuarters}"/>
</apex:selectList><p/>
控制器可能如下所示:
public List<SelectOption> getListOfQuarters() {
List<SelectOption> options = new List<SelectOption>();
// non-dynamic code as an example
options.add(new SelectOption('Q2 2012','Q2 2012'));
options.add(new SelectOption('Q1 2012','Q1 2012'));
options.add(new SelectOption('Q4 2011','Q4 2011'));
return options;
}
要自动生成选项值,我会使用Datetime方法: now()来获取当前日期, month()和 year()< / em>提取月份和年份,也可以使用Map按月查找,或者将月份数除以3,然后使用 ceil()获取当前季度。
要创建前11个季度,请使用带负值的 addMonths(),在循环内一次使用三个月。
myDatetime.addMonths(-3)
如果您不使用日历季度,则可以使用SOQL查询Period对象。您绝对可以确定您的会计年度开始月份:
SELECT FiscalYearStartMonth FROM Organization