我需要创建一个选择框,其中包含在我的 Vf 页面中显示当前季度和前 11 个季度的选项。
我不想对它们进行硬编码,因为值会随着新的季度而改变。这应该始终默认为当前季度。
任何指针都会有所帮助
谢谢
我需要创建一个选择框,其中包含在我的 Vf 页面中显示当前季度和前 11 个季度的选项。
我不想对它们进行硬编码,因为值会随着新的季度而改变。这应该始终默认为当前季度。
任何指针都会有所帮助
谢谢
使用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