我设计了一个VF页面来显示自定义对象的字段记录列表。在我的对象中有两个数字字段我设计了VF页面以在页面底部显示这些数字字段的总数。将来如果将一个额外的数字字段添加到同一个对象,那么我该如何编写代码来添加一个列,而该列又应该自动填充在visualforce页面上。是否有可能在salesforce。
答案 0 :(得分:0)
如果你在这个页面上有一个控制器/控制器扩展,你可以使用描述调用来学习对象中所有字段的列表,检查它们的类型并决定你要显示哪些字段&总结
Schema.DescribeFieldResult f = Account.NumberOfEmployees.getDescribe();
System.assertEquals(Schema.DisplayType.INTEGER, f.getType());
但依赖于描述调用的结果会有一些限制(每个请求按照100的描述调控器限制,字段将按名称排序,这可能不是您想要显示它们的顺序......)。
由于您需要动态Visualforce,因此您可以考虑制作一个fieldset或自定义设置,列出您想要的字段,然后使用Apex计算小计 - refer to it from code。这样,当您需要稍后更新它时,您将不必触摸控制器。
答案 1 :(得分:0)
请在下面找到一些代码。请注意,这未经过测试,但会给您一个完整的想法!
VF Page:
<apex:form>
<!-- this column will return the sum -->
<apex:column value="{!Sum}"/>
</apex:form>
Apex Class:
//Your class will contain the below method
public String getSum(){
Double Sum;
//Return a list of the object
List <Custom_Object__c> listCustom = [Select Num1, Num2 from Custom_Object__c];
for(Custom_Object__c co : listCustom){
Sum = co.Num1 + co.Num2;
}
return String.valueOf(Sum);
}
答案将是这样的。请试一试,如果它不起作用,我将很乐意提供帮助!