创建当前季度和前11个季度的选择选项

时间:2012-06-01 03:59:22

标签: salesforce apex-code visualforce

我需要创建一个选择框,其中的选项显示我的Vf页面中的当前季度和前11个季度。

我不想对它们进行硬编码,因为值会随着新的季度而变化。这应始终默认为当前季度。

任何指针都会有所帮助

由于

1 个答案:

答案 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