0

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

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

任何指针都会有所帮助

谢谢

4

1 回答 1

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()来提取月份和年份,并且可能使用 Map 逐月查找季度,或者除以月份数乘以三并使用ceil()获取当前季度。

要创建前 11 个季度,请在循环内使用addMonths()负值,一次三个月。

myDatetime.addMonths(-3)

如果您不使用日历季度,您可以使用 SOQL 查询 Period 对象。您绝对可以确定您的财政年度开始月份:

SELECT FiscalYearStartMonth FROM Organization
于 2012-06-01T13:45:26.533 回答